我想在反汇编项目中向用户显示给定 ELF 文件的导入符号(#1)。(Android 应用程序)
1d21a: f7fa e8e8 blx 173ec ; __android_log_print@plt ...
目前,我只能这样显示(#2):
1d21a: f7fa e8e8 blx 173ec
为了显示#1 之类的数据,我听说我需要解析 PLT 或 GOT 或 PLTGOT。但是我不知道如何使用它们来显示函数名称。(当然我还不知道如何解析它)
我的理论方法是反汇编PLT并找到目标偏移量并做一些事情。
例子;
000173ec __android_log_print@plt:
173ec: e28fc600 add ip, pc, #0, 12 ; ip!=pc?
173f0: e28cca11 add ip, ip, #69632 ; addr of got?
173f4: e5bcf9f4 ldr pc, [ip, #2548]!; index=2548
000173f8 sleep@plt:
173f8: e28fc600 add ip, pc, #0, 12
173fc: e28cca11 add ip, ip, #69632
17400: e5bcf9ec ldr pc, [ip, #2540]!
...
我想我可以通过拆卸 PLT 来获得 #2548 或 #2540 ......但没有信心。
有什么方法可以解析PLT并在反汇编中显示#1之类的数据?
谢谢!