|
大家好,我是之前发过这两个帖子的作者: 之前一直在边开发边测试,没有完全公开源码。最近考虑了一下,还是决定把项目正式开源出来,欢迎大家一起研究、反馈和改进。 这次开源的项目叫: SOMCP它的目标不是单纯做一个 SO 查看器,而是逐渐做成一个运行在 Android 手机上的本地逆向分析平台。 目前项目已经包含: - ELF / SO 文件基础信息分析
- ELF Header、Section、Segment 信息查看
- 依赖库和动态链接信息分析
- 信息熵和段分布分析
- PIE、NX、RELRO、Canary、FORTIFY 等安全特征检测
- 逆向难度和可行性分析报告
- Rizin、Unidbg、Capstone、Keystone 等能力整合
- MCP 服务
- AI 调用 MCP 工具进行自动分析
- AI 对话式深度分析
- Markdown 实时报告
- 工作区管理
- 外部 MCP 工具调用
- APK 内 SO 文件分析
- 多 ABI 支持
- GitHub Release 更新
目前的使用方式大概是: 选择 SO 文件或工作目录 ↓程序基础分析 ↓查看 ELF 总览、段信息、依赖和安全特征 ↓开启 AI 深度分析 ↓AI 自动调用 MCP 工具 ↓生成逆向分析报告
AI 深度分析并不是简单地把文件内容丢给模型,而是让模型根据实际情况调用工具,例如: - 打开 SO 工作区
- 分析函数
- 查看 CFG
- 查询交叉引用
- 查找字符串和符号
- 分析可能的加密逻辑
- 继续追踪函数调用关系
- 生成最终分析报告
项目源码已经完全公开: 项目采用 GPL-3.0 开源协议,欢迎学习、修改、二次开发和提交改进。 重点:开始全力冲刺 Flutter 逆向现在很多 App 都开始大量使用 Flutter,单纯分析 Java、Smali 和 SO 已经不够用了。 Flutter 的 Dart AOT 产物和普通 Android 原生代码差别比较大,很多时候会遇到: - Dart 符号缺失
- 类名、方法名被裁剪
- AOT 指令难以直接识别
- Flutter Engine 和业务代码混在一起
- Dart 对象、字符串、函数之间关系不明显
- 只看 SO 很难还原完整业务逻辑
- 需要同时结合 Flutter 资源、SO、Smali 和运行时行为
所以接下来我会把主要精力放在 Flutter 逆向功能上。 当前计划包括: - 集成和完善 Blutter 相关能力
- 分析 Flutter AOT 产物
- 恢复部分 Dart 类、方法和符号信息
- 识别 Flutter 业务代码和 Engine 代码
- 分析 Dart 字符串、对象和函数关系
- 辅助定位关键业务逻辑
- 结合 Rizin 做底层指令分析
- 结合 Unidbg 做运行时调用和验证
- 通过 MCP 让 AI 自动执行 Flutter 分析流程
- 打通 Flutter、SO、Smali 之间的联合分析
- 尽量实现手机端直接分析,不依赖电脑环境
最终希望实现的效果是: 打开 APK ↓自动识别 Flutter 相关文件 ↓定位 libapp.so / libflutter.so ↓分析 Flutter AOT 结构 ↓恢复可识别的 Dart 信息 ↓关联 SO、Smali、资源和运行时行为 ↓生成完整逆向分析报告
目前 Flutter 逆向部分还在持续开发中,距离真正成熟还有不少工作要做。 如果大家在 Flutter 逆向过程中遇到过比较痛苦的问题,也欢迎直接在帖子里留言,比如: - 哪些 Flutter 版本最难处理
- 哪些 Dart 信息最希望恢复
- Blutter 哪些功能最值得优先集成
- Flutter 加固、混淆、拆分产物怎么分析
- 如何定位关键业务函数
- 如何结合 Frida、Unidbg 或 Rizin 做动态验证
- 哪些流程适合交给 AI 自动完成
为什么决定开源?这个项目最开始其实比较简单,很多功能都是在实际使用过程中一点点加出来的。 最初只是想做一个手机上的 SO 分析工具,后来逐渐加入了: - MCP
- AI 工具调用
- 自动化工作区
- ELF 安全分析
- 逆向报告
- APK 内 SO 提取
- Rizin 和 Unidbg
- Flutter 逆向方向
项目中有不少地方还不够完善,代码结构也不一定漂亮,里面可能还有很多可以改进的地方。 但是我觉得与其一个人慢慢闭门开发,不如直接公开出来,让更多人看到、使用和反馈。尤其是 Flutter 逆向这一块,如果有人愿意一起研究,应该会比一个人摸索更快。 所以这次不只是发布一个 APK,也正式把源码放出来。 当前版本当前 GitHub Release: SOMCP 1.0.3
支持的 APK 架构包括: arm64-v8aarmeabi-v7ax86x86_64universal
可以直接从 GitHub Releases 下载: https://github.com/bilieebiliee1-design/SOMCP/releases 如果 GitHub 下载速度比较慢,也可以尝试应用内的版本更新功能,程序会自动选择可用的下载地址。 后续开发方向接下来主要会集中在以下几个方向: - Flutter 逆向分析能力
- Dart AOT 信息恢复
- Flutter 与 SO、Smali 联合分析
- MCP 工具数量和稳定性
- AI 工具调用准确率
- 大型 SO 文件分析性能
- 设备端运行稳定性
- 分析报告质量
- 更多加固和混淆场景适配
- 更方便的插件和扩展机制
我会继续把 SOMCP 往“手机端本地逆向分析平台”这个方向推进。 目前项目还在快速迭代中,功能可能会变化,偶尔也可能存在 Bug。如果遇到问题,可以在 GitHub 提交 Issue,也可以直接在本帖留言。 欢迎大家测试、反馈、提建议,也欢迎有兴趣的朋友一起参与开发。 项目地址源码: https://github.com/bilieebiliee1-design/SOMCP 发行版: https://github.com/bilieebiliee1-design/SOMCP/releases 许可证: GPL-3.0
感谢之前在两个帖子里提出建议和参与测试的各位老哥。 这次正式开源,接下来继续冲 Flutter 逆向。
|