-
-
[原创]分享一个逆向前置筛选小工具:先从陌生 App 里快速定位高价值 so
-
-
[原创]分享一个逆向前置筛选小工具:先从陌生 App 里快速定位高价值 so
今天顺手写了个小工具,叫 ObfuScan。
先叠个甲:它的主要用途不是为了替代 IDA、Ghidra 这类重型武器,而是为了在逆向或安全审计前,做第一轮的自动化初筛。
???? 为什么写这个工具?
我自己的痛点很简单:每次拿到一个完全陌生的 App,一解包发现里面躺着几十上百个 .so 文件。一上来就盲开 IDA 简直是折磨。
这时候,我习惯先用 ObfuScan 扫一遍 APK 里的 arm64-v8a 目录,把结果按 高 / 中 / 低风险 排序,直接把精力锁定在“高风险”那批黑盒子里。
????️ ObfuScan 目前能扫出什么?
主要基于静态启发式特征,目前能揪出以下线索:
️ 疑似加壳:大段高熵数据、异常段等。
️ 强混淆 / OLLVM:控制流平坦化、虚假控制流特征。
???? 可疑入口点提取:直击 ELF入口、.init_array、JNI_OnLoad 等兵家必争之地。
容器型 SO:揪出那些“挂羊头卖狗肉”的伪装者(比如外面披着 ELF 的皮,里面其实是个 Zip/Dex)。
我的日常绝佳 Workflow(强烈推荐):
初扫盲区:跑一遍陌生 App,把高风险 SO 筛出来。
AI 净水器:把高风险列表直接扔给 AI,让大模型帮忙“排雷”——剔除掉已知的游戏引擎(如 UE4/Unity)、公共组件、老牌开源 SDK 和通用基础库(如 libc++)。
锁定真身:经过 AI 过滤后,剩下的那些名字奇葩、网无资料、搜不到分析、却又被工具打上“高风险”标签的 SO……恭喜你,大概率抓到真正的核心业务/风控/反作弊防护库了。好钢就该用在看这些代码上!
⚠️ 避坑说明:
这玩意儿本质上是个前置漏斗,高风险结果相对更有参考价值。
VMP 检测目前还在摸索期,受限于静态分析,只能当辅助参考,不保证 100% 准。
最终真理依然属于 IDA 静态死磕和 Frida/Unidbg 的动态跟踪。
碎碎念与实测效果:
拿自家 App 跑了一下,说点人话:准确度超出预期!自家藏得很深的两处自定义 Linker 加固 SO 瞬间被裸眼识别出来了(虽然 VMP 部分确实漏报了)。剩下的高危目标也精准命中了三个广告 SDK 的反作弊核心层。
拿几个国民级巨头 App 试了水,效果还行吧。后续会持续打磨优化,特别是 VMP 特征和误报率,敬请期待!
传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!