Stay注入动态链接库体验开心版
iOS平台有一个叫Stay的软件,类似于油猴插件,可以使用现有的油猴🐒脚本,Stay是开源软件,订阅付费相关的部分没有开源,本文仅限交流学习,如需使用Stay高级功能,请订阅支持原作者。
相关链接
逆向思路
按照以往的经验,首先使用Hopper打开二进制执行文件,搜索license
、isPro
、purchase
等相关字符串,看起来幸运值有点偏低,没有搜到相关的方法和字符串,但根据UI界面上的升级按钮,搜索upgrade
找到了相关的字符串,相关逻辑如下,反汇编后可能看不到相关的字符串,可以查看汇编代码,确定此处是实现点击升级按钮相关的动作
跳转到相关调用处,发现有下述调用关系
注意看红框处的代码,此处的代码已经反汇编过了,其中r0的值如下
而r22则是调用了FCStore
的- (id)getPlan:(bool)v1
方法,
该方法会返回一个FCPlan
实例,判定是否为高级用户就是判断是否和None
这个共享实例相等,因此破解的方法很简单,只需要hook这个函数即可,反射构造一个FCPlan
实例,就会命中高级用户判断逻辑
1 | %hook FCStore |
另外由于Stay在Safari中还有一个前端界面,断点调试js代码,可以知道判断逻辑是通过和native程序通信获取订阅状态
变量名有些奇怪,具体调用的是哪个native方法的排查过程我忘了,调用的native方法是-[UserDefaultsExRO pro]
1 | %hook UserDefaultsExRO |
关于如何查看类相关方法定义可以使用Hopper导出Objective-C头文件的功能
未完待续
- 本文链接: https://ourfor.top/article/stay-patch/
- 版权声明: 本博客所有文章除特别声明外,均采用 ©BY-NC-SA 许可协议。转载请注明出处!