# ABCDE OpenHarmony 逆向工具包

> 使用 Kotlin 编写的 OpenHarmony 逆向工具包，可解析方舟字节码（.abc）文件，即 HarmonyOS 应用包中 modules.abc 的格式，也能解析 HAP 包和资源索引（.index）文件。其基于 Compose 的桌面查看器可浏览类、方法、字段、字面量数组及导入导出信息，并反汇编方法，以可读形式显示导入模块和资源引用；实验性功能可把部分方法直译为 JavaScript，命令行则可导出类列表和资源索引。解析核心也作为 JVM 库发布，另一个项目 abc-decompiler 即基于它的补丁分支。

- 类型：工具
- 目标：应用
- 类别：Android 工具
- 关联：基础工具
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始资源：<https://github.com/Yricky/abcde>
- 一手来源：<https://github.com/Yricky/abcde/blob/62f7fc6a0d455d478db1bf3bcb61f2b79d5a473a/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/abcde/>
- 记录 JSON：<https://awesomerea.org/resources/abcde/record.json>
- 英文版：[English](https://awesomerea.org/resources/abcde/index.md)

## 使用条件与局限

- 项目未发布任何版本或标签。README 指向 GitHub Actions 构建产物，但审阅时已无可用的工作流产物，因此需自行在本地构建 jar；所审阅的 main 分支提交（2025-11-28）也是最近一次推送。反编译为 JavaScript 的功能标为实验性：不支持含 try/catch 的函数及部分指令（如 async 相关指令），输出为未经优化的直译代码。
- 构建需要 JDK 17+。./gradlew :abcdecoder:packageReleaseUberJarForCurrentOS 生成适用于当前系统的桌面版 uber-jar，CI 使用 -Puniversal 构建时则打包 Linux x64/arm64、Windows x64 和 macOS x64/arm64 的 Compose 运行时；Gradle 除 Maven Central 和 Google 外，还通过阿里云 Maven 镜像解析依赖。./gradlew publishToMavenLocal 可将核心模块发布为 io.github.yricky.oh:abcde-jvm 供其他工程引用，abclen 包体积分析和 findStr 字符串查找两个示例演示了库的用法。
- 输入为用户自有 OpenHarmony 或 HarmonyOS 应用包中的 .abc、.hap 和 resources.index 文件；仓库不附带示例应用。仓库中的 isa.json 指令表由 OpenHarmony arkcompiler_runtime_core 的 isa.yaml 生成，设置 Gradle 属性 updateIsaDefine 时会重新从 Gitee 获取。
- CI 只构建通用 jar。大多数 JUnit 测试从作者本机路径或 abcPath 环境变量读取示例 .abc、.hap 或 resources.index 文件，因此仅凭仓库只能运行少数编码与校验和测试，也未报告反汇编或反编译准确性结果。
- 采用 Apache-2.0 许可；图形界面附带的 JetBrains Mono 字体采用 SIL OFL。

## 一手来源

1. <https://github.com/Yricky/abcde/blob/62f7fc6a0d455d478db1bf3bcb61f2b79d5a473a/README.md>
2. <https://github.com/Yricky/abcde/blob/62f7fc6a0d455d478db1bf3bcb61f2b79d5a473a/docs/libabcde.md>
3. <https://github.com/Yricky/abcde/blob/62f7fc6a0d455d478db1bf3bcb61f2b79d5a473a/.github/workflows/universal-jar.yml>
4. <https://github.com/Yricky/abcde/blob/62f7fc6a0d455d478db1bf3bcb61f2b79d5a473a/abcdecoder/build.gradle.kts>
5. <https://github.com/Yricky/abcde/blob/62f7fc6a0d455d478db1bf3bcb61f2b79d5a473a/modules/abcde/build.gradle.kts>
6. <https://github.com/Yricky/abcde/tree/62f7fc6a0d455d478db1bf3bcb61f2b79d5a473a/modules/abcde/src/commonMain/kotlin/me/yricky/oh/abcd/decompiler>
7. <https://github.com/Yricky/abcde/tree/62f7fc6a0d455d478db1bf3bcb61f2b79d5a473a/modules/abcde/src/jvmTest/java/me/yricky/oh>
8. <https://github.com/Yricky/abcde/blob/62f7fc6a0d455d478db1bf3bcb61f2b79d5a473a/abcdecoder/src/jvmMain/kotlin/me/yricky/abcde/cli/CliFunc.kt>
9. <https://github.com/Yricky/abcde/blob/62f7fc6a0d455d478db1bf3bcb61f2b79d5a473a/LICENSE>
10. <https://github.com/ohos-decompiler/abc-decompiler/blob/427c4cd9f80496236a4a3548d29a6b8aaf74b8e0/README.md>

## 同分区更多条目：应用

- [de4js JavaScript 反混淆与解包工具](https://awesomerea.org/zh/resources/de4js/index.md) · 工具
- [DexKit 混淆 DEX 代码检索库](https://awesomerea.org/zh/resources/dexkit/index.md) · 工具
- [bun-demincer Bun 可执行文件 JavaScript 还原工具](https://awesomerea.org/zh/resources/bun-demincer/index.md) · 工具
- [dex-oracle Dalvik 反混淆工具](https://awesomerea.org/zh/resources/dex-oracle/index.md) · 工具
- [arkdecompiler 鸿蒙 NEXT 反编译器](https://awesomerea.org/zh/resources/arkdecompiler/index.md) · 工具
- [JNIAnalyzer Ghidra 扩展](https://awesomerea.org/zh/resources/jnianalyzer/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
