前言
本人小白一个,带着兴趣学习反编译,什么都是爬博客新学习,写此博客只为方便记忆,当然如果能给读者带来收获那就更好了。不妥之处欢迎提出来。
达到目的
砸壳一个App并导出头文件
反编译条件
- 越狱设备。 (盘古)
- 手机安装openSSH, 通过cydia就可以
- Clutch砸壳,通过sftp装到手机里,作用:砸包用。下载地址:https://github.com/KJCracks/Clutch/releases****
- class-dump 作用:砸好后的App导出所有头文件 下载地址:http://stevenygard.com/projects/class-dump/
- dumpdecrypted砸壳,未成功,原因不知道。但是过程值得参考。
实现
反编译条件步骤1 2 略
3 将手机与电脑连接到同一个wifi下。下载Clutch,用sftp导入到手机 /usr/bin目录下,然后砸壳并导出砸壳后的ipa
// 连接到你的手机并输入默认密码 alpine
sftp root@192.168.199.232
// 进入到指定目录
cd /usr/bin
// Clutch导入到手机
put 电脑Clutch目录
ssh 连接到手机
ssh root@192.168.199.232
// 成功之后获取手机里所有App列表
Clutch -i
// 砸壳某个app 98为某个app序号
Clutch -d 98
// 砸壳成功后会有ipa目录,如下
DONE: /private/var/mobile/Documents/Dumped/com.tencent.xin-iOS7.0-(Clutch-2.0.2).ipa
// 用sftp将com.tencent.xin-iOS7.0-(Clutch-2.0.2).ipa下载到你的电脑
get com.tencent.xin-iOS7.0-(Clutch-2.0.2).ipa目录 本地电脑目录
4 class-dump导出头文件
下载class-dump放到电脑 /usr/local/bin目录下
将com.tencent.xin-iOS7.0-(Clutch-2.0.2).ipa改成com.tencent.xin-iOS7.0-(Clutch-2.0.2).zip,解压并找到App二进制文件WeChat.app,目录如下:com.tencent.xin-iOS7.0-(Clutch-2.0.2)/Payload/var/containers/Bundle/Application/7AB7AF2A-0EA3-4AFA-8875-F1F72ECE3D4C/WeChat.app
执行命令,所有.h文件就在数目里了
class dump -H WeChat.app目录 -o 输出目录
5 dumpdecrypted 下载到电脑,编译dumpdecrypted.dylib,参考 http://www.cnblogs.com/ludashi/p/5725743.html 谢谢作者,只是我按照操作的时候有2个地方已经不一样了,
1 “微信”App所在的目录: ps -e | grep /var/mobile命令我并没有获取到。实际目录在 /var/containers/Bundle/Application/BA106D6C-2C6C-45CD-85F7-352CD277BC4E/WeChat.app/WeChat
那么多应用,怎么确定微信应用? 1> 手机删除微信并重新下载安装(为了后续根据时间查找)2> 越狱手机安装iFile应用(PP助手越狱版安装),打开iFile,点击下边地球图标,网页服务器,电脑登录服务器,进入/var/containers/Bundle/Application目录,根据微信安装时间查找微信App目录,并记录此目录。
2 微信沙盒目录 /var/mobile/Containers/Data/Application/4165A234-2E6D-4BAA-A352-D4ABDC9C24A4/Documents,查找方法同上。
3 dumpdecrypted.dylib放到/var/mobile/Containers/Data/Application/4165A234-2E6D-4BAA-A352-D4ABDC9C24A4/Documents目录下
3 砸壳,失败了。DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/BA106D6C-2C6C-45CD-85F7-352CD277BC4E/WeChat.app/WeChat
不知道什么原因,看dumpdecrypted GitHub已经有4年未更新了。郁闷。