windows 如何修改可执行文件而不破坏它?

s8vozzvw  于 7个月前  发布在  Windows
关注(0)|答案(3)|浏览(102)

是否有一个特定的空字符或字节序列,如果添加在文件的前面,将不会损坏可执行文件?我试图添加NUL(00十六进制),但它每次都损坏可执行文件。是否有一些NOP(无操作)或类似的字节码?
长话短说,我想搞砸一个“hack”,修改内存中的一个值,在&process+fixed offset.向上推内存堆栈会(或者我认为)阻止它工作。

zpjtge22

zpjtge221#

不,Windows可执行文件使用的PE文件格式有一个非常特定的头。有关详细信息,请参阅http://en.wikipedia.org/wiki/Portable_Executable
您可以尝试使用ASLR来使您的代码更能抵抗内存中的修补。

vdzxcuhz

vdzxcuhz2#

你必须将它完全解析成不同的部分和段,修改你正在寻找的部分,但是你不能在任何代码段之前重新编译代码:你最好有一个将首先执行的段,然后将跳转到旧的开始段。
最后,您必须重新创建一个新的完整的可执行文件。

oogrdqng

oogrdqng3#

也许你可以使用反编译器将其转换为更高级的语言,然后插入一些任意函数或数据并重新编译它。你可能需要在编译器中禁用一些优化标志,这样任意函数就不会被排除在生成的二进制文件中。

相关问题