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/