我有像这样的说明
pokeEnableMap = new byte[6]{
233,
0,
0,
0,
0,
144};
我希望他们这样:
pokeEnable = @"call 0x{0:X}
nop
nop
nop";
或者
pokeCodeCave = @"movss [0x{0:X}],xmm0
fld dword [0x{0:X}]
fld dword [0x{1:X}]
faddp
fstp dword [edi+0x0000014C]
ret";
如何转换/解释字节?
修改 好吧,我找到了一种方法来实现它并用于文档目的:在找到几十个已结束的项目后,我发现了基于Capstone的9ee1 Capstone.Net的GitHub。在下载了Projectfolder并构建了每个项目之后,CMD没有分配足够的内存,因此在将值从80增加到180后,exe表示它缺少了capstone.dll,而不是Gee.External.Capstone.dll。我从他们的GitHub下载了发行版1.2.2,并且有一个capstone.dll但是这个CMD也没有分配足够的内存。所以我将.dll文件从发行版复制到固定的CMD.exe,现在一切正常。
现在我将我的代码从小数233,0,0,0,0,144
转换为十六进制0xE9,0,0,0,0,0x90
并在Programm.cs X86部分输入它们,重建CMD并在那里:jmp 0x1005 | nop
或者更复杂的例子:
dec: 139,78,4,185,0,0,0,0,184,0,0,0,0,137,69,216,233,0,0,0,0
hex: 8B 4E 04 B9 00 00 00 00 B8 00 00 00 00 89 45 D8 E9 00 00 00 00
op: mov ecx,[esi+4] | mov ecx,0 | mov [ebp-28],eax | jmp 0x1015