你的位置:首页 > 软件开发 > 操作系统 > 浅谈被加壳ELF(即android的so文件)的调试

浅谈被加壳ELF(即android的so文件)的调试

发布时间:2015-07-29 20:00:11
本文只讨论如何调试被加壳的ELF文件,包括调试中的技巧运用及调试过程中可能遇到的问题的解决方法,不包含如何还原加固的DEX本文将以某加壳程序和某加固为目标。一、ELF格式简介ELF全称:Executable and Linkable Format,是Linux下的一种 ...

浅谈被加壳ELF(即android的so文件)的调试

本文只讨论如何调试被加壳的ELF文件,包括调试中的技巧运用及调试过程中可能遇到的问题的解决方法,不包含如何还原加固的DEX本文将以某加壳程序和某加固为目标。

一、ELF格式简介

ELF全称:Executable and Linkable Format,是Linux下的一种可执行文件格式。

此种文件格式和WINDOWS一样,常见分为两种类型:

1.可执行文件(Executable File),对应PE子类型:EXE

2.共享目标文件(Shared Object File),后缀名:.so,对应PE子类型:DLL

二、ELF文件加载大概流程

1.通过Section Header或者Program Header加载需要的镜像数据

和WINDOWS PE加载机制不同,ELF有些文件数据是不会加载到内存镜像中。

2.加载SO NEED LIB和SYM

类似PE的Import_table

3.执行重定位(如果有)

类似PE的Reloc_table

4.执行INIT_ARRAY段或者INIT段(如果有,数组中的地址不等于0xffffffff,0表示结束)

类似PE的TLS,已知的被加壳的ELF,壳代码都出现在这两个段里。

PE中的TLS也常常出现在壳中,例如Vmprotect, Execryptor等。 

5.执行入口点代码(如果有)

所有的上述加载流程代码全部包含在linker.so里,可参看安卓源码或逆向linker.so

三、ARM CPU简介

原标题:浅谈被加壳ELF(即android的so文件)的调试

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录