【Android】DEX 文件混淆加密

前言

混淆加密主要是为了隐藏 dex 文件中关键的代码,力度从轻到重包括:

  • 静态变量的隐藏
  • 函数的重复定义
  • 函数的隐藏
  • 整个类的隐藏

混淆后的 dex 文件依旧可以通过 dex2jar、jade 等工具的反编译成 java 源码,但是里面关键的代码已经看不到了

四种混淆加密的实现方式都是通过修改 class_def 结构体中字段实现的

静态变量隐藏

static_vaules_off 保存了每个类中静态变量的值的偏移量,指向 data 区里的一个列表
格式为 encode_array_item,如果没有此项内容,则该值为 0

所以要实现静态变量赋值隐藏只需要将 static_values_off 值修改为 0

参考链接

https://juejin.cn/post/6844903550737350669

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注