2012-03-19 86 views
1

我想WriteProcessMemory與int並再次做int使負數。我知道如何在VB.NET中做到這一點;我嘗試了相同的方式,但在C++中,它不起作用。WriteProcessMemory將不起作用

WriteProcessMemory(hProcess, (void*)(MYBASE + 0x6F4), &number, 4, NULL); 
WriteProcessMemory(hProcess, (void*)(MYBASE + 0xA54), "-" & &number, 4, NULL); 

回答

1

"-" & &number做你彷彿覺得它是。在C中,&二元運算符意味着按位AND,而不是字符串連接(C沒有本地字符串類型)。所以你的第二行是取指針值(地址number),並用連字符的ASCII數值(即你的地址爲& 46)進行按位與,這會給你一個無意義的地址,而不是做什麼你要。

第三個參數WriteProcessMemory是一個地址,所以你需要一個變量來取地址。用這兩行替換第二行:

int negativeNumber = -number; 
WriteProcessMemory(hProcess, (void*)(MYBASE + 0xA54), &negativeNumber, 4, NULL); 
+0

感謝它的工作! – Tprice88 2012-03-19 02:39:42