我从其他 SO 线程了解到 gdb 可以在 64 位架构上调试 32 位和 64 位二进制文件,但是当我运行它时,我遇到了以下问题:
Starting program: /root/crackme-01
/bin/bash: /root/crackme-01: No such file or directory
During startup program exited with code 127.
Run Code Online (Sandbox Code Playgroud)
这是程序上文件的结果:
crackme-01: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=9feb70a8647779984dc69b1e5c90bd757343fb29, stripped
Run Code Online (Sandbox Code Playgroud)
还有什么我应该做的来调试它吗?
谢谢你的帮助。
GDB只能调试可以自行启动的程序。在您的情况下,程序根本无法启动(在您的进程的用户空间中没有执行任何指令,execve系统调用失败)。这:
/bin/bash: /root/crackme-01: No such file or directory
Run Code Online (Sandbox Code Playgroud)
几乎总是由缺少程序解释器引起的。你可以像这样看到解释器:
readelf -l /root/crackme-01 | grep interpreter
Run Code Online (Sandbox Code Playgroud)
就您而言,口译员几乎可以肯定是/lib/ld-linux.so.2。
我只是想念图书馆
你失踪了libc6:i386,这ld-linux.so.2是的一部分。
| 归档时间: |
|
| 查看次数: |
6119 次 |
| 最近记录: |