介绍一种ELF文件函数粒度的加固方法,可以有效防止对程序的静态分析。这是一种有源码加固方式,需要被加固程序中代码配合。加固流程如下:1)读取ELF文件头,获取e_phoff和e_phnum2)通过Elf64_Phdr中的p_type字段,找到DYNAMIC3)遍历.dynamic,找到.dynsym ...
分类:
其他好文 时间:
2016-06-27 21:20:17
阅读次数:
336
GOT应该保存的是puts函数的绝对虚地址,这里为什么保存的却是puts@plt的第二条指令呢? 原来“解释器”将动态库载入内存后,并没有直接将函数地址更新到GOT表中,而是在函数第一次被调用时,才会进行函数地址的重定位,这样做的好处是可以加快程序加载速度,尤其对大型程序来说。有关这方面的更详细的信 ...
分类:
其他好文 时间:
2016-06-27 19:50:46
阅读次数:
294
ELF格式文件简单介绍 关于ELF文件的详细介绍,推荐阅读: ELF文件格式分析 —— 滕启明。ELF文件由ELF头部、程序头部表、节区头部表以及节区4部分组成。 通过objdump工具和readelf工具,可以观察ELF文件详细信息。 ELF文件加载过程分析 从编译、链接和运行的角度,应用程序和库 ...
分类:
其他好文 时间:
2016-06-27 19:34:32
阅读次数:
221
最近在看dex文件格式,看的是飞虫大大的android软件安全与逆向分析一书,写的条理很清晰。相对于elf文件来说,dex文件格式简单了很多,但是提到某个字段,仍然难以想象其所处位置。所以一直想用思维导图把dex文件格式画下来。因近来事务较多,未来得及画,偶然在某qq群见到此图,兴奋之至,特与大家分 ...
分类:
其他好文 时间:
2016-06-24 10:45:14
阅读次数:
268
.plt的作用是一个跳板,保存了某个符号在重定位表中的偏移量(用来第一次查找某个符号)和对应的.got.plt的对应的地址 .rel.dyn保存了.got段的开始地址,未证明 .rel.plt保存了重定位表的信息 .got据说是保存了elf文件本身的各个符号的偏移量,即不要动态链接,未证明 .got ...
分类:
其他好文 时间:
2016-06-21 17:16:13
阅读次数:
142
4.2文件格式分析 20135206 于佳心 一般的 ELF 文件包括三个索引表:ELF header,Program header table,Section header table。 1)ELF header:在文件的开始,保存了路线图,描述了该文件的组织情况。 2)Program heade... ...
分类:
其他好文 时间:
2016-06-14 19:35:47
阅读次数:
157
一、概述 1.ELF全称Executable and Linkable Format,可执行连接格式,ELF格式的文件用于存储Linux程序。ELF文件(目标文件)格式主要三种: 可重定向文件:文件保存着代码和适当的数据,用来和其他的目标文件一起来创建一个可执行文件或者是一个共享目标文件。(目标文件 ...
分类:
其他好文 时间:
2016-06-13 13:23:02
阅读次数:
220
一般的 ELF 文件包括三个索引表:ELF header,Program header table,Section header table。 1)ELF header:在文件的开始,保存了路线图,描述了该文件的组织情况。 2)Program header table:告诉系统如何创建进程映像。用来 ...
分类:
其他好文 时间:
2016-06-12 23:25:04
阅读次数:
232
日期
内核版本
架构
作者
GitHub
CSDN 2016-06-04
Linux-4.6
X86 & arm
gatieme
LinuxDeviceDrivers
Linux进程管理与调度-之-进程的描述
加载和动态链接从编译/链接和运行的角度看,应用程序和库程序的连接有两种方式。
一种是固定的、静态的连接,就是把需要用到的库函数的目标代码(二进制)代...
分类:
系统相关 时间:
2016-06-12 02:16:10
阅读次数:
465
ELF文件(目标文件)格式主要三种: 1)可重定向文件:文件保存着代码和适当的数据,用来和其他的目标文件一起来创建一个可执行文件或者是一个共享目标文件。(目标文件或者静态库文件,即linux通常后缀为.a和.o的文件) 2)可执行文件:文件保存着一个用来执行的程序。(例如bash,gcc等) 3)共 ...
分类:
系统相关 时间:
2016-06-03 06:27:07
阅读次数:
385