나는 교육 목적으로 Icy Tower 1.4를위한 트레이너를 만들려고합니다.나는 (교육 목적으로) 만들려고하는 트레이너와의 문제
void WPM(HWND hWnd,int address,byte data[])
{
DWORD proc_id;
GetWindowThreadProcessId(hWnd, &proc_id);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proc_id);
if(!hProcess)
return;
DWORD dataSize = sizeof(data);
WriteProcessMemory(hProcess,(LPVOID)address,&data,dataSize,NULL);
CloseHandle(hProcess);
}
하고는 얼음 타워 시계 중지해야 함수의 : 다음 orginal 한 AOB있다 else 문에
void ClockHack(int status)
{
if(status==1)//enable
{
//crashes the game
byte data[]={0xc7,0x05,0x04,0x11,0x45,0x00,0x00,0x00,0x00,0x00};
WPM(FindIcyTower(),0x00415E19,data);
}
else if(status==0)//disable
{
byte data[]={0xA3,0x04,0x11,0x45,0x00};
}
}
을
은 그 같은 WriteProcessMemory의 기능을 단축하는 기능을 썼다 Opcode의 상태 매개 변수를 1로 설정하여 ClockHack 함수를 호출하면 게임이 충돌합니다.치트 엔진에서 나는 코드 케이브를 작성했기 때문에 똑같은 주소에 정확히 쓰지 않습니다.
누군가가 그 이유를 알고 있습니까? 고맙습니다.
덧붙여서 : 교육 목적으로 만 사용됩니다.
대신 dataSize 매개 변수 대신 sizeof (데이터)를 사용할 수 있습니까? –
배열이 원래 정의 된 ClockHack 함수에서는 sizeof (data)를 사용할 수 있지만 WPM 함수에서는 사용할 수 없습니다. – interjay