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