写这个文章呢,无非就一个理由,巩固基础,不过我这种逆向思维的性格,大家大概也知道这系列文章的走向。
关于ELF的一些结构呢,我就不在这里浪费篇幅了,随便找几篇文章都比我讲得好,这里我只提一些关联性的总结。
在program header table里面
e_phoff
e_phnum
e_phentsize
表示program headers的偏移数量和大小,用来定位program header
区段表包含了节区的所有信息,需要链接的情况下必须有这个表
而接下来我们应该关心的就是区段表中的Load段了
LOAD表示一个需要从二进制文件的节区映射到虚拟地址空间,一个页是4kb(0x1000),linker载入的时候会做内存对齐。
铺垫这么多呢,也无非是为了接下来讲dump下来的so怎么修复,后续的文章我会用一个UPX压缩过的文件作为例子。