私はkernel32.dll
の関数のRVAを取得しようとしています。つまり、IMAGE_EXPORT_DIRECTORY
構造体を取得できるまで、ファイル内の異なる構造を見つけるためにオフセットを使用する必要があります。しかし、私はファイルの内容を取得する方法と方法を知っているので、これをほぼ不可能な仕事にする特定の文字や要素を解釈して残してしまいます。ですから、文字配列にコピーするdllファイルの内容を取得する最良の方法を知りたいと思います。PE解析のためのDLLファイルの内容を正しく取得する方法は?
更新:興味のある方は、dllをメモリにマッピングする関数を作成しました。
void* GetFileImage(char path[])
{
HANDLE hFile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL);
if(hFile == INVALID_HANDLE_VALUE){return NULL;}
HANDLE file_map = CreateFileMapping(hFile, NULL, PAGE_READONLY|SEC_IMAGE, 0, 0, "KernelMap");
if(file_map == INVALID_HANDLE_VALUE){return NULL;}
LPVOID file_image = MapViewOfFile(file_map, FILE_MAP_READ, 0, 0, 0);
if(file_image == 0){return NULL;}
return file_image;
}
あなたはメモリに.dllファイルをマッピングすると考えられていますか? CreateFileMapping ... [これは古いですが、おいしいです。](https://msdn.microsoft.com/en-us/library/ms809762.aspx) –