是否可以在任何二进制文件中保存一些缓冲区,以便在独立的十六进制编辑器中查看。

例如,我可以将VS中的内存窗口中的数据保存到十六进制转储中,但不能保存为ASCII吗?

最佳答案

user142207在研究VS内部方面做得很好,我建议使用该解决方案。
我有另一种方法是我的同事Sergey S.发明的,
这非常有用:

视窗:
使用几个函数ReadProcessMemory / WriteProcessMemory。它需要一个独立的应用程序,以目标进程ID调用这些函数,例如:

dumper.exe <debugged process id> <memory_start_addr> <memory_length>

可以在VS调试 session 期间直接调用此应用(与Linux相比,这种可能性不大)。我们可以在监视窗口中捕获内存地址,然后将该地址传递给转储程序和瞧。如user142207在他的文章中所述,它在长期重新编译的项目中非常有用。

Linux / MacOS具有不同的方法。例如:在gdb控制台中,使用命令转储内存。此命令也可以在调试 session 期间直接使用。

09-16 22:44
查看更多