安装 chomper。
克隆 rootfs。
将目标程序(已砸壳)和 Info.plist 移动到项目目录中。
具体定位过程就不赘述了,模拟执行的目标方法为:-[TBSDKSecurity factorSign:input:extendParas:isUseWua:api:requestId:]。
首先创建模拟器对象并加载目标程序。
由于目标方法是实例方法,我们需要先调用 +[TBSDKSecurity instance] 获取一个 TBSDKSecurity 实例。
构造调用参数。
调用目标方法。
尝试执行,结果会得到一个报错。
这里先不管具体的报错内容(当然,有能力可以直接分析错误的调用栈),查看一下报错前的执行日志,可以发现下面几条日志。
该日志显示,目标程序尝试 open 一个名为 yw_1222.jpg 文件,但是因为这个文件并不存在,框架返回了错误码 ENOENT 。
Google 搜索一下该文件名,可以得知该文件为一个安全配置相关文件。
那我们就需要让目标程序可以访问到该文件,先把这个文件从原始包内复制到样本二进制文件的同目录下,然后在加载模块后调用 forward_path 将目标程序对该文件的访问映射到指定的路径。
再次运行,可以看到 yw_1222.jpg 被目标程序正常访问到。
传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!