【问题标题】:Is there a way to completely disable gdb output?有没有办法完全禁用 gdb 输出?
【发布时间】:2020-02-28 11:54:49
【问题描述】:

我有一个 C++ 程序 a,它有一个 win 函数,它永远不会被调用。
我可以用 gdb 调用它,只需执行jump *win
问题是,我正在尝试用一个衬里来自动化这个过程:
gdb -q a -ex "break *main" -ex "run" -ex "jump *(_Z3winv)"
有没有办法只看到程序本身的输出,没有这个:

inxane@root:~/mysecretfolder$ gdb -q a -ex "break *main" -ex "run" -ex "jump *(_Z3winv)"

warning: /mysecretfolder/pwndbg/gdbinit.py: No such file or directory
Reading symbols from a...(no debugging symbols found)...done.
Breakpoint 1 at 0x8e9
Starting program: /mysecretfolder/a 

Breakpoint 1, 0x00005555555548e9 in main ()
Continuing at 0x5555555548ba.
You won!
[Inferior 1 (process 15866) exited with code 040]

(我只想要这个)

You won!

如果有必要,这里是源代码:

#include <iostream>
using namespace std;
void win()
{
    cout << "You won!" << endl;
}
int main()
{
    cout << "You failed!" << endl;
    return 0;
}

【问题讨论】:

  • 您的意思是除了根本不在gdb 中运行的明显答案吗? GDB 输出有什么问题?为什么要抑制它?这能解决什么问题?
  • 我正在尝试运行程序本身未调用的win 函数。它用于逆向工程实践。问题是我不想要 gdb 输出,只想要程序的输出。

标签: c++ gdb reverse-engineering exploit


【解决方案1】:

尝试将选项 -batch-silent 添加到您的 gdb 命令中

请参阅文档“gdb documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多