【发布时间】:2011-04-11 15:09:02
【问题描述】:
这是一个逆向工程问题。
在使用 Microsoft Visual C++ 2008 编译的二进制文件的 Windows 7 上,当调用 std::cout 时。在内部,使用什么 API 来写入数据? WriteFile、fwrite、ConsoleOut?我的目标是在没有可用源或调试符号的 std::cout 上设置断点。
【问题讨论】:
-
您可能想尝试将
std::cout重定向到std::stringstream。这非常适合调试。查看this question 了解如何操作。 -
@Space_C0wb0y 有问题的二进制文件是机器码。此时没有 std::cout 或 std::stringstream 这样的东西。这是一个黑客/逆向问题。
-
只需使用调试器走一遍输出单个字符的过程。应该非常翔实。编辑:当然,在测试程序上使用调试器来了解底层过程。