如果添加到文件的前面,是否有特定的空字符或字节序列不会破坏可执行文件?我尝试添加 NUL (00 hex),但每次都会破坏可执行文件。是否有一些用于 NOP(无操作)或类似内容的字节码?
长话短说,我想搞砸一个“hack”,它在 &process+fixed offset 处修改内存中的值。将内存堆栈向上推会(或者我认为)会阻止它工作。
如果添加到文件的前面,是否有特定的空字符或字节序列不会破坏可执行文件?我尝试添加 NUL (00 hex),但每次都会破坏可执行文件。是否有一些用于 NOP(无操作)或类似内容的字节码?
长话短说,我想搞砸一个“hack”,它在 &process+fixed offset 处修改内存中的值。将内存堆栈向上推会(或者我认为)会阻止它工作。
不,Windows 可执行文件使用的 PE 文件格式有一个非常具体的标题。有关详细信息,请参阅http://en.wikipedia.org/wiki/Portable_Executable 。
您可以尝试使用ASLR使您的代码更能抵抗内存中的修补。
您必须将其完全解析为不同的部分和段,修改您要查找的部分,但您将无法在任何代码段之前插入代码:您最好有一个将首先执行的段,然后将跳转到旧的开始段。
最后,您将不得不重新创建一个新的完整可执行文件。