16 PeHeaderInfo(
const QString fileName);
22 QString errorMessage();
26 unsigned int machineArch();
28 QStringList dependentLibs();
34 QString mErrorMessage;
36 QStringList mDependentLibs;
37 std::optional<
bool> mIsDebug;
39 HANDLE mFileHandle = NULL;
40 HANDLE mFileMapHandle = NULL;
41 void *mFileMemory =
nullptr;
42 IMAGE_NT_HEADERS *mNtHeaders =
nullptr;
44 IMAGE_NT_HEADERS *getNtHeader();
45 template <
class ImageNtHeader>
46 QStringList readImportSections(
const ImageNtHeader *ntHeaders);
47 template <
class ImageNtHeader>
48 QStringList determineDependentLibs(
const ImageNtHeader *nth);
49 template <
class ImageNtHeader>
50 bool determineDebug(
const ImageNtHeader *nth);
52 static QString stringFromRvaPtr(
const void *rvaPtr);
56 template <
class ImageNtHeader>
57 const IMAGE_SECTION_HEADER *findSectionHeader(DWORD rva,
const ImageNtHeader *nTHeader);
60 template <
class ImageNtHeader>
61 const void *rvaToPtr(DWORD rva,
const ImageNtHeader *nTHeader,
const void *imageBase);
63 template <
class ImageNtHeader>
64 unsigned ntHeaderWordSize(
const ImageNtHeader *header);
68 enum MsvcDebugRuntimeResult { MsvcDebugRuntime, MsvcReleaseRuntime, NoMsvcRuntime };
70 MsvcDebugRuntimeResult checkMsvcDebugRuntime();