|
|
APK 抄袭核查报告
核查日期:2026-08-22
被指控方:1.0.0.apk(应用名"清风",包名 com.qingfeng.app,大小约 180MB)
原创方:SOMCP-main-arm64-v8a.apk(应用名"SOMCP",包名 com.soreverse.mcp,大小约 42MB)
核查结论:高度疑似抄袭 / 二次打包,核心代码、引擎及资源几乎全部复用自 SOMCP
处理结果:删贴处理,如有再次发布,封号处理
一、核心证据
1. 包名伪装,类名未改(最直接证据)
1.0.0.apk 仅将 Manifest 的 package 属性从 com.soreverse.mcp 改为 com.qingfeng.app,应用标签从 "SOMCP" 改为 "清风",但所有核心组件的完整类名原封不动:
| 组件类型 | SOMCP | 1.0.0.apk | | Application | com.soreverse.mcp.SoReverseApplication | com.soreverse.mcp.SoReverseApplication(完全一致) | | 主 Activity | com.soreverse.mcp.MainActivity | com.soreverse.mcp.MainActivity(完全一致) | | 崩溃报告 | com.soreverse.mcp.CrashReportActivity | com.soreverse.mcp.CrashReportActivity(完全一致) | | 前台服务 | com.soreverse.mcp.service.McpForegroundService | com.soreverse.mcp.service.McpForegroundService(完全一致) | | Blutter 服务 | com.soreverse.mcp.blutter.BlutterRunnerService | com.soreverse.mcp.blutter.BlutterRunnerService(完全一致) | | 开机广播 | com.soreverse.mcp.service.BootReceiver | com.soreverse.mcp.service.BootReceiver(完全一致) |
正常独立开发的应用不可能出现"包名是 A,但所有核心类都在 B 包下"的情况,这是典型的二次打包特征。
2. 代码包结构高度重合
com.soreverse.mcp 下的子包对比:
| 子包 | SOMCP | 1.0.0.apk | | blutter |
|
| | engine |
|
| | nativecore |
|
| | service |
|
| | core |
| (可能合并) | | sandbox |
| (新增) |
- SOMCP:com.soreverse 下共 24 个 smali 文件
- 1.0.0:com.soreverse 下共 25 个 smali 文件(仅多 1 个,为新增 sandbox 功能)
此外,com.github.unidbg(ARM 模拟引擎)、com.github.zhkl0228、com.lambdapioneer.argon2kt、com.sun.jna 等第三方/自研库的包结构完全一致。
3. rizin 反汇编引擎资源完全复用
assets/rizin/plugins/rz_ghidra_sleigh/ 目录下包含数百个 CPU 架构定义文件(.cspec / .ldefs / .pspec / .sla),从 6502、8051、ARM、AARCH64、MIPS、PPC、RISC-V、x86 到 TriCore 等,两个 APK 的文件列表和绝大多数文件大小完全一致。
这是 rizin 反汇编框架的核心数据文件,独立开发不可能产出完全相同的文件集合。
4. Native 库关键文件完全相同
| so 库 | SOMCP 大小 | 1.0.0 大小 | 说明 | | libblutter_5e4949e6decb093d82c1.so | 37,503,728 | 37,503,728 | 完全相同,连哈希文件名都一致 | | libc++_shared.so | 1,374,336 | 1,374,336 | 完全相同 | | libjnidispatch.so | 157,720 | 157,720 | 完全相同 | | libandroidx.graphics.path.so | 10,096 | 10,096 | 完全相同 | | libxanso_native.so | 96,496 | 96,624 | 基本一致 | | libkeystone.so | 6,517,064 | 6,517,200 | 基本一致 |
libblutter_5e4949e6decb093d82c1.so 的文件名本身就是内容哈希,两个 APK 文件名完全相同意味着该 so 是同一个编译产物。
5. 其他资源一致
- assets/PublicSuffixDatabase.list:两者均为 132,737 字节,完全相同
- assets/blutter/runners.json:SOMCP 167,875 字节,1.0.0 171,435 字节(仅略大,为新增 runner 配置)
- res/values-*/ 多语言资源目录:两者语言列表完全一致(约 90 个语言/地区目录)
- Manifest 权限列表:12 项基础权限完全一致,1.0.0 仅额外增加了存储管理和 Shizuku 相关权限
二、1.0.0.apk 的增量修改(非抄袭部分)
1.0.0.apk 在 SOMCP 基础上做了以下新增功能,体体积从 42MB 膨胀到 180MB:
| 新增内容 | 说明 | | com.soreverse.mcp.sandbox 包 + SandboxRunnerService | 沙箱运行功能 | | Shizuku 支持(moe.shizuku / rikka.shizuku) | 高级权限调用 | | assets/apktool.jar(15MB) | 内置 APK 反编译工具 | | assets/jadx/(jadx-runtime + jre17,约 38MB) | 内置 Java 反编译工具 | | assets/terminal/(busybox + python + node,约 47MB) | 内置终端环境 | | libfrida_server.so(53MB)、libcloudflared.so(25MB)等 | 新增动态调试/隧道工具 | | AppFilesDocumentsProvider | 文件管理功能 | | rizin 从单库 librz_native.so(63MB)拆分为模块化多库 | 编译方式调整 |
三、结论
1.0.0.apk("清风")构成对 SOMCP 的抄袭/侵权,理由如下:
- 核心代码未做任何混淆或重命名:所有核心类仍保留 com.soreverse.mcp 原始包名,连 Application 类名都未改,这是最直接的抄袭证据。
- 核心引擎整体搬运:blutter 引擎(so 哈希名一致)、rizin 反汇编引擎(数百个架构定义文件一致)、unidbg ARM 模拟引擎(包结构一致)全部原样复用。
- 资源文件高度一致:PublicSuffixDatabase、多语言资源、基础 so 库等完全相同。
- 仅做表面伪装:修改了包名、应用名、about 文案,新增了若干逆向工具和沙箱功能,但核心架构 100% 来自 SOMCP。
侵权定性建议:该行为属于未经授权的二次打包(repackaging),侵犯了 SOMCP 原作者的代码著作权。若 SOMCP 采用开源许可证发布,则 1.0.0.apk 还可能违反开源许可证(如未保留版权声明、未公开修改后的源代码等)。
本报告基于 MT-MCP 反编译结果生成,分析对象为 smali 字节码、Manifest、资源文件及 native 库。 |
-
查看全部评分
总评分:好评 +2
金币 +2
|