我正在尝试使用代码洞穴方法来解决这个问题,这个问题之前在这个论坛上被问到过。
我正在使用x64_dbg来执行此任务。我的问题是,在我在代码洞中编写了额外的汇编行之后, usingRight-Click > Patches并不适用它们。
x64_dbg是否需要额外的附加组件来执行这种修补?但是,代码在函数补丁的地址空间内更改就好了。
汇编代码(Code-Cave)

失败的对话框

我正在尝试使用代码洞穴方法来解决这个问题,这个问题之前在这个论坛上被问到过。
我正在使用x64_dbg来执行此任务。我的问题是,在我在代码洞中编写了额外的汇编行之后, usingRight-Click > Patches并不适用它们。
x64_dbg是否需要额外的附加组件来执行这种修补?但是,代码在函数补丁的地址空间内更改就好了。
汇编代码(Code-Cave)

失败的对话框

x64_dbg使用TitanEngine的ConvertVAtoFileOffsetEx()函数来应用补丁。该函数在运行时验证要修补的字节的虚拟地址是否在节的内存空间内(基于节的虚拟地址和节的虚拟大小)。由于您正在修补的字节在该部分的虚拟大小末尾之后,因此不会ConvertVAtoFileOffsetEx()返回0并且永远不会应用补丁。
作为一种解决方法,我建议修补您要附加这些新字节的部分的虚拟大小。无论当前的虚拟大小是14多少,请在 PE 部分的标题中使其字节更大。
您可以使用Explorer Suite 之类的工具通过导航到文件的部分标题并增加目标部分的虚拟大小字段中的值来进行此更改:
