Tag: codecave

C#理论:将一个JMP写入asm中的编解码器

让我们假设我已经使用VirtualAllocEx (它返回地址)分配了我的codecave放置的地址,并使用WriteProcessMemory()将我的代码写入该地址。 这是问题: 如何写一个跳转到我的编解码器? 我知道跳转以“ E9 ”开头,但是如何将VirtualAllocEx返回的地址转换为正确的UInt32(dword),以便调试器/编译器能够理解指令? 例如: 我在地址00402020 (原生应用程序的OEP)。 我写了一个跳转到004028CF (空位)“ JMP 004028CF ”。 以字节为单位的指令如下所示: CPU Disasm Address Hex dump Command Comments 00402020 E9 AA080000 JMP 004028CF “ E9 ”是我们表明JMP的方式。 怎么样“ AA080000 ”,我该如何生成呢? 我需要做类似的事情,所以我可以将JMP初始化为我的codecave,它将位于VirtualAllocEx()返回的地址。 任何帮助将不胜感激! 提前致谢。