iOS逆向笔记第一天

来源:互联网 发布:node pdf导出 编辑:程序博客网 时间:2024/05/02 22:51

最近拜读了《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.app
plutil -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.114
alpine(默认密码)


注意:192.168.135.114为iOSIP


您唯一要配置的就是修改iPhone越狱后默认的Root账号密码,因为这个账号和密码将作为OpenSSH远程登录的凭证。iPhone有两种账户,默认下,账户的密码是alpine,如果被别有用心的人利用会给您的隐私或者iOS系统稳定带来麻烦,所以,密码建议一定要改。
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.114
alpine(默认密码)

4.运行程序你想砸壳的App(比如微信)

ps -e | grep Application

(如果-sh: ps: command not found,设备在Cydia中安装adv-cmds


5.找到应用地址
/var/mobile/Containers/Bundle/Application/62B2C56F-342B-4745-8D8D-3BFB49EA05BB/WeChat.app/WeChat

WeChat即为可执行文件


6.找到file地址

cycript -p WeChat


[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]

得到地址
#"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砸壳

ssh root@192.168.135.114

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



9.将砸壳成功生成的WeChat.decrypted文件拷回电脑。(进入电脑用户操作,如在设备用户,ctl + d 退出)
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把该文件导入项目中,可以查看头文件信息啦。


0 0
原创粉丝点击