去掉 ptrace 和 __RESTRICT section 两个保护
脱壳和dump头文件
分析和调试
编写Tweak
总结
环境
MacBook,iPhoneX,iOS 9.3.3越狱, iOS支付宝10.1.5
工具
theos
Tweak制作工具
xcode
用lldb来附加调试
class-dump
导出头文件
dumpdecrypted
> 脱appstore的壳iHex
二进制编辑器
去掉 __RESTRICT section 和 ptrace 两个保护
去掉 __RESTRICT section 步骤
ssh到手机 执行命令
ps -e
找到
/var/containers/Bundle/Application/DD6D8BA3-95F2-4C6D-BFD7-0E20420A6E9C/AlipayWallet.app/AlipayWallet
切换到mac电脑 使用scp命令 把执行文件拷到电脑上
scp root@192.168.2.2:/var/containers/Bundle/Application/C6F2DD99-6450-4838-98B8-2899E8EBC1A4/AlipayWallet.app/AlipayWallet /Users/hack/Desktop/wz
打开iHex 查找command+f 把 RESTRICT和restrict替换为其他值(比如:RRRRRRRR和rrrrrrrr。保证长度不变就行啦)看图1
拷贝文件回去
scp /Users/hack/Desktop/wz/AlipayWallet root@192.168.2.2:/var/containers/Bundle/Application/C6F2DD99-6450-4838-98B8-2899E8EBC1A4/AlipayWallet.app/AlipayWallet
如果打开闪退 请Cydia中安装 AppSync
去除ptrace保护
使用theos 创建Tweak 代码如下 安装到手机就可以
#import
#import
static int (*orig_ptrace) (int request, pid_t pid, caddr_t addr, int data);
static int my_ptrace (int request, pid_t pid, caddr_t addr, int data){
if(request == 31){
NSLog(@"[AntiAntiDebug] - ptrace request is PT_DENY_ATTACH");
return 0;
}
return orig_ptrace(request,pid,addr,data);
}
%ctor{
MSHookFunction((void *)MSFindSymbol(NULL,"_ptrace"),(void*)my_ptrace,(void**)&orig_ptrace);
NSLog(@"[AntiAntiDebug] Module loaded!!!");
}
脱壳和dump头文件
执行命令
cycript -p AlipayWallet
注入支付宝进程执行命令
[[NSFileManager defaultManager]URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
看到返回
/var/mobile/Containers/Data/Application/5E744C4A-5B05-4280-A21C-9E6EFE8EF51