故事的起因源自于我们英语老师用这个软件签到,就想着能不能 ... 嘿嘿 [手动doge]
正巧最近想学习一下安卓加固壳
效仿 OrientalGlass 大佬的搞法,把我平时收藏的那些逆向相关的优质文章总结成一个 AI 知识库,以供 AI 一把梭哈,效果很可观
工具:
目标APK:cn.unipus.cloud
声明:
互联网上关于该壳的信息搜集
目标APK
Root机环境下能否正常使用目标APK
先 hook 一下 dlopen,定位一下反 Frida 逻辑大概在哪个文件里面
每次 dlopen enter前可以尝试 sleep 两秒应对检测逻辑处决时间滞后问题

定位到处决逻辑处于 libexec.so 中
知道了处决逻辑的位置后,想办法去处理上游的检测逻辑
IDA 打开 libexec.so 瞟一眼
发现大段被加密,疑似标准/轻改 UPX

可以通过纯静态分析 .init_proc 函数一路追踪过去,基本上一路交给 AI 就可以完成
这里推荐用动态dump的方式,用 Frida attach 先 dump 出 so ,再通过 Sofixer 修复so结构,这里可以用这位佬的脚本自动完成
bafK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6D9j5i4y4@1K9h3&6Y4i4K6u0V1P5h3q4F1k6#2)9J5c8X3k6J5K9h3c8S2i4K6g2X3k6s2g2E0M7l9`.`.
一次不行就多试几次,在检测逻辑轮询的空窗期把 so dump 出来
接下来就通过 Frida 定位处决逻辑,顺着处决点摸到上游的检测逻辑
可以直接让 AI 写 trace 脚本
这边推荐可以先用一些开源的IDA插件先把trace脚本生成出来后再让 AI 改
537K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6G2j5h3y4A6j5g2)9J5c8Y4y4@1j5h3I4C8k6i4u0Q4y4h3k6@1M7X3q4U0k6g2)9#2k6Y4y4G2
在该样例中有一些小 bug 导致无法正常执行
让 AI 修一下就行

如果处决逻辑有滞后导致定位处决函数难以精确,可以让AI改一下,在 trace 脚本每一个函数执行前中加入一段 sleep 逻辑,如果 sleep 逻辑本身容易导致程序崩溃
可以参照 OrientalGlass 文章提过中的思路,进行二分查找
基本上能够收敛到处决函数;随后针对关键返回值写 hook 脚本记录调用者、返回值和状态位,再结合静态分析向上追溯检测点位
若仍然难以定位,可以尝试通过 KPM 模块或者 eBPF程序 进行 trace 工作,对比Frida trace函数链是在哪里出现了路径分叉,再往上追溯检测逻辑,对于部分的反调试逻辑有奇效
传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!
最后于 23小时前
被aut0run编辑
,原因: