首页 文章

gdb没有达到断点

提问于
浏览
5

为了更多地了解FreeBSD和* nix系统,我开始从DEFCON 17 Capture The Flag游戏中查看二进制文件 . 现在,我正在扭转tucod二进制文件 . 以下是关于tucod的一些可能有用的信息:

tucod: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 7.2, dynamically linked (uses shared libs), FreeBSD-style, stripped

从一些简短的静态分析中获得的其他一些可能有用的信息是tucod绑定在端口0xDEAD(可爱,嗯?),如果你给它一个特定的密码(“HANGEMHIGH!”),它将与你玩一个挂牌游戏 .

The problem that I'm encountering is that I'm not hitting my breakpoints in gdb. 具体来说,我要求我输入密码或玩挂机的断点 .

由于守护进程在收到新连接时分叉,我尝试告诉gdb使用此命令跟踪子进程:

(gdb) set follow-fork-mode child

但是在fork之后单步执行指令后,似乎这不起作用 .

我试过寻找 signal 的调用,认为他们实现了一个自定义的SIGINT处理程序(或类似的),但是我能看到的唯一调用 signal 处理SIGCHLD .

我在gdb中的断点目前看起来像这样:

(gdb) info breakpoints
Num Type           Disp Enb Address    What
1   breakpoint     keep y   0x080497d0

0x080497d0 是我想在客户端处理代码中断的地址 .

我对分析* nix系统上的软件有点新意,可以使用一些指针 . How else should I go about troubleshooting why GDB will not hit my breakpoints? 或者有什么重要的我只是俯瞰?

对于那些有兴趣亲眼看到二进制文件的人来说,所有游戏二进制文件都有torrent可用 .

1 回答

  • 2

    看看here的答案 . 简而言之,GDB似乎仅支持HP-UX和Linux上的子调试模式 .

相关问题