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