相关疑难解决方法(0)

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

让我们假设我已经分配了我的编解码器使用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().

任何帮助将不胜感激!

提前致谢.

c# assembly codecave

6
推荐指数
1
解决办法
2760
查看次数

标签 统计

assembly ×1

c# ×1

codecave ×1