我的逆向工程之路 - iOS工具篇

前面讲了一些OS的工具篇,这里再详细讲一些iOS 上的工具。
(基于越狱系统10.0.2)

预热姿势:

1. 查看进程
  ps -e    所有进程 (ps -e | grep xxx 具体的某个进程) 

Cycript

1. 启动:
  cycript  出现"cy#"提示符
2. 注入指定程序:
  cycript -p xxx (进程代号,或者进程名称)
3. 退出:
 control+D

对象相关:
1. 获取某个对象
  #对象地址    如:([#0x14422 show])
2. 获取对象的地址:
  choose(对象名称)   如:(choose(QQMultiVoiceNoticeBar)  choose  一个类 

获取当前进程文件路径:
1. [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]

dumpdecrypted

工具制作:

  1. 源码地址:https://github.com/stefanesser/dumpdecrypted
  2. 修改Makefile文件:
  1. GCC_BIN=`xcrun --sdk iphoneos --find gcc` 改成具体的gcc路径:
   GCC_BIN=/Applications/Xcode.app/Contents/Developer/usr/bin/gcc

 2. SDK=`xcrun --sdk iphoneos --show-sdk-path` 改成具体的SDK路径:
  SDK=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk  

 3. 改完之后,cd到改文件夹路径下,执行make命令
  生成 dumpdecrypted.dylib 

 4. 给工具签名打包:
 列出可用的证书:
  security find-identity -v -p codesigning  
 为dumpecrypted.dylib签名:
  codesign --force --verify --verbose --sign "iPhone Developer:xxx" dumpdecrypted.dylib

工具使用:

1. 需要的文件路径:
如:需要破壳的Mach-O文件路径
/var/containers/Bundle/Application/A361A25C-A687-4615-A794-8A7A2D34C257/QQ.app/QQ    

破壳工具dumpdecrypted.dylib  路径(该App的沙盒里面就可以)
/var/mobile/Containers/Data/Application/A149CC3B-106B-46AE-B8BC-D9138A23CA10/Documents/LJFile/dumpdecrypted.dylib  

2. 破壳命令:
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib路径  需要破壳的文件路径  
如:DYLD_INSERT_LIBRARIES=/var/mobile/Containers/Data/Application/A149CC3B-106B-46AE-B8BC-D9138A23CA10/Documents/LJFile/dumpdecrypted.dylib /var/containers/Bundle/Application/A361A25C-A687-4615-A794-8A7A2D34C257/QQ.app/QQ

当然,你再那个路径下执行这个命令,就会在那个路径下 生成一个xxx.decrypted 的文件,
如下图的QQ.decrypted ,路径就在 ~/ 下面
dumpdecrypted.png

最后吧这个QQ.decrypted拷到电脑上,用class-dump解析出头文件就可以了:
(一万多个文件...)

QQHeads.png

你可能感兴趣的:(我的逆向工程之路 - iOS工具篇)