首页
社区
课程
招聘
[原创]自制gcash包自动记录appDome保护逆向执行流
发表于: 16小时前 132

[原创]自制gcash包自动记录appDome保护逆向执行流

16小时前
132

研究appdome是论坛里的一个朋友说一个国外保护软件比较有意思,我觉得也许会有些新奇的发现,所以就尝试下,当然最终我也没有完全分析出来保护的点(appdome的保护点是非常分散的),但是已经达到我自己的目标,我觉得基本上跟踪到了appdome的整个保护执行函数流,接下来只需要针对性应对即可。

我搜索了下,国外厂商appDome的保护强度应该是非常高的,网上的研究资料非常少,纯静态分析他的ida逆向结果只会让你迷失崩溃,几乎看不到多少有意义的函数,大量的函数都被混淆重命名,当然字符串也是混淆的。

这个修改包我主要是跟踪的非主线程(采用的慢速记录方法,appdome保护应该主要集中在非主线程,所以应该足够了),而且我跟踪主线程崩溃了,也没看到错误,我不知道为什么,有时间可能继续研究。不过我不清楚他的完整保护逻辑究竟是什么,如果真的是重定向了主程序的所有系统调用,那么直接跟踪无论是否可行,效率都是个大问题(不过有一点比较庆幸的就是可能是手机系统的缘故,appdome可能依然没有使用imazing那种极高计算复杂度的保护,用户体验才是最重要的,当然也可能是我还没有逆向到)。

因为我没有使用调试器,也没有越狱,所以这些检测我不需要过,当然如果你是frida远程调试就比较麻烦,因为它有大量的反调试就是针对frida的。至于ipa包方法细节,我还是拷贝一下我另外一个文章的,反正都差不多:

下面是这个方法的一些简介(也适用于其他的日志记录包):

通过修改相应程序的ipa应用包,制作了自定义的插桩工具进行静态二进制重新静态JIT(当然大部分情况下只是记录一些关键函数调用,JIT主要是为了实现透明化无干扰跟踪,平时大家用的一些模拟执行unidbg之类的工具就是完全透明无干扰,当然如果不算执行效率的话,因为这太慢了),使其在运行过程中能够自动记录关键函数调用和参数。IPA 使用 Sideloadly 等方式安装,运行后生成的日志文件可以直接在 macOS 的 Finder 中访问(例如:log_0x0_0x0.txtlog_0x0_0x0_259.txt 等)。

功能特性

  • 单次运行可分线程记录 约 800 万条 函数调用日志

  • 捕获底层函数调用的详细信息

  • 日志为共享文件,可直接导出分析

  • 打印函数入口参数(不需要提前指定参数类型和数量,采用贪心算法深度搜索x0-x6寄存器指针)

日志格式说明

每一条日志记录包括:

  • 时间戳

  • 栈指针(可用于推断调用深度)

  • 函数地址(PC),可与 IDA 中地址对应,这里记录的是LR寄存器的值

  • 线程 ID(可按线程整理调用序列)

  • 函数参数(主要是可见字符串)

  • 对于不可见或加密参数,以 <x> 加 hex 表示

ipa下载包链接(我的手机是iphone x 6.7.12 非越狱 其他机型未测试):

1caK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1M7X3W2$3k6g2)9J5k6h3N6G2L8$3N6D9k6g2)9J5k6h3y4G2L8g2)9J5c8X3k6A6L8r3g2Q4x3V1k6V1i4K6u0r3x3g2)9#2k6U0g2$3e0V1N6j5K9$3k6q4h3f1&6W2k6Y4A6S2g2W2u0k6P5s2N6I4k6W2u0U0L8U0p5J5f1$3b7K6x3f1E0Q4x3V1k6$3K9h3g2%4i4K6y4r3N6i4y4H3i4K6y4p5k6s2u0A6N6X3g2Q4y4h3k6D9K9h3&6C8



传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 184
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
800万条记录要跑很久吗?对于cpu不好的
13小时前
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
啊你好哇123 800万条记录要跑很久吗?对于cpu不好的
现在这个记录类似我们用frida记录函数,效率相当,是慢速记录,另外有一种高效得多的方法,只是在完全找不到核心算法或者算法异常复杂的时候用,高速记录方法效率损耗只有50%,但是现在这个方法是能明显感觉到有一定的延迟,但不至于崩溃的那种。所以大家测试的时候需要稍微等待一下,不要在没有响应的时候立刻关闭程序。
3小时前
0
游客
登录 | 注册 方可回帖
返回