由于近几年来移动应用变得火热,呈突发式激增。数据以及软件也面临各种安全挑战。软件保护,数据保护也成为了一个热门话题。今天就专门对Android移动软件中的ELF文件的保护进行简要说明。主要是针对ELF方面的保护进行框架描述。若以后有机会希望能整理成书,为大家提供精神食粮。


很多ELF的保护方案大部分是从windows PE文件的方案中继承下来的。总体上来说就是破坏调试以及增加调试的难度。



1.  序言



2.  ELF文件格式分析



3.  ELF常见HOOK方案及应用


a)  Inline hook


b)  GOT hook


c)  PRELOAD hook


d)  Linker重定位hook



4.  ELF若干种保护方案


a)  UPX壳及分析


b)  Shellcode保护方案


c)  链接器及加载器


d)  VMP



5.  ELF混淆方案


a)  花指令


b)  指令乱序,使用B衔接


c)  指令替换,替换为B指令


d)  指令索引并且乱序,使用索引表来跳转


e)  LLVM方式混淆



6.  ELF反调试


a)  捕捉信号


b)  检测tracerPID


c)  检测调试进程


d)  处理ELF格式,阻止IDA加载


e)  多进程守护


f)  CRC校验


g)  调试中断指令检测(类似x86 0xCC)



7.  ELF函数加密


a)  ELF入口加解密


b)  函数动态加解密,指令级加解密


c)     基于加载器的函数加解密



8.  总结



放个目录在这儿是想看看大家有何反应。看来大家大部分还是比较失望的。


都要求放样张,其实我这边还没开始写。只是有大量的资源。由于私密问题,还是无法跟大家分享。现在只是贴出一小块。



1. UPX解析




2. VMP demo




3. inline hook相关可以参考之前发的inline hook bug 修复



4.... 各种技术暂时保密