跳到正文
发现
移动应用开发者工具

SOMCP:安卓本地 SO 逆向 MCP 服务器

运行在 Android 手机上的本地 SO 逆向 MCP 服务器,用 MCP 客户端在手机上完成 ELF 分析与补丁。

admin
发布于 2026-10-31
浏览
2
访问
0
下载
0
版本
v1.0.23
平台
Android
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

SOMCP 是一个运行在 Android 手机上的本地 SO 逆向 MCP 服务器,包名 com.soreverse.mcp。它通过 Streamable HTTP 暴露 MCP 工具,让客户端可以在手机上完成 ELF 结构分析、Rizin 反汇编与分析、LIEF ELF 修复与重写、补丁会话、构建导出、Cloudflare Tunnel 暴露,以及可选的 APK MCP 桥接。

应用是 Android 原生前台服务,不依赖 Python 运行环境;界面使用 Compose + Material 3,MCP HTTP 服务基于 Ktor CIO,默认端口 8000。最低系统为 Android 8.0 / API 26,许可证为 AGPL-3.0。

主要功能

  • 工具体系:内置 84 个工具,默认 lean 模式只广告核心、底层网关与 meta 工具,完整能力通过 meta_info(action=describe) 发现。
  • Rizin 原生后端:函数分析、CFG、xref、crypto 扫描、ESIL、字节搜索、反汇编、汇编。
  • LIEF 原生后端:ELF 解析、section 内容读写、section header 重建、符号修改、地址 patch。
  • 编辑会话:snapshot、rollback、undo、redo、check、audit、persist。
  • 构建导出:自动改名/覆盖、patch report、多输出变体、镜像到工作目录。
  • 工作目录:通过系统文件选择器授权,支持独立 .so 与 APK 内 lib/<abi>/*.so 工作流,APK 内 SO 使用流式扫描与按需提取。
  • 静态分析辅助:jni_api 还原 JNI 动态注册,packer_api 做加固/壳指纹,obfusc_api 基于真实 basic block 图检测控制流混淆并给出候选去扁平化边,strdecrypt_api 尝试单字节 XOR/add/sub/rol/ror 及给定密钥的解密,antidebug_api 扫描反调试/反 hook,import_api 经版本表溯源导入符号。
  • Flutter 分析:完全离线的 Blutter AOT 分析,覆盖 Flutter 3.44.2–3.44.7 / Dart 3.12.2 arm64。
  • 动态分析:dynamic_api 提供 unidbg 模拟执行与 frida 真机 hook 两条链路,dynamic_analyze_ai 把证据交给 AI 生成结构化报告;static_analyze_ai 是与其对等的静态入口。
  • 子代理:复用设置中的 API 地址、API Key 与模型 ID,每个子代理在独立上下文、只持有角色白名单工具。
  • 其他:system_logs 远程读取应用日志,workspace_overview / cache_clear / workspace_export 管理工作区,Cloudflare quick/named 隧道与 keepalive、状态统计。

安装与使用

从 GitHub Releases 下载 APK,按设备 ABI 选择,资产名形如:

SOMCP-1.0.23-arm64-v8a.apk
SOMCP-1.0.23-universal.apk

不确定 ABI 时安装 universal 包。启动后在应用内开启服务,默认端口 8000,MCP token 访问控制出厂默认开启,可绑定 127.0.0.1 或 0.0.0.0。

推荐的分析工作流:

so_open(action=list)
so_open(path=...)
analyze_elf(view=stats)
analyze_functions
read_disasm(locator=...)
session_open
edit_asm(dryRun=true)
session_history(action=check)
build_so

电脑侧直接调用手机 MCP 时,先执行 adb forward tcp:8000 tcp:8000,再使用 http://127.0.0.1:8000/mcp。

调用提示:so_open、search_bytes、analyze_*、read_disasm 等重型工具受全局并发闸门保护,自动化客户端应串行调用,遇到 SERVER_BUSY 按 retryAfterMillis 重试同一请求。

注意事项

  • Unidbg 原生库:官方 Release APK(v1.0.18+)已内置,但只有 64 位 ABI 完整可用。armeabi-v7a / x86 不含 libunicorn.so,emulate_call / emulate_dump 在 32 位设备上不可用;库缺失时 system_control(action=status) 会标注 requires-extra-install,emulate_* 返回 EMULATOR_UNAVAILABLE。自行构建 Debug 包时还需把 unidbg 上游 native 放入 app/src/main/jniLibs/<abi>/。
  • frida:frida-server / frida-gadget 不随 APK 内置,需在已 root 设备上单独安装;未就绪时 dynamic_api(action=capabilities) 会如实标注不可用。
  • 更新与校验:应用只通过 bilieebiliee1-design/SOMCP 的 GitHub 正式 Releases 检测更新,draft、prerelease、普通提交与构建产物都不进入更新通道。Release 存在校验资产时,安装前会强制验证 SHA-256,校验文件只从 GitHub 官方域获取。
  • 再分发义务:本软件以 AGPL-3.0 授权,任何再分发(含修改、改名、二次打包)必须保留版权与许可声明及 NOTICE、继续以 AGPL-3.0 授权、向接收者提供完整对应源代码并标注修改。
  • 仓库中的第三方依赖、submodule、生成资源和补丁仍分别遵循各自上游许可证。

本作品整理自 GitHub 开源项目 bilieebiliee1-design/SOMCP,原作者 @bilieebiliee1-design,许可证 AGPL-3.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v1.0.23当前版本

    迁移至 CNB 流水线并修复多处 CI 构建问题;新增 30 个只读 T1 审计工具;修复建议类 issue 被误判自动关闭、更新提示异常、blutter 退出码等问题;升级 fastjson 与 jsoup。

评论