-
-
[原创] 鸿蒙hap应用反编译工具 abc-decompiler 使用分享
-
发表于:
2024-9-3 08:51
4258
-
[原创] 鸿蒙hap应用反编译工具 abc-decompiler 使用分享
目前特性:
下载地址:https://github.com/ohos-decompiler/abc-decompiler/releases
使用
目前 abc-decompiler 只支持拖入 .abc 文件进行分析, abc 文件可以通过解压 hap 包获取
拖入 modules.abc 点击源代码标签可以查看 abc 文件中的类和类里面的代码
try-catch 指令
ABC 基础概念
类方法参数
类方法有三个默认参数,猜测应该是由解释器传入:
- functionObject
- newTarget
- this
匿名函数
abc 中匿名函数的函数名命名规则:#xxxx#
这种函数一般是当作函数指针使用
func_main_0
这个是每个类/模块的初始化函数,目前看到里面主要是初始化一些全局变量,放到词法环境或者模块变量中,猜测类加载后首先会执行这个函数(未确认)
反编译代码的特殊处理
特殊指令
词法环境相关
词法环境操作的相关指令会被反编译为 lex_env_A_B
示例:
模块导入指令
ldexternalmodulevar 用于导入外部模块的类和方法,会被反编译成 import 指令,其返回值为导入的模块对象,即 hilog
.
伪函数调用指令
有一部分指令目前通过伪函数调用方式实现,比如 createobjectwithbuffer
这些伪函数可在源码中搜索:InsnDecoder.java#L423 来确定意义
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2024-9-3 09:19
被mb_jyhgtmwe编辑
,原因: