LLVM基础
对于llvm这样的编译框架来说,IR很重要,连接着编译器的前端和后端.实际上我们在llvm中编写的各种pass都是作用在llvm IR上的,因此我们很有必要来了解下llvm IR的结构.
对于llvm这样的编译框架来说,IR很重要,连接着编译器的前端和后端.实际上我们在llvm中编写的各种pass都是作用在llvm IR上的,因此我们很有必要来了解下llvm IR的结构.
Android应用保护发展的早期,通过对Dex整体进行加密或隐藏来完成对Dex的保护,也称之为一代壳.这时候侧重于对Dex的整体保护,相应的对Dex文件进行整体的Dump也就完成了脱壳.随着Android加固的发展,对Dex文件的保护也就提升到了函数粒度,通过对Dex中的函数指令进行抽取来抗衡Dex的整体Dump.在Android Dalvik环境下FUPK3通过引入主动调用思想,完美的解决了指令抽取型壳,但可惜的是该项目基于Android 4.4.4_r1进行开发,当下很多App已经不支持在Android4.4下安装运行.在Android ART环境下的今天,Fart基于主动调用的思想再加上将对Dex的Dump提升了到函数粒度,可有效来解决指令抽取型壳.