iOS逆向之WeChat头文件导出
操作环境
- iPhone5 (系统10.0.2) 越狱机
- mac pro (系统10.12.3)
准备工作
-
软件
class-dump 安装过程中的坑
把下载下来 class-dump脚本复制到~/User/lib,注意!前方高能,这一步就有坑了!!!
- 10.11后 mac 的机制变了 bin 目录root权限也不可以修改了
点击上面的下载地址后
```
第一步,打开Terminal,输入mkdir ~/bin,在当前用户根目录下创建一个bin目录;
命令: mkdir ~/bin
第二步,把class-dump给拷贝到这个目录里,并赋予其可执行权限;
命令一: mv /.../class-dump ~/bin (/.../class-dump是指的class-dump的完整路径)
命令二: chmod +x ~/bin/class-dump
第三步,打开~/.bash_profile文件,配置环境变量
命令一: vi ~/.bash_profile
命令二: 按 i 键进入编辑模式,写入下面一行代码, export PATH=$HOME/bin/:$PATH 按ESC然后输入冒号(shift+;),然后输入wq,退出即可。
第四步,在Terminal中执行source命令
命令:source ~/.bash_profile
完成以上步骤,在terminal中执行class-dump实验一下,应该就可以了。
```
执行class-dump能看到上面的也页面就说明你安装成功了
-
dumpdecrypted.dylib的坑
网上的教程和dumpdecrypted.dylib文件太旧了,上面加了我找到的最新的文件,大家可以用了,
准备工作完成(其他没难度,就不介绍了,有问题留言哈)
砸壳开始
-
将 dumpdecrypted.dylib复制到手机上
我是用usb连接的,所以终端输入
ssh root@localhost -p 2222 密码:alpine
看下是否连接上了
前缀变成手机的名称,就说明连接成功了,可以开始拷贝了。
连接后输入 ps -e
查看进程
看到这个 后command + f 搜索weChat
记住:
603 ?? 0:58.86 /var/containers/Bundle/Application/B9ABE60D-681A-4A72-A87E-1C16D3DC1D3A/WeChat.app/WeChat
看到这个603的进程了,然后执行命令,勾住进程
cycript -p 603
出现
cy#
cycript 启动,获取沙盒路径
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)[0]
终端打印
file:///var/mobile/Containers/Data/Application/0B9ED868-97DE-4D2B-9FF7-91CA5CC05BB5/Documents/
WeChat 沙盒路径获取到了,
切换另一个page
终端输入
scp -P 2222 dumpdecrypted.dylib root@localhost:/var/mobile/Containers/Data/Application/0B9ED868-97DE-4D2B-9FF7-91CA5CC05BB5/Documents/
将dumpdecrypted.dylib拷贝到沙河
开始敲壳
以上都是准备工作,接下来可以正式砸壳了。
DYLD_INSERT_LIBRARIES=/User/dumpdecrypted.dylib
后拼接 603 进程后面的app路径
[+] detected 64bit ARM binary in memory.
[+] offset to cryptid found: @0x1000a0ca8(from 0x1000a0000) = ca8
[+] Found encrypted data at address 00004000 of length 53149696 bytes - type 1.
[+] Opening /private/var/containers/Bundle/Application/46316B03-5DC3-4534-8D40-A29FE9315E22/WeChat.app/WeChat for reading.
[+] Reading header
[+] Detecting header type
[+] Executable is a FAT image - searching for right architecture
[+] Correct arch is at offset 58195968 in the file
[+] Opening WeChat.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 3780ca8
[+] Closing original file
[+] Closing dump file
查看成果
砸壳完毕,会自动在当前目录生成砸壳后的二进制文件 WeChat.decrypted
回到我们的电脑
终端输入
class-dump -H WeChat.decrypted(砸壳后的文件路径) -o [文件夹路径]
等一会。。。。。
然后见证惊喜吧
文章中的路径不是固定的 ,自行修改哦