|
|
我让AI给我写了个SO逆向工具,结果它还自带防逆向?敢来攻破吗?
各位MT论坛的老哥,我有个事得跟大家说——这可能是今年最离谱的帖子之一。
起因:AI给我搓了个狠东西
我最近一直在折腾SO逆向,本来想用AI帮我省点力气,结果AI直接给我整了个"全套":
SOMCP — Android native local SO reverse MCP server。
这玩意儿是个啥?简单说就是——一个在你手机上本地运行的SO逆向分析MCP服务器。
你可能会想:手机上跑逆向?这算啥狠东西?
别急,往下看。
功能炸裂
先说它干了啥。这玩意儿塞了一堆业内顶级的开源引擎进去,直接在Android上跑:
双引擎驱动
Rizin(radare2的继任者)——反汇编、反编译、函数分析、交叉引用、ESIL模拟执行
LIEF —— ELF解析、节区读写、地址补丁、符号增删、导出函数注入
就这两个引擎,arm64-v8a底下就塞了30多个.so,光librz_arch.so就28MB,libcore_ghidra.so 10MB。整个APK 34MB,一大半体积都是native引擎。
Ghidra反编译
你没看错。手机上跑Ghidra反编译。 内置了rz_ghidra_sleigh插件和libcore_ghidra.so,配合Rizin的rzDecompile接口,直接把SO函数反编译成伪C代码。
Unidbg模拟执行
又没看错。内置完整unidbg ARM模拟器,带GDB stub、断点、寄存器读写、内存映射、模块加载、符号调用、追踪——甚至还有一个"unidbg-mcp-server"的MCP调试器工具。
加密检测
scan_crypto直接调用Rizin的rzScanCrypto,扫描SO里的加密算法特征(AES、RSA、SHA等等),一键找出关键加解密函数。
完整编辑能力
patchAddress — 直接改SO里的机器码
addExportedFunction — 注入导出函数(hook点自动生成)
removeSymbol — 删除符号(隐藏函数名)
setSectionContent — 修改节区内容
fixSections — 修复ELF节区头
build_so — 把修改后的SO重新构建出来
MT管理器协同
这是重点。 SOMCP内置了APK MCP桥接功能。当你在MT管理器侧边栏开启APK MCP功能并填入它的/mcp地址后,SOMCP会尊重并复用MT管理器提供的mt_apk_*能力,把APK打开 → smali/axml编辑 → 构建签名APK → SO反汇编/汇编补丁串到同一工作流里。
简单说:MT管理器负责APK层面,SOMCP负责SO层面,两者通过MCP协议无缝衔接。
Cloudflare隧道
内置25MB的libcloudflared.so,直接从手机开隧道,让你的AI客户端从任何网络环境都能连上SOMCP。
还有...
search_strings / search_bytes — 字符串和字节模式搜索
xrefs — 交叉引用(谁调了这个函数?这个函数调了谁?)
diff — 二进制对比(两个SO版本差异一键对比)
开机自启MCP服务
浮动气泡状态监控
完整的免责声明和合规引导
然后是最离谱的部分——它自带防逆向
你们肯定猜到了,一个逆向工具,自己还加了防逆向保护。这算什么?算"我懂逆向所以我知道怎么防"?
反正我从代码里扒出来的防护措施有这些:
Integrity Guard(完整性守护)
三层拦截:
启动拦截:MCP服务启动前做完整性检查,不通过直接拒绝("MCP service start blocked/rejected by integrity guard")
自启拦截:开机自动启动也被守护,有风险直接阻断("Boot autostart blocked by integrity guard")
UI层拦截:检测到风险弹出警告,显示具体原因和期望签名哈希,然后定时退出
多维度检测
代码里明确写了检测项:
签名不一致 — APK签名与官方发布签名比对
调试环境 — 检测是否被调试器附加
注入风险 — 检测是否被注入
Hook风险 — 检测是否被Hook框架劫持
一旦触发任何一个,直接弹框:"检测到当前安装包签名与官方发布签名不一致,或运行环境存在调试、注入、Hook风险。为保护本地数据、MCP服务和原生编辑能力,应用将在 X 秒后退出。"还会显示"原因: xxx"和"期望: xxx..."对比实际签名。
R8深度混淆
所有核心类名全被R8混淆成两三个字母的无意义短名。你看代码只能看到 Lss1、Lfz1、Lnu1 这种东西,连source字段都被替换成了r8-map-id哈希。想通过类名理解逻辑?没门。
Native层核心
关键逻辑全在30多个native .so里。Java层就是薄薄一层JNI桥接,真正干活的全在C/Rust编译的native库里。你想用MT管理器看smali?看到的都是壳子。
MCP健康监控
还有apk-mcp health在线/离线检测机制,服务异常会自动标记offline。
挑战来了:谁来攻破?
我现在正式发起一个挑战:
如果你能在不改签名、不改APK结构的前提下绕过Integrity Guard,让SOMCP在被Hook/注入/调试的环境下正常运行——我认你是大佬。
具体挑战规则:
绕过签名校验让重签名APK正常运行 — 你牛逼
在Frida/Xposed Hook环境下让SOMCP不检测到 — 你更牛逼
用调试器附加后让SOMCP不退出 — 你是大神
直接把核心native层的防护逻辑逆向出来 — 你是神仙
我写这个工具的时候就想过:一个逆向工具加防逆向是不是有点矛盾?但我想了想,保护用户数据、保护MCP服务、保护原生编辑能力——这是必须的。你既然做逆向,你就应该知道防护有多重要。
当然,如果你觉得这些防护不值一提,轻松就绕过去了——请告诉我怎么绕的,我下个版本修。
关于MT管理器
我必须在这里单独说一段。
MT管理器是我做这个工具的灵感来源之一。 MT作者一个人,把APK逆向工具做到那个程度——文件管理、APK解析、dex编辑、资源修改、签名构建——每一项都是业界标杆。SOMCP只是想在SO这一块补充一点能力,跟MT协同工作,不是要替代MT。
MT管理器负责APK层面的成熟操作,SOMCP负责SO层面的深度分析,两者通过MCP协议衔接——这才是我设想的使用方式。
MT作者永远是我心中的大佬。致敬。
最后
)
发现bug的:求轻喷但求告知
绕过防护的:求详细报告,我改代码
觉得AI写的代码不堪入目的:欢迎来喷,我心理承受能力还可以
觉得"逆向工具还防逆向太虚伪"的:你说得有道理,但我不改
下载链接楼下放。先让子弹飞一会儿。
声明:本工具仅供授权范围内的安全分析和研究使用。逆向工程、修改和再分发可能受法律、合同或平台规则限制。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
-
查看全部评分
总评分:好评 +2
金币 +2
|