目前特性:
下载地址:0b9K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6G2K9r3!0K6i4K6u0V1k6r3g2U0L8$3#2H3K9h3I4W2M7W2)9J5c8X3q4T1j5#2)9J5k6r3c8W2j5$3!0E0M7r3W2D9k6i4u0Q4x3V1k6J5k6h3I4W2j5i4y4W2M7H3`.`.
目前 abc-decompiler 只支持拖入 .abc 文件进行分析, abc 文件可以通过解压 hap 包获取
拖入 modules.abc 点击源代码标签可以查看 abc 文件中的类和类里面的代码
try-catch 指令
类方法有三个默认参数,猜测应该是由解释器传入:
abc 中匿名函数的函数名命名规则:#xxxx#
#xxxx#
这种函数一般是当作函数指针使用
这个是每个类/模块的初始化函数,目前看到里面主要是初始化一些全局变量,放到词法环境或者模块变量中,猜测类加载后首先会执行这个函数(未确认)
词法环境操作的相关指令会被反编译为 lex_env_A_B
lex_env_A_B
示例:
ldexternalmodulevar 用于导入外部模块的类和方法,会被反编译成 import 指令,其返回值为导入的模块对象,即 hilog.
hilog
有一部分指令目前通过伪函数调用方式实现,比如 createobjectwithbuffer
这些伪函数可在源码中搜索:InsnDecoder.java#L423 来确定意义
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课