elf文件解析(一)——IDA PRO视角的符号
elf文件解析(一)——IDA PRO视角的符号
由于网上并没有相关资料说IDA是怎么解析符号的,那我们就手动分析一下
首先我们看一下原版的libdexhelper.so
可以看出来文件是加过密的,只解析出来了一部分segment,但是这并不影响extern中符号名的解析
dump解密
再来看下内存中dump出来的效果,segment多了起来,而且extern的每个项都有了引用,分别是被plt和got引用
系统库libc.so(64位)
可以看到系统库中的libc.so各种segment就都有了,符号也是正常显示出来,got表和plt表也能引用到extern中的各项。
结论:有没有plt和got都可以解析出来符号
我们继续往下看
众所周知,符号解析需要用到符号表,测试也确实删除符号表项直接解析不出来符号,但是extern所显示的符号是怎么和dynsym对应起来的呢,答案是按顺序,如果dynsym中的表项顺序替换,extern的解析也会被互换,进而影响到plt和got的解析。
idapython解析符号表
可以看到每个表项的大小为
DCD(4字节)+DCB(1字节)+DCB(1字节)+DCW(2字节)+DCQ(8字节)+DCQ(8字节)=24字节
我们使用idapython将.rela.plt都给patch 0
1 | |
发现imports表全部消失
结论:重定位表和符号表共同决定着imports表
elf文件解析(一)——IDA PRO视角的符号
http://showfaker.top/2024/03/06/ida-pro-elf-sym/