最近拜读了《iOS应用逆向工程》2,收获颇丰,以此记录。废话不多说,获取App头文件信息。
一、class-dump(OS X)
下载地址:http://stevenygard.com/projects/class-dump/
1.下载后拷到/Desktop/nq/myClassDump/class-dump,打开terminal(终端)。
2.登录管理员账户,将class-dump复制到/usr/bin下,赋予所有权限-777
sudo -s
#password(电脑密码)
cp -R ~/Desktop/nq/myClassDump/class-dump /usr/bin
chmod 777 /usr/bin/class-dump
3.将自己的App拷到/Desktop/demo/,右键属性,将App用归档实用工具打开,生成文件夹Payload
4.查找App的可执行文件(iosOpenP.app为Payload中App名称)
cd ~/Desktop/demo/Payload/iosOpenP.appplutil -p info.plist | grep CFBundleExecutable
打印出来的即是App的可执行文件。
5.将Payload中.h文件全部复制到桌面--文件夹Headers
class-dump -S -s -H iosOpenP -o ~/Desktop/Headers
注意:该App是你自己的App,从AppStore下载的App都是经过加密的,像核桃一样,不能直接使用class-dump。
那怎么办呢?不要着急,可以先用工具(dumpdecrypted)把核桃壳砸开,然后使用class-dump。在使用dumpdecrypted之前需要安装工具OpenSSH。
二、OpenSSH(iOS)
1.首先你的移动设备必须越狱,越狱这里不再赘述。
2.移动设备在cydia安装OpenSSH
3.打开terminal(终端),通过无线网连接到你的设备(电脑和移动设备需在同一网段)
ssh root@192.168.135.114alpine(默认密码)
注意:192.168.135.114为iOSIP
passwd root
passwd mobile
三、dumpdecrypted(iOS)
下载地址:https://github.com/stefanesser/dumpdecrypted/archive/master.zip
1.下载后解压拷到文件夹(Desktop/nq/myDumpdecrypted/dumpdecrypted-master),打开terminal(终端),跳转到文件夹dumpdecrypted-master。(进入电脑用户操作,如在设备用户,ctl + d 退出)
cd ~/Desktop/nq/myDumpdecrypted/dumpdecrypted-master
2.生成dumpdecrypted.dylib文件
make
3.连接到设备(192.168.135.114为iOSIP)
ssh root@192.168.135.114alpine(默认密码)
4.运行程序你想砸壳的App(比如微信)
ps -e | grep Application
(如果-sh: ps: command not found,设备在Cydia中安装adv-cmds)
/var/mobile/Containers/Bundle/Application/62B2C56F-342B-4745-8D8D-3BFB49EA05BB/WeChat.app/WeChat
WeChat即为可执行文件
6.找到file地址
cycript -p WeChat
得到地址
#"file:///var/mobile/Containers/Data/Application/1D8AB6C4-6088-48EF-92EC-857BADC545F1/Documents/"
7.将dumpdecrypted.dylib(榔头)放入应用file地址中。(进入电脑用户操作,如在设备用户,ctl + d 退出)
scp ~/Desktop/nq/myDumpdecrypted/dumpdecrypted-master/dumpdecrypted.dylib root@192.168.135.114:/var/mobile/Containers/Data/Application/1D8AB6C4-6088-48EF-92EC-857BADC545F1/Documents/dumpdecrypted.dylib
8.使用dumpdecrypted.dylib砸壳
alpine(默认密码)
cd /var/mobile/Containers/Data/Application/1D8AB6C4-6088-48EF-92EC-857BADC545F1/Documents/
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib/var/mobile/Containers/Bundle/Application/62B2C56F-342B-4745-8D8D-3BFB49EA05BB/WeChat.app/WeChat
scp root@192.168.135.114:/var/mobile/Containers/Data/Application/1D8AB6C4-6088-48EF-92EC-857BADC545F1/Documents/WeChat.decrypted ~/Desktop/demo/wechat/
10.将WeChat.decrypted中.h文件复制到/Desktop/demoHeaders/wechat
class-dump -S -s -H ~/Desktop/demo/wechat/WeChat.decrypted -o ~/Desktop/demoHeaders/wechat
11.打开文件夹wechat,其中就是微信的头文件。用xcode把该文件导入项目中,可以查看头文件信息啦。