前面讲了一些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
工具制作:
- 源码地址:https://github.com/stefanesser/dumpdecrypted
- 修改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 ,路径就在 ~/ 下面
最后吧这个QQ.decrypted拷到电脑上,用class-dump解析出头文件就可以了:
(一万多个文件...)