一、elfheader修复
dump出来的内存如下图所示,elf header结构有缺失
下面是正常elf头的对比图
下面是010editor对正常elf header的解析
由上图可知,dump出来的elf header除了e_phoff、e_phentsize、e_phum三个值,其它都为0。
不过这里缺失的,除了e_shoff, e_shnum, e_shtrndx三个是变量,其它都是固定值。而实际上e_shoff, e_shnum, e_shtrndx这三个值在dlopen时并没有用到,全部填0,也可以正常使用。
那么这里elf header把固定值填上,e_shoff, e_shnum, e_shtrndx三个值留空,elf header就修复好了。
elf header修复完成后的dump就跟一个so经过dlopen后,dump出来的内存是一样的了。但是这样的dump是不能直接加载的,很多情况下用IDA