这个gdb是通过我的OSX上的Homebrew安装的 我想知道为什么gdb不能在我的OSX上运行这个文件(我正在玩pwn),而我可以通过VirtualBox在Kali linux上运行它。 我看到有人提到" Apple版gdb",这是问题吗? 我该如何解决这个问题呢? 我搜索了很长一段时间的答案,甚至问我的教授,请帮我一把!
➜ file bof
bof: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV),
dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24,
BuildID[sha1]=ed643dfe8d026b7238d3033b0d0bcc499504f273, not stripped
➜ gdb bof
GNU gdb (GDB) 8.0
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
.
.
.
"/Users/me/Desktop/test/bof": not in executable format: File format not recognized
(gdb)
答案 0 :(得分:2)
这个gdb是通过我的OSX上的Homebrew安装的。
...
bof:ELF 32位LSB共享对象,Intel 80386,版本1(SYSV), 动态链接,解释器/lib/ld-linux.so.2,for GNU / Linux 2.6.24,
有很多方法可以配置gdb。默认情况下 - 如果您没有通过任何特殊选项进行配置 - 就是配置主机平台所需的内容。
在这种情况下,可能发生的事情是您的gdb配置为OSX - 意味着Mach-O而不是ELF - 因此gdb无法读取ELF文件。您可以通过在gdb提示符下键入set gnutarget <TAB> <TAB>
来测试此理论(选项卡将导致完成,这是我知道列出此处编译内容的唯一方法)。或者,您可以尝试show configuration
,但这只是说明了哪些选项传递给configure
,因此需要解释。
摆脱这种情况的一种简单方法是使用--enable-targets=all
重新配置。然后gdb也能够读取ELF文件和其他内容。