如何让 Radare2 使用符号 table 信息进行库调用?
How to get Radare2 to use symbol table information for library calls?
Objdump 可以找出二进制文件何时调用 GLIBC 函数,例如 printf
:
$ objdump -d crackme03.64 -Mintel | grep printf
5c8: ff 25 12 0a 20 00 jmp QWORD PTR [rip+0x200a12] #200fe0 <__printf_chk@GLIBC_2.3.4>
但是,查看相同的地址,Radare 的帮助要小得多:
[0x000005c8]> pd 2
/ (fcn) sub.__cxa_finalize_224_5c8 8
| sub.__cxa_finalize_224_5c8 ();
| ; CALL XREF from 0x000007bc (sym.main)
| ; CALL XREF from 0x00000809 (sym.main)
| 0x000005c8 ff25120a2000 jmp qword [reloc.__cxa_finalize_224] ; [0x200fe0:8]=0 LEA reloc.__cxa_finalize_224 ; reloc.__cxa_finalize_224
\ 0x000005ce 6690 nop
有没有办法让Radare弄清楚这些函数对应的是什么?
如果您使用的是 git 的最新版本,它应该可以工作。
Radare2 的开发速度很快,项目每天都在更新,因此建议使用当前的 git 版本。更新您的版本,它应该可以解决您的问题:
$ git clone https://github.com/radare/radare2.git
$ cd radare2
$ ./sys/install.sh
Objdump 可以找出二进制文件何时调用 GLIBC 函数,例如 printf
:
$ objdump -d crackme03.64 -Mintel | grep printf
5c8: ff 25 12 0a 20 00 jmp QWORD PTR [rip+0x200a12] #200fe0 <__printf_chk@GLIBC_2.3.4>
但是,查看相同的地址,Radare 的帮助要小得多:
[0x000005c8]> pd 2
/ (fcn) sub.__cxa_finalize_224_5c8 8
| sub.__cxa_finalize_224_5c8 ();
| ; CALL XREF from 0x000007bc (sym.main)
| ; CALL XREF from 0x00000809 (sym.main)
| 0x000005c8 ff25120a2000 jmp qword [reloc.__cxa_finalize_224] ; [0x200fe0:8]=0 LEA reloc.__cxa_finalize_224 ; reloc.__cxa_finalize_224
\ 0x000005ce 6690 nop
有没有办法让Radare弄清楚这些函数对应的是什么?
如果您使用的是 git 的最新版本,它应该可以工作。
Radare2 的开发速度很快,项目每天都在更新,因此建议使用当前的 git 版本。更新您的版本,它应该可以解决您的问题:
$ git clone https://github.com/radare/radare2.git
$ cd radare2
$ ./sys/install.sh