所以,我正在尝试用 C++ 编写一个程序,以修改另一个程序中的值。在我的例子中,Windows 的计算器。这是代码:
#include <iostream>
#include <windows.h>
using namespace std;
int main(void) {
int nVal = 2000;
HWND hWnd = FindWindowA(0, "Calculator");
if(hWnd == 0){
cerr << "Could not find window." << endl;
} else {
DWORD PID;
GetWindowThreadProcessId(hWnd, &PID);
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, false, PID);
if(!hProc) {
cerr << "Cannot open process." << endl;
} else {
int stat = WriteProcessMemory(hProc, (LPVOID)0xC6A0EB922C, &nVal, (DWORD)sizeof(nVal), NULL);
if(stat > 0){
clog << "Memory written to process." << endl;
} else {
cerr << "Memory couldn't be written to process." << endl;
}
CloseHandle(hProc);
cin.get();
}
}
return 0;
}
程序试图覆盖一个值,存储在计算器中的“MS”按钮中。问题是程序无法做到这一点。我试图以管理员身份运行可执行文件,但没有任何变化。我在 YouTube 视频上找到了这段代码,那个人使用的是 XP,我使用的是 Windows 8。
我使用Cheat Engine找到了0xC6A0EB922C地址,并尝试修改里面的值,效果很好!
如果有人可以帮助我,请做。谢谢!