准备工作
越狱手机
iPhone 软件/插件:
cycript
OpenSSH
Mac 软件:
iFoxBox
Theos
第一步:砸壳
- 执行命令$
ssh root@你的手机IP
- 查找你要砸壳的应用位置 : root#
ps -e
: 例如:/var/mobile/Containers/Bundle/Application/86CE59CF-4B2E-403A-987F-A3C241820946/WeChat.app/WeChat
- 查找BundleIdentifier记下,后面写Theos会用到:root#
cd /var/mobile/Containers/Bundle/Application/86CE59CF-4B2E-403A-987F-A3C241820946/WeChat.app/
root#cat Info.plist
搜索CFBundleIdentifier
找到bundleidcom.tencent.xin
- root#
cycript -p WeChat
5.cycript中寻找沙盒路径:cy#[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
得到沙盒:/var/mobile/Containers/Data/Application/55AB4B6E-581B-4ECB-9441-13048437A132/Documents/
- 将砸壳工具dumpdecrypted.dylib拷贝到沙盒目录下:$
scp Users/chenchaozhong/Desktop/iOS\ 逆向相关/iOSReverse/dumpdecrypted/dumpdecrypted.dylib root@你的手机IP:/var/mobile/Containers/Data/Application/55AB4B6E-581B-4ECB-9441-13048437A132/Documents/
- 到沙河下开始砸壳:root#
cd /var/mobile/Containers/Data/Application/55AB4B6E-581B-4ECB-9441-13048437A132/Documents/
砸壳命令: root#DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/86CE59CF-4B2E-403A-987F-A3C241820946/WeChat.app/WeChat
- 将砸完壳的文件拷贝到电脑 $
scp root@你的手机IP:/var/mobile/Containers/Data/Application/55AB4B6E-581B-4ECB-9441-13048437A132/Documents/WeChat.decrypted /Users/chenchaozhong/Desktop/weixin/decrypted/
- 的到应用的头文件: $
class-dump --arch armv7 -H /Users/chenchaozhong/Desktop/weixin/decrypted/WeChat.decrypted -o /Users/chenchaozhong/Desktop/weixin/header
- 得到.m 的汇编: 将WeChat.decrypted拖到Hopper;
动态调试
1.$/Users/chenchaozhong/Desktop/reverse/USBSSH/tcprelay.py -t 22:2222 1234:1234
2.$ssh root@localhost -p 2222
3.root#debugserver *:1234 -a "WeChat"
4.$process connect connect://localhost:1234
第二步:编写Theos
-
$
7B4D406C-38B4-4B89-983F-BD57C4D68489.png/opt/theos/bin/nic.pl
填写一些信息就创建完成了
-
Makefile文件
-
Tweak.xm
我们在appdelegate里放一个alert 告诉我成功进入微信;
6D972C68-221C-4AA1-9D33-498F625559A4.png
简单介绍tweak语法
tweak语法
- %log
要求:%hook 内部使用,
作用:将函数名,参数写入syslog- %orig
要求:%hook 内部使用
作用:执行原始代码,还可以更改原始参数- %group
要求:必须以%end结尾,必须配合%init使用
作用:管理hook- %init
要求:%hook或%ctor内调用
作用:初始化指定的group,如果不带参数,初始化_ungrouped- %ctor
隐式定义了
%ctor
{
%init(_ungrouped);
}- %new
要求:%hook内部使用,
作用:给现有class添加新函数,动态- %c
要求:%hook内部使用
作用:等同于objc_getClass或NSClassFromString
/*****************end**************************************/
第三步:安装tweak
直接运行, 编译并安装: $ make package install
网友评论