この素晴らしいサイトから非常に多くの Google 検索結果が表示された後、初めてここに投稿します。
基本的に、特定のメモリアドレスに格納されている変数の名前を見つけたいと思います。私が書いた単一の値を編集するメモリ編集アプリケーションがあります。問題は、この値を保持するアプリケーションにパッチが適用されるたびに、新しいメモリ アドレスをアプリケーションにハードコードして再コンパイルする必要があることです。これには非常に時間がかかります。それを維持することはほとんど価値がありません。
私がやりたいのは、特定のメモリアドレスに格納されている変数の名前を取得することです。これにより、実行時にそのアドレスを見つけて、それを編集するメモリアドレスとして使用できます。
これはすべて C++ で記述されています。
前もって感謝します!
編集:
.txt ファイルからデータをストリーミングすることにしましたが、WriteProcessMemory() でメモリ アドレスとして使用するために文字列を LPVOID に変換する方法がわかりません。これは私が試したことです:
string fileContents;
ifstream memFile("mem_address.txt");
getline(memFile, fileContents);
memFile.close();
LPVOID memAddress = (LPVOID)fileContents.c_str();
//Lots of code..
WriteProcessMemory(WindowsProcessHandle, memAddress, &BytesToBeWrote, sizeof(BytesToBeWrote), &NumBytesWrote);
コードは構文に関してはすべて正しく、コンパイルして実行できますが、WriteProcessMemory エラーが発生し、LPVOID 変数に問題があるとしか思えません。質問の使用を拡張することが規則に違反している場合はお詫び申し上げます。違反している場合は編集を削除します。