C++ インジェクションの問題がいくつかあります。Win 7 x64、VS 2010 を使用しています
実行しようとしている完全なコードは次のとおりです。 http://pastebin.com/avKS3r22
私の質問:
62行目。
dwSize = (DWORD)iCodeEnd - (DWORD)iCode; //subtract the function from the limiter to obtain the function's size
iCodeEnd が 0x01151570 で iCode が 0x01151490 の場合、dwSize が 224 または 0xE0 であるはずなのに、なぜ 4294966986 (DWORD の最大値だと思います) になるのですか? プロジェクトに設定する必要がある特定のプロパティはありますか (Unicode を使用せずに空の win32 プロジェクトを作成しました)。
92行目。
if(!(hRemoteThread = CreateRemoteThread(hProcess, NULL, 0, HREAD_START_ROUTINE)lpAddr, prmAddr, 0, NULL)))
手動で dwSize を 224 に設定すると、「リモート スレッドを作成できませんでした!」というメッセージが表示されます。dwSize の値について間違っていますか? それとも別のものですか?
注意: これは私の最初の C++ アプリケーションです (詳細な回答を提供してください)。コードは私のものではありません。基本を学ぶために書き直しただけです。元のバージョンは私のプラットフォームで正常に動作しています。