win32 API フック プログラムを開発しています。私の理解では、プログラムが特定のファイルに対して ReadFile を呼び出すと、そのファイルの内容が lpBuffer にコピーされます (以下の定義を参照)。
ReadFile 定義:
BOOL ReadFile(
HANDLE hFile,
LPVOID lpBuffer,
DWORD nNumberOfBytesToRead,
LPDWORD lpNumberOfBytesRead,
LPOVERLAPPED lpOverlapped
);
今、私の目標は、この lpBuffer を変更し、私が提供したコンテンツで満たすことです! EasyHook を使用して ReadFile をフックしています。私はLPVOIDタイプに精通していません。次のコードを使用して、GetCurrentDirectory のコンテンツを変更できました。
string b = "C:\\my\\altered\\directory";
DWORD returnLength = b.length();
int i;
for (i = 0; i<b.length(); i++)
{
lpBuffer[i] = b[i];
}
lpBuffer[i++] = '\0';
GetCurrentDirectory 定義:
DWORD GetCurrentDirectory(
DWORD nBufferLength,
LPTSTR lpBuffer
);
ReadFile (LPVOID lpBuffer) に同様の値を割り当てるにはどうすればよいですか?