目录
前言
混淆加密主要是为了隐藏 dex 文件中关键的代码,力度从轻到重包括:
- 静态变量的隐藏
- 函数的重复定义
- 函数的隐藏
- 整个类的隐藏
混淆后的 dex 文件依旧可以通过 dex2jar、jade 等工具的反编译成 java 源码,但是里面关键的代码已经看不到了
四种混淆加密的实现方式都是通过修改 class_def
结构体中字段实现的
静态变量隐藏
static_vaules_off
保存了每个类中静态变量的值的偏移量,指向 data 区里的一个列表
格式为 encode_array_item
,如果没有此项内容,则该值为 0
所以要实现静态变量赋值隐藏只需要将 static_values_off
值修改为 0