逆向相关

2015-11-08  本文已影响921人  o无尘o

USB调试:

  1. 首先安装usbmuxd,在Mac下就不需要手动安装了,直接命令行
    brew install usbmuxd

  2. 使用iproxy命令映射端口,2222代表本机端口,22代表远程端口 此时提示等待连接 可以另外开个终端输入接下去的指令
    iproxy 2222 22 & 3333 1234

  3. ssh到设备上开启debugserver
    ssh -lroot 127.0.0.1 -p2222

  4. 查看需要debug的进程(这时已经在手机端)
    ps -A
    //附加进程
    debugserver *:1234 -a "SpringBoard"
    //启动进程
    debugserver -x backboard *:1234 path/IF.app/IF

  5. 本地lldb连接(电脑端)
    $: lldb
    (lldb): platform select remote-ios
    (lldb): process connect connect://127.0.0.1:3333




脱壳:

1: github 下载:dumpdecrypted

2: 在下载的目录执行: make 命令.在当前目录会生成一个dumpdecrypted.dylib文件.此文件生成一次就可重用

3: 用ps -e命令定位待脱壳app在手机中的目录(在手机端可以只开待脱壳一个应用) 用上面usb调试方法ssh登陆到手机端

 iphone:~ root# ps -e
 1767 ??         0:01.60 /usr/libexec/ptpd -t usb
 1806 ??         0:00.03 /usr/libexec/amfid
 1807 ??         0:00.00 (MSUnrestrictProc)
 1812 ??         0:23.66 /var/mobile/Containers/Bundle/Application/AA4626E2-39A3-4E82-AC7B-12549B0EF7B5/GuitarMaster.app/GuitarMaster

4: 用Cycript找出待脱壳app在手机中的Documents目录(注意手机得解锁)

iphone:~ root# cycript -p GuitarMaster
cy# [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
#"file:///var/mobile/Containers/Data/Application/F116C3AF-156E-4C1B-BF54-055BBC5D2377/Documents/"
iphone:~ root# ?exit

5: 用scp命令pp助手iFunBoxdumpdecrypted.dylib复制到Documents目录下

6: 开始脱壳(完成后在当前目录生成GuitarMaster.decrypted文件 复制到mac端 上IDA)

iphone:~ root# cd /var/mobile/Containers/Data/Application/F116C3AF-156E-4C1B-BF54-055BBC5D2377/Documents/
iphone:/var/mobile/Containers/Data/Application/F116C3AF-156E-4C1B-BF54-055BBC5D2377/Documents root# DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/AA4626E2-39A3-4E82-AC7B-12549B0EF7B5/GuitarMaster.app/GuitarMaster 
mach-o decryption dumper

DISCLAIMER: This tool is only meant for security research purposes, not for application crackers.

[+] detected 64bit ARM binary in memory.
[+] offset to cryptid found: @0x100050c58(from 0x100050000) = c58
[+] Found encrypted data at address 00004000 of length 11026432 bytes - type 1.
[+] Opening /private/var/mobile/Containers/Bundle/Application/AA4626E2-39A3-4E82-AC7B-12549B0EF7B5/GuitarMaster.app/GuitarMaster for reading.
[+] Reading header
[+] Detecting header type
[+] Executable is a FAT image - searching for right architecture
[+] Correct arch is at offset 12353536 in the file
[+] Opening GuitarMaster.decrypted for writing.
[+] Copying the not encrypted start of the file
[+] Dumping the decrypted data into the file
[+] Copying the not encrypted remainder of the file
[+] Setting the LC_ENCRYPTION_INFO->cryptid to 0 at offset bc8c58
[+] Closing original file
[+] Closing dump file
iphone:/var/mobile/Containers/Data/Application/F116C3AF-156E-4C1B-BF54-055BBC5D2377/Documents root# 



class-dump

  1. 下载最新版本class-dump-3.5.dmg
  2. 打开后把里边'class-dump'文件复制到'/usr/local/bin'目录下
  3. 命令行输入'sudo chmod 777 /usr/local/bin/class-dump'给可执行权限
  4. 上一步脱完壳已经把app的可执行文件复制到了mac中.这里命令行切换到app可执行文件所在目录.输入命令
MAC:bin MAC$ cd /Users/WANG/Desktop/GuitarMaster 
//当前GuitarMasterDecrypted可执行文件dump出头文件放到当前GuitarMasterDecryptedH目录下.按名字排序
MAC:GuitarMaster MAC$ class-dump -S -s -H GuitarMasterDecrypted -o GuitarMasterDecryptedH



LLDB:

1: 查看ASLR偏移
image list -o -f

2:断点

断点命令 说明
b function name 直接用函数名字下断点 会输出断点号
br s -a address 在地址处下断点
br s -a 'ASLROffset+address' 同上
br dis [断点号] 禁用断点 不带索引号表示全部禁用
br end [断点号] 启用断点 索引同上
br del [断点号] 删除断点 索引同上
br com add [断点号] 断下来时 执行预先设置的指令 断点号在下断点时会输出
// 引用自: http://iosre.com/t/lldb-oc/6711

// 打印出MMServiceCenter类的所有函数 与 地址
(lldb) po [MMServiceCenter _shortMethodDescription]
  //后面会跟这函数的当前所在地址
  - (id) getService:(Class)arg1; 0x100bd04f0

// 该地址可以直接下断
(lldb) b 0x100bd04f0

// 打印数据模型内容的私有函数方法
(lldb) po [模型对象 _ivarDescription]

3:打印

打印命令 说明
disas 显示汇编
bt 打印栈信息
p $r0 打印寄存器的值
po $r0 打印对象
p/x $sp 以16进制打印sp寄存器
x/10 $sp 打印sp指向的连续10个dword
x/10xg $x0(addr) x/(显示命令) x(16进制显示) g(64位一组)
x/10xw $x0(addr) w(32位一组)
x/10s $x0(addr) s(字符串显示)
x/10fg $x0(addr) f(以浮点数显示)
cmd+k 清屏

4:执行

执行命令 说明
c 运行
ni 步过
si 步入
finish 步出
参考资料:

http://blog.tanyawei.com/2015/09/07/iOS-USB%E8%B0%83%E8%AF%95/
<iOS应用逆向工程>

上一篇下一篇

猜你喜欢

热点阅读