本帖最后由 dnqs123 于 2024-3-20 10:39 编辑
使用monkeydev测试,小明计算器 vip 破解
[Objective-C] 纯文本查看 复制代码 CHDeclareClass(NSString)
CHOptimizedClassMethod0(self, BOOL, NSString, isVipUser){
BOOL kk = CHSuper0(NSString, isVipUser);
return YES;
}
CHOptimizedClassMethod0(self, BOOL, NSString, isPermanentVipUser){
BOOL kk = CHSuper0(NSString, isPermanentVipUser);
return YES;
}
CHConstructor{
CHLoadLateClass(NSString);
CHClassHook0(NSString, isVipUser);
CHClassHook0(NSString, isPermanentVipUser);
}
补充下分析过程
计算器虽然很多,但是都不咋好用,没有历史记录,有广告等等,下面说下分析过程:
1.手机需要越狱,然后使用frIDA-ios-dump,导出砸壳的包。frida-ios-dump安装教程如下:https://iosgods.com/topic/171082-frida-server-rootless-binary-dumpdecrypt/#comments
2.Charles抓包发现调用了XMGetMeCount接口,推测和vip有关。发现每次打开设置页面,都会调用这个接口,使用FLEXList越狱插件,查看设置页面控制器名称是SetViewController。
3.使用Hopper Disassembler,导入ipa可执行文件,搜索SetViewController,查看伪代码,找到了调用XMGetMeCount接口的位置getMeData
4.查看SetViewController getMeData的反汇编代码,在接口的block回调里,使用了XM_VIPToken字段,
5.搜索XM_VIPToken,发现了NSString的两个类方法isVipUser、isPermanentVipUser
6.monkeydev运行项目,hook这两个方法isVipUser、isPermanentVipUser,完成破解。 https://github.com/AloneMonkey/MonkeyDev/wiki
|