我正在记忆编辑一个名为 Assault Cube 的游戏,可以在以下位置找到:http ://assault.cubers.net/
我不知道如何描述它,所以我制作了一个视频:www.youtube.com/watch ?v=SS1swxQIbDI
请注意,我的弹药在编辑之前就已失效。编辑后,弹药保持不变。基本上,在 0x45B75F,我需要插入两个 NOP。
我在互联网上找到了以下内容:
1.
BYTE NewBytes[] = { 0xXX, 0xXX, 0xXX, 0xXX, 0xXX };
*(PBYTE)0xXXXXXXXX[0] = NewBytes;
所以我试着做:
BYTE NewBytes[] = { 0x90, 0x90 };
*(PBYTE)0x45B75F[0] = NewBytes;
但我得到这个错误:error C2109: subscript requires array or pointer type
2.
DWORD origProtect;
VirtualProtect( ( void* )0x77D142CF, 5, PAGE_EXECUTE_READWRITE, &origProtect );
memcpy( ( void* )0x77D142CF, "\x8B\xFF\x55\x8B\xEC", 5 );
VirtualProtect( ( void* )0x77D142CF, 5, origProtect, NULL );
我宁愿不使用 memcpy 或任何方法。
3.
char val = 0x48;
BOOL success = WriteProcessMemory(target, 0x10134CE0, &val, 1, NULL);
同样,我宁愿不使用方法。
4.
uint8_t* code = (uint8_t*)0x45B75F;
*code = 0x90;
以上给了我这些错误:
error C2065: 'uint8_t' : undeclared identifier
error C2065: 'code' : undeclared identifier
error C2065: 'uint8_t' : undeclared identifier
error C2059: syntax error : ')'
error C2065: 'code' : undeclared identifier
5.
*(char*)0x45B75F = 0x90;
这会导致崩溃。