有一個程式可以在記憶體中存盤一??個值,例如100. 我使用以下方法讀取該值ReadProcessMemory():
ReadProcessMemory(processHandle, (LPVOID)(programBaseAddress offsetProgramToBaseAdress), &baseAddress, sizeof(baseAddress), NULL);
之后ReadProcessMemory(),baseaddress包含100。
使用此代碼:
int value{};
cin >> value;
WriteProcessMemory(processHandle, (LPVOID)(pointsAddress), &value, 4, 0);
我可以更改其他程式中的值。
但我不想將其他程式的值設定為任何值。我想將用戶的輸入添加到該值。我的意思是,用戶輸入一個數字,比如50,結果應該是150,而不是50。
我試過了,但沒有用:
WriteProcessMemory(processHandle, (LPVOID)(pointsAddress), &baseAddress value, 4, 0);
uj5u.com熱心網友回復:
您需要先讀取該值,然后將用戶的輸入添加到該值中,然后將該值寫回。這些是單獨的操作,不要試圖將它們混合在一起(即,&baseAddress value不做你認為它做的事情)。
嘗試這樣的事情:
int32_t value{};
ReadProcessMemory(processHandle, (LPVOID)(programBaseAddress offsetProgramToBaseAdress), &value, sizeof(value), NULL);
int input{};
cin >> input;
value = input;
WriteProcessMemory(processHandle, (LPVOID)pointsAddress, &value, sizeof(value), 0);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/493765.html
