首页
社区
课程
招聘
[原创] 鸿蒙hap应用反编译工具 abc-decompiler 使用分享
发表于: 2024-9-3 08:51 4258

[原创] 鸿蒙hap应用反编译工具 abc-decompiler 使用分享

2024-9-3 08:51
4258

目前特性:

下载地址:https://github.com/ohos-decompiler/abc-decompiler/releases

image

使用

目前 abc-decompiler 只支持拖入 .abc 文件进行分析, abc 文件可以通过解压 hap 包获取

image

拖入 modules.abc 点击源代码标签可以查看 abc 文件中的类和类里面的代码

image

try-catch 指令

image

ABC 基础概念

类方法参数

类方法有三个默认参数,猜测应该是由解释器传入:

  • functionObject
  • newTarget
  • this

image

匿名函数

abc 中匿名函数的函数名命名规则:#xxxx#

image

这种函数一般是当作函数指针使用

image

func_main_0

这个是每个类/模块的初始化函数,目前看到里面主要是初始化一些全局变量,放到词法环境或者模块变量中,猜测类加载后首先会执行这个函数(未确认)

image

图片描述

反编译代码的特殊处理

特殊指令

词法环境相关

词法环境操作的相关指令会被反编译为 lex_env_A_B

image

示例:

image

模块导入指令

ldexternalmodulevar 用于导入外部模块的类和方法,会被反编译成 import 指令,其返回值为导入的模块对象,即 hilog​.

image

伪函数调用指令

有一部分指令目前通过伪函数调用方式实现,比如 createobjectwithbuffer

image

这些伪函数可在源码中搜索:InsnDecoder.java#L423 来确定意义

image


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2024-9-3 09:19 被mb_jyhgtmwe编辑 ,原因:
收藏
免费 3
支持
分享
最新回复 (2)
雪    币: 9
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
1
2024-9-4 16:45
0
雪    币: 1379
活跃值: (2796)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2024-9-11 13:16
0
游客
登录 | 注册 方可回帖
返回
//