私は窓にPEファイルを解析し、EXEファイルからバイトを読み取るこの構造EXEファイルを解析して、C++とWindow.hを使用してIMAGE_DOS_HEADER構造体からデータを取得する方法は?
私はこのコードを書いた、からデータを取得しようとしています。
#include <Windows.h>
int main()
{
// open the file for binary reading
std::ifstream file;
file.open("D:/SomeProgram.exe", ios_base::binary);
if (!file.is_open())
return 1;
// get the length of the file
file.seekg(0, ios::end);
size_t fileSize = file.tellg();
file.seekg(0, ios::beg);
// create a vector to hold all the bytes in the file
std::vector<byte> data(fileSize, 0);
// read the file
file.read(reinterpret_cast<char*>(&data[0]), fileSize);
私は見当がつかない、データを取得する方法、それはe_magic
、e_cbip
、e_cp
....そして最も重要なe_ifanew
が含まれています。 この構造体IMAGE_DOS_HEADERはWindows.hに格納されていますが、exeファイルからフィールドを取得する方法はわかりません。
なぜそれをしたいですか? – MKR
[PE形式はMSDNに記載されています](https://msdn.microsoft.com/en-us/library/windows/desktop/ms680547(v = vs.85).aspx) – VTT
ねえ、私はMSDNで見ましたが、どうすれば特定のフィールドを得ることができますか、私のプログラムはこれを示しています: e_magic:MZ e_cbip:P ........ e_ifnew:00000100 – Dsdsd