工具

arkdecompiler 鸿蒙 NEXT 反编译器

面向 HarmonyOS NEXT(纯血鸿蒙)应用的反编译器,发布于 jd-opensource GitHub 组织下,可将 Panda 二进制文件(.abc 方舟字节码)还原为 ArkTS 源码。其 xabc 程序解析字节码,将其提升为方舟编译器的 Panda IR 以便分析,再通过循环、类、词法环境和模块变量的重建生成 ArkTS 语法树,最后输出为 ArkTS 代码。跨平台图形界面可基于 Electron 或 Tauri 构建,提供文件浏览、函数与符号列表、交叉引用、搜索和十六进制视图;README 链接了 2025 年和 2026 年的 Black Hat Arsenal 展示。

目标
应用
类别
Android 工具
关联
基础工具
来源复核于

使用条件与局限

  • 审阅对象为 2026-07-23 的 master 提交。README 标注已支持全部指令并完成基础图形界面,而充分覆盖官方编译器和 test262 中的边界情况仍在进行中。v0.1.0 版(2026-04-23)附带 Linux x86、macOS arm64 和 Windows x86 的 Electron 与 Tauri 图形界面构建;反编译仅支持 Linux,反汇编三个平台均可,使用图形界面前需先配置命令行工具的路径。
  • xabc 的构建在 Ubuntu 22.04 上测试,需置于 OpenHarmony 方舟编译器独立构建环境中:scripts/prepare.sh 会安装 repo 工具、从 Gitee 同步 ark-standalone-build 清单、下载其预编译工具,并切换到 OpenHarmony v6.0.0.1-Release;之后须将 patches/ 中的补丁应用到 arkcompiler 的 runtime_core、ets_frontend 以及 third_party/protobuf,再用 gn 和 ninja 构建 xabc。Dockerfile 则使用 Ubuntu 20.04 和 OpenHarmony 5.1.0 版本。
  • xabc 读取一个 .abc 文件,输出 ArkTS 代码和 AST 转储,默认分别为 demo.abc 和 arkdemo.ts。文档中的流程是用 OpenHarmony 的 es2abc 编译用户自己的 demo.ts,再对结果反编译;其他字节码须来自用户自己的应用包,仓库不附带任何应用或 .abc 样例。
  • tests/ 收录 18 个 TypeScript 样例,涵盖类、循环、生成器、异步函数和模块等特性。autotests/scantstests.py 会编译 test262 和 OpenHarmony TypeScript 子模块中的用例,记录反编译是否正常退出、失败、崩溃或超时,并用黑名单跳过部分用例。仓库未报告通过率或语义等价结果,也没有 CI 工作流;本次审阅未构建或运行任何内容。
  • 采用 Apache-2.0 许可;其构建所依赖的 OpenHarmony 组件保留各自许可证。所审来源未确立与 REA 的关联。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · jd-opensource/arkdecompiler · 修订 8afb369
  2. xabc.cpp GitHub · jd-opensource/arkdecompiler · 修订 8afb369
  3. scripts/prepare.sh GitHub · jd-opensource/arkdecompiler · 修订 8afb369
  4. patches GitHub · jd-opensource/arkdecompiler · 修订 8afb369
  5. docker/Dockerfile GitHub · jd-opensource/arkdecompiler · 修订 8afb369
  6. build.sh GitHub · jd-opensource/arkdecompiler · 修订 8afb369
  7. tests GitHub · jd-opensource/arkdecompiler · 修订 8afb369
  8. autotests/scantstests.py GitHub · jd-opensource/arkdecompiler · 修订 8afb369
  9. ui GitHub · jd-opensource/arkdecompiler · 修订 8afb369
  10. LICENSE GitHub · jd-opensource/arkdecompiler · 修订 8afb369
  11. https://github.com/jd-opensource/arkdecompiler/releases/tag/v0.1.0

同分区更多条目:应用

应用分区全部 136 项资源