そのため、別のプログラムの値を変更するために、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」ボタンで保存された 1 つの値を上書きしようとします。問題は、プログラムがこれを実行できないことです。実行可能ファイルを管理者として実行しようとしましたが、何も変わりません。YouTube ビデオでこのコードを見つけました。男は XP を使用しており、私は Windows 8 を使用しています。
Cheat Engineを使用して0xC6A0EB922Cアドレスを見つけ、内部の値を変更しようとしたところ、完全に機能しました!
誰かが私を助けることができるなら、してください。ありがとう!