debugging - 如何在 Visual Studio 2017 中更改内存字节?
问题描述
在我的 Visual Studio 2017 中调试 C++ 项目时,我试图在内存窗口中更改内存中的字节。内存窗口指向内存保存代码,因为我试图快速修补一段代码(只需要更改参数值)无需停止并重新编译。我还注意到,即使是数据内存,您也无法更改内存窗口中的值。是否有一些隐藏的配置设置可以让你做到这一点。在 VS6 中可以做到这一点。
解决方案
我找到了一种解决方法,甚至可以修改可执行代码内存。以下是步骤:
在你的代码中定义一个备用的全局指针(你实际上可以在你的代码中使用任何内存指针,只要你不关心你会改变它的值):
char* 内存;
在监视窗口中设置指针。
- 将指针值设置为要修改的内存地址。
- 扩展内容(顺便说一句,您可以在监视窗口中使用“mempr,100”来访问多个字节)。
- 在消耗的字节值单元格中键入更新的值。
即使您将指针设置为可执行机器代码内存,这仍然有效,因此您可以使用它来修补代码。
它可以是一个int指针或任何其他类型,或者如果您想编辑任何其他类型的对象,您可以在监视窗口中使用强制转换。
小心这可能很危险,必须非常小心地修改内存。