首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
HarmonyOS
发新帖
0
2
[原创] xpanda-mcp:鸿蒙 App 逆向分析mcp
发表于: 2026-6-22 16:00
2290
[原创] xpanda-mcp:鸿蒙 App 逆向分析mcp
鸡小葵
2026-6-22 16:00
2290
大家好!今天和大家分享一个刚刚开源的鸿蒙反编译 MCP (Model Context Protocol) 服务 —— **xpanda-mcp**。 - **GitHub 仓库地址**:<a href="elink@84dK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6v1K9f1A6#2L8X3#2G2i4K6u0r3P5s2m8S2L8X3c8S2i4K6u0V1L8h3y4H3"><mark class="encrypted">07bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6v1K9f1A6#2L8X3#2G2i4K6u0r3P5s2m8S2L8X3c8S2i4K6u0V1L8h3y4H3</mark></a> - **底层反编译引擎**:基于鸿蒙反编译器 <a href="elink@d1bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6S2M7$3#2B7L8i4l9H3i4K6u0r3P5s2m8S2L8X3c8S2">xpanda</a> 扩展构建 --- ## 为什么需要它? 随着 HarmonyOS 的普及,鸿蒙应用的逆向与安全审计需求日益增加。然而,鸿蒙的 **ArkTS 字节码 (ABC)** 目前还没有比较普及的反编译MCP工具,以支持AI应用安全审计。 为了解决这个痛点,我把 `xpanda` 反编译引擎封装成了 **MCP 服务**。现在,你可以让 **Claude Desktop、Cursor、Windsurf 等 AI 助手直接调用反编译引擎**,以“上帝视角”自动扫描、索引、反编译以及分析整个鸿蒙 HAP 包的逻辑,甚至让 AI 帮你自动还原调用链! --- ## ???? 核心功能特性 1. **HAP 自动解包与多线程索引**:直接给 AI 传入 `.hap` 包路径,后台自动解压、提取 `.abc` 并建立全局索引(测试 9000+ 类的包,全量索引只需 **2.4 秒**)。 2. **高保真 Fake JS 还原**:将复杂的字节码结构一键还原为人类可读的伪 JavaScript (Fake JS) 代码。 3. **启发式交叉引用 (Xrefs)**:不仅支持强引用的方法/属性追踪,还通过全局扫描 String Pool 建立启发式关系网,彻底解决 ArkTS 动态加载导致的调用图断裂问题。 4. **全局搜索引擎**: - **正则符号搜索 (`search_symbol`)**:支持使用正则表达式在全局检索类名、方法名或属性。 - **指令与文本搜索 (`search_text`)**:可全局检索特定的敏感字符串、URL、或者特定字节码指令(如 `ldlazymodulevar`)。 --- ## 实战演示:工具调用与返回结果展示 当你在 Cursor/Claude 中配置好本服务后,AI 可以自主调用以下工具,下面是真实的返回数据: ### 1️⃣ 全局正则符号定位:查找 `MainAbility` 当你想在几万个混淆类中定位入口 Ability 时,AI 会调用 `search_symbol`: * **输入参数**:`{"namePattern": ".*MainAbility.*", "type": "class"}` * **工具返回**: ```text Search Symbol Results (matching '.*MainAbility.*', type: 'class', max 150): - [class] L&phone/src/main/ets/Ability/MainAbility&; ``` ### 2️⃣ 全局字符串定位:查找敏感日志 `WalletLog` 的引用 传统的静态分析无法找出谁调用了动态绑定的日志类,而 `xpanda-mcp` 结合 String Pool 的启发式分析瞬间就能定位: * **输入参数**:`{"query": "WalletLog", "searchIn": "string"}` * **工具返回**: ```text Search Text Results (matching 'WalletLog', searchIn: 'string', max 150): - [string] "WalletLog" referenced in L&@wallet/access-card/src/main/ets/a/d/e&1.0.0;->#~@0>#match - [string] "WalletLog" referenced in L&@wallet/access-card/src/main/ets/a/d/e&1.0.0;->#~@0>#process - [string] "WalletLog" referenced in L&@wallet/access-card/src/main/ets/a/d/f9/a76&1.0.0;->#~@0>#aboutToAppear - [string] "WalletLog" referenced in L&@wallet/access-card/src/main/ets/a/d/f9/x65/v82&1.0.0;->#~@0>#checkCardNum - ... (省略部分匹配项) ``` ### 3️⃣ 指令级特征查找:搜索使用了“动态懒加载”的函数 如果我们想在全局审计中找出哪些地方存在动态模块导入,可以直接通过 `search_text` 检索底层字节码指令: * **输入参数**:`{"query": "ldlazymodulevar", "searchIn": "code"}` * **工具返回**: ```text Search Text Results (matching 'ldlazymodulevar', searchIn: 'code', max 150): - [code] L&@wallet/access-card/src/main/ets/a/d/d74&1.0.0;->#~@0>#doChange (contains query in bytecode) - [code] L&@wallet/access-card/src/main/ets/a/d/e&1.0.0;->#~@0>#match (contains query in bytecode) - [code] L&@wallet/access-card/src/main/ets/a/d/e&1.0.0;->func_main_0 (contains query in bytecode) - ... (找到数十处包含懒加载指令的方法) ``` 之后,你可以直接对 AI 下达指令: > “帮我反编译包含 `ldlazymodulevar` 并且引用了 `WalletLog` 的那几个函数,并分析它们是在动态加载什么模块。” AI 就会自动调用 `get_method_source` 并给出完整的逻辑分析,体验非常丝滑! --- ## ????️ 快速上手 我们已经打包好了独立的 **Fat JAR**,不需要复杂的编译流程,只需本地有 Java 环境即可使用。 ### 1. 编译 (或直接在 GitHub Release 下载打包好的 jar) ```bash ./gradlew :mcp:jar ``` 编译生成的单文件 JAR 路径为:`mcp/build/libs/xpanda-mcp.jar` ### 2. 在 Claude Desktop 中配置 编辑 Claude 的配置文件 `claude_desktop_config.json`: ```json { "mcpServers": { "xpanda-mcp": { "command": "java", "args": [ "-jar", "/你的绝对路径/xpanda-mcp/mcp/build/libs/xpanda-mcp.jar" ] } } } ``` 重启 Claude Desktop 即可激活 14 个高能鸿蒙分析工具! --- ## 项目链接 如果你对鸿蒙安全研究、反编译感兴趣,欢迎来点个 **Star** 支持一下,也欢迎提 Issue 和 PR 共同完善项目! <a href="elink@7afK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6v1K9f1A6#2L8X3#2G2i4K6u0r3P5s2m8S2L8X3c8S2i4K6u0V1L8h3y4H3">GitHub: JiJunmo/xpanda-mcp</a>
传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!
收藏
・
0
点赞
・
2
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
megaparsec
为你点赞!
2026-9-4 13:11
asmjmp0
你的帖子非常有用,感谢分享!
2026-8-26 16:33
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
2
)
asmjmp0
雪 币:
21
活跃值:
(1214)
能力值:
( LV2,RANK:10 )
在线值:
发帖
7
回帖
25
粉丝
25
关注
私信
asmjmp0
2
楼
鸿蒙还是没啥热度啊
2026-8-26 16:34
0
鸡小葵
雪 币:
823
活跃值:
(893)
能力值:
( LV3,RANK:20 )
在线值:
发帖
2
回帖
4
粉丝
2
关注
私信
鸡小葵
3
楼
asmjmp0
鸿蒙还是没啥热度啊
包都拿不到,没热度正常
2026-9-8 11:32
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
鸡小葵
2
发帖
4
回帖
20
RANK
关注
私信
他的文章
[原创] xpanda-mcp:鸿蒙 App 逆向分析mcp
2290
Linux内核加载ELF文件源码分析
8259
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部