我希望我的提问方式是正确的,但我只是刚刚开始尝试学习利用漏洞的开发。我已经学习了几个教程,并开始在Linux中使用gdb,我对它比较熟悉。我现在开始在Windows上使用免疫调试器,并且有一个关于如何在gui中查看函数的问题。
在gdb中,我可以使用以下命令:
info functions
disas main
并且能够看到主函数。为了简单起见,我的编译代码没有被剥离。
我如何在免疫或OllyDbg中重新创建它?我希望看到一个函数列表,这样我就可以检查它们或在它们上设置断点。我似乎想不通了!
谢谢!
在我的linux机器上,计算一个比FLT_MAX大的浮子会导致无穷大,如下所示:
sacha@sacha-XPS13:~$ gdb
GNU gdb (GDB) 7.6.1-ubuntu
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There
当按照通常的方式运行时,gdb会像预期的那样停止:
(gdb) break main
(gdb) run
Starting program ...
Breakpoint 1, main ...
在管道运行时,gdb从不停止:
(gdb) run | cat
Starting program: /home/sds/z | cat
...
During startup program exited normally.
(gdb)
如何调试管道时的程序行为?
我的设置:
$ gdb --version
GNU gdb (GDB) Amazon Linux (7.6.1-64.33.amzn1)
$
我用以下方法为arm编译了gdbserver 7.6:
cd /gdb-7.6-src/gdb/gdbserver
./configure --target=arm-linux --host=arm-linux
make CC=/path/to/cross-compiler-gcc
然后,我为arm编译了gdb 7.6,并使用:
cd /gdb-7.6-src/
./configure --target=arm-linux --prefix=/opt/gdb-arm/install/
make && make install
我用以下方法编译了我的琐碎应用程序:
/path/t
我安装了libc6 & libc6-dbg。
(gdb) b
reak freeifaddrs
(gdb) run
Breakpoint 1, __freeifaddrs (ifa=0xa822e0) at ../sysdeps/unix/sysv/linux/ifaddrs.c:840
840 ../sysdeps/unix/sysv/linux/ifaddrs.c: No such file or directory.
(gdb) list
835 in ../sysdeps/unix/sysv/linux/ifaddrs.c
(gdb) disassemble
Dump of a
我正在尝试调试一个在处理请求时派生的进程。
我已经将follow-fork-mode设置为child,允许gdb在命中子对象中的断点时闯入。但是,当我继续从子进程中继续时,父进程就分离了。
很多文档都指向选项detach-on-fork,但是如果我尝试设置这个选项,我会得到:
(gdb) set detach-on-fork on
No symbol "detach" in current context.
该选项的链接清晰可见:
编辑:系统信息
>uname -a
Linux localhost 2.6.9-78.0.22.ELsmp #1 SMP Thu Apr 3
我正在尝试远程调试Linux的内核。我已经创建了一个VM (使用VMware),并使用gdb从我的PC连接到它,一切正常。
问题是gdb无法加载vmlinux-gdb.py脚本。我尝试在gdb上使用source命令添加它,但得到以下错误:
Traceback (most recent call last):
File "~/workspace/kernels/default-kernel/scripts/gdb/vmlinux-gdb.py", line 28, in <module>
ImportError: No module named 'linu
代码(m1.cpp):
#include <iostream>
using namespace std;
int main (int argc, char *argv[])
{
cout << "running m1" << endl;
return 0;
}
GDB版本: GNU gdb (GDB) 7.6.2
使用:g++ -g m1.cpp构建
命令行历史记录:
(gdb) b main
Breakpoint 1 at 0x40087b: file m1.cpp, line 6.
(gdb) r
Starting pro