一.加載型殼
二.代碼抽取型殼
(一)、內存重組脫殼
https://github.com/zyq8709/DexHunter DexHunter ----->DumpClass()方法
此方法針對非一次性解密的Dex結構進行了遍歷加載,從而有效實現內存重組。
三、代碼混淆殼
LLVM 原生程序混淆 llvm:pass
Obfuscator-LLVM是基於LLVM pass的開源代碼混淆殼
https://github.com/obfuscator-llvm/obfuscator
指令替換、控制流平坦化、僞照控制流
一、指令替換還原
dagger https://github.com/repzret/dagger
垃圾指令的消除、https://github.com/tkmru/nao nao
二、控制流平坦化混淆的還原
Obfuscator-LLVM逆向還原
http://blog.quarkslab.com/deobfuscation-recovering-an-ollvm-protected-program.html