加壳技术一览

加壳技术简史

第一代壳Dex加密 第二代壳Dex抽取与so加固 第三代壳Dex动态解密与so混淆
1.dex字符串加密 1.对抗第一代壳常见的脱壳法 1.Dex Method代码动态解密
2.资源加密 2.Dex Method代码抽取到外部(通常企业版) 2.So代码膨胀混淆
3.对抗反编译 3.Dex动态加载 3.对抗之前的出现的所有脱壳法
4.反调试 4.So加密  
5.自定义DexClassLoader    

dex的加固技术发展

  1. dex整体加固:文件加载和内存加载
  2. 函数抽取:在函数粒度完成代码的保护
  3. VMP和Dex2C:Java函数Native化点

so的加固种类

  1. 基于init、init_array以及JNI_Onload函数的加壳
  2. 基于自定义linker的加壳工具

dex加固强度

  1. dex整体加壳是基础防护

  2. 函数抽取是中阶防护

  3. VMP和Dex2c是高级防护:保护效果最强

    未来?arm指令级别的VMP即将来临

frida-server无法关闭退出?

ps -e |grep frida

kill -9 pid

反调试遇则不决?

  1. 换frida版本

  2. 换hluwa-frida
  3. 先启动objection 进行注入,再 load plugin frida-dexdump

ida无法识别函数体?(F5/Tab)

  • 在函数开头按P键

English

insensitive 不敏感