2011-08-27 32 views
5

我正在嘗試修改紙牌的值,例如分數。添加基地址+偏移量以修改值

無論如何,我發現指針指向的地址(使用CheatEngine),但我很難注入代碼來修改分數。我幾乎可以肯定,這是我將偏移量添加到基本值的方式,而不是Windows DEP,注入方法或其他任何方法。

這是我正在使用的代碼。

#define BASE 0xFFAEAFA8 
#define fOFFSET 0x50 
#define sOFFSET 0x14 
#define VALUE 55555 


*(int*)(((*(int*) BASE) + fOFFSET) + sOFFSET) = VALUE; 

每當我注入此代碼我的遊戲崩潰。如果我修改了Cheat Engine中的值,但沒有在代碼中修改值,則可以正常工作。

+0

'sOFFSET'是以字節還是整數(DWORD)爲單位? –

+7

你正在試圖欺騙......在_Solitaire_? – Nemo

+0

在調試器中運行該程序以獲取有關它如何「崩潰」的更多詳細信息。 –

回答

0

我做錯了什麼: 我需要使用ReadProcessMemory() API找到地址的指針指向。然後添加偏移量。

0

嘗試:

volatile int * pScore = (int*)(BASE + fOFFSET + sOFFSET); 
*pScore = VALUE;