C语言 游戏远程call调用,关于远程注入游戏并调用 call 的问题
[C#] 純文本查看 復制代碼UInt32 Codecave = _Magic.AllocateMemory();
uint ptr = 0;
try
{
int param1 = _Magic.ReadInt((uint)(_bnsMagic.ReadInt((uint)0xDC1420) + 0x30));
uint ptr1 = _Magic.ReadUInt((uint)0xdc1420) + 0x28;
uint ptr2 = _Magic.ReadUInt(ptr1) + 0x1c;
uint ptr3 = _Magic.ReadUInt(ptr2) + 0xAFD0;
uint ptr4 = _Magic.ReadUInt(ptr3) + 0x5360;
int param2 = _Magic.ReadInt(ptr4);
int param3 = _Magic.ReadInt(ptr4 + 0x4);
_Magic.Asm.Clear();
_Magic.Asm.AddLine("mov edi, " + 0); //edi 賦值0 是因為 OD 跟蹤至call 時,觀察寄存器中的值為0
_Magic.Asm.AddLine("mov edx, " + 0);//edx 賦值0 是因為 OD 跟蹤至call 時,觀察寄存器中的值為0
_Magic.Asm.AddLine("mov esi, " + param3);
_Magic.Asm.AddLine("mov ebx, " + param2);
_Magic.Asm.AddLine("mov eax, " + param1);
_Magic.Asm.AddLine("push esi");
_Magic.Asm.AddLine("push ebx");
_Magic.Asm.AddLine("push eax");
_Magic.Asm.AddLine("call " + 0x00978260);
_Magic.Asm.AddLine("add esp,0xC");
_Magic.Asm.AddLine("retn");
ptr = _bnsMagic.Asm.InjectAndExecute(Codecave);
}
catch (Exception e)
{
}
finally
{
_bnsMagic.FreeMemory(Codecave);
}
return ptr;
總結
以上是生活随笔為你收集整理的C语言 游戏远程call调用,关于远程注入游戏并调用 call 的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米电脑链接WiFi有网络不能上网的问题
- 下一篇: c语言单元测验,C语言程序设计单元测验一