我正在嘗試爲教育目的創建冰爽塔1.4的教練。我想創建一個教練的問題(用於教育目的)
我寫的縮短WriteProcessMemory的功能,這樣的功能:
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);
}
,這就是應該停止冰塔時鐘功能:
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};
}
}
else語句有原單AOB的操作碼。 當我調用狀態參數設置爲1的ClockHack函數時,遊戲崩潰。
在作弊引擎中,我爲此編寫了一個腳本,由於我做了Code Cave並且效果很好,所以不會寫入相同的地址。
有人知道爲什麼嗎?謝謝。
順便說一句:這是爲教育目的只有。
而不是dataSize參數我可以只是做sizeof(數據)? – 2010-01-15 23:57:12
您可以在ClockHack函數中使用sizeof(數據),其中最初定義了數組,但不在WPM函數中。 – interjay 2010-01-16 09:42:59