ABCDE OpenHarmony逆向工具包技术文档
ABCDE OpenHarmony逆向工具包技术文档
【免费下载链接】OpenHarmony字节码分析工具 支持解析方舟字节码文件中类信息、方法信息、字面量数组信息、方法进行反汇编以及解析资源索引文件等功能。 项目地址: https://gitcode.com/OpenHarmonyToolkitsPlaza/ABCDE
1. 项目概述
ABCDE是一款基于Kotlin开发的OpenHarmony逆向工具包,主要功能包括解析方舟字节码文件(.abc)中的类信息、方法信息、字面量数组信息,对方法进行反汇编,以及解析资源索引文件等。该工具核心功能由纯Kotlin(JVM)实现,可提供平台无关的jar包供Java工程引用并进行二次开发。
2. 安装指南
2.1 环境需求
- JDK 17及以上版本
2.2 构建方式
2.2.1 从源码构建
./gradlew :abcdecoder:packageReleaseUberJarForCurrentOS
构建完成后,生成的UberJar文件位于abcdecoder/build/libs/
目录下。
2.2.2 直接下载
可从项目的GitHub Actions页面下载最新构建的预编译版本。
3. 项目使用说明
3.1 图形界面使用
- 主界面:支持拖入或点击打开.abc、.hap、.index等文件
- HAP文件查看:
- 以树形结构展示HAP包内容
- 可点击打开其中的abc和index文件
- 右侧展示解析成功的HAP包信息
- 资源索引查看:
- 支持按类型区分资源
- 提供名称+内容的查找功能
- ABC文件查看:
- 树形结构展示字节码文件中的类信息
- 支持按名称查找
- 左侧信息页签可查看字节码版本、校验和等信息
- 类信息和字节码查看:
- 查看类的字段和方法
- 支持简单索引
- 左侧信息页签显示类的导入导出信息
- 反编译功能(实验性):
- 将部分方舟字节码反编译为JS代码
- 目前存在一定局限性(见注意事项)
3.2 命令行使用
3.2.1 解析ABC文件中的类列表
java -jar /path/to/abcdecoder.jar --cli --dump-class /path/to/module.abc [--out=out.txt]
3.2.2 解析资源索引文件内容
java -jar /path/to/abcdecoder.jar --cli --dump-index /path/to/resources.index [--out=out.json]
4. API使用文档
4.1 核心功能API
ABCDE工具包提供以下核心API接口:
-
ABC文件解析:
AbcFileParser
: 解析方舟字节码文件ClassInfo
: 获取类信息MethodInfo
: 获取方法信息
-
资源索引解析:
ResourceIndexParser
: 解析资源索引文件ResourceEntry
: 资源条目信息
-
反汇编功能:
BytecodeDisassembler
: 字节码反汇编器DisassemblyResult
: 反汇编结果
4.2 API使用示例
// 解析ABC文件val abcFile = AbcFileParser.parse(File(\"module.abc\"))val classList = abcFile.classes// 解析资源索引val indexFile = ResourceIndexParser.parse(File(\"resources.index\"))val resources = indexFile.resources// 反汇编方法字节码val method = classList[0].methods[0]val disassembled = BytecodeDisassembler.disassemble(method)
5. 项目安装方式
5.1 作为库引入项目
- 将构建好的abcdecoder.jar文件添加到项目依赖中
- 或通过Gradle/Maven配置依赖
5.2 独立运行
- 下载预编译的abcdecoder.jar
- 使用以下命令运行图形界面:
java -jar abcdecoder.jar
注意事项
-
反编译功能目前处于实验阶段,存在以下限制:
- 不支持包含tryCatch的函数
- 不支持部分字节码(如async相关字节码)
- 反编译结果可读性有待优化
-
项目持续开发中,部分功能可能会发生变化
【免费下载链接】OpenHarmony字节码分析工具 支持解析方舟字节码文件中类信息、方法信息、字面量数组信息、方法进行反汇编以及解析资源索引文件等功能。 项目地址: https://gitcode.com/OpenHarmonyToolkitsPlaza/ABCDE
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考