首页 > 解决方案 > 如何在 Visual Studio 2017 中更改内存字节?

问题描述

在我的 Visual Studio 2017 中调试 C++ 项目时,我试图在内存窗口中更改内存中的字节。内存窗口指向内存保存代码,因为我试图快速修补一段代码(只需要更改参数值)无需停止并重新编译。我还注意到,即使是数据内存,您也无法更改内存窗口中的值。是否有一些隐藏的配置设置可以让你做到这一点。在 VS6 中可以做到这一点。

标签: debuggingvisual-studio-2017

解决方案


我找到了一种解决方法,甚至可以修改可执行代码内存。以下是步骤:

  1. 在你的代码中定义一个备用的全局指针(你实际上可以在你的代码中使用任何内存指针,只要你不关心你会改变它的值):

    char* 内存;

  2. 在监视窗口中设置指针。

  3. 将指针值设置为要修改的内存地址。
  4. 扩展内容(顺便说一句,您可以在监视窗口中使用“mempr,100”来访问多个字节)。
  5. 在消耗的字节值单元格中键入更新的值。

即使您将指针设置为可执行机器代码内存,这仍然有效,因此您可以使用它来修补代码。

它可以是一个int指针或任何其他类型,或者如果您想编辑任何其他类型的对象,您可以在监视窗口中使用强制转换。

小心这可能很危险,必须非常小心地修改内存。


推荐阅读