私はアサルト キューブと呼ばれるゲームをメモリ編集しています。
どう説明したらいいかわからないので、動画を作ってみました: www.youtube.com/watch?v=SS1swxQIbDI
編集前に弾薬が減っていることに注意してください。編集後、弾薬は一定のままです。基本的に、0x45B75F に 2 つの 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;
これにより、クラッシュが発生します。