fixed a spelling mistake (thanks to hors)

This commit is contained in:
mr.exodia 2014-01-27 17:24:52 +01:00
parent 1c68daa334
commit 07291f2710
4 changed files with 60 additions and 60 deletions

View File

@ -429,8 +429,8 @@ typedef struct HOOK_ENTRY
#define UE_FIELD_BROKEN_NON_CRITICAL 2 #define UE_FIELD_BROKEN_NON_CRITICAL 2
#define UE_FIELD_BROKEN_FIXABLE_FOR_STATIC_USE 3 #define UE_FIELD_BROKEN_FIXABLE_FOR_STATIC_USE 3
#define UE_FIELD_BROKEN_BUT_CAN_BE_EMULATED 4 #define UE_FIELD_BROKEN_BUT_CAN_BE_EMULATED 4
#define UE_FILED_FIXABLE_NON_CRITICAL 5 #define UE_FIELD_FIXABLE_NON_CRITICAL 5
#define UE_FILED_FIXABLE_CRITICAL 6 #define UE_FIELD_FIXABLE_CRITICAL 6
#define UE_FIELD_NOT_PRESET 7 #define UE_FIELD_NOT_PRESET 7
#define UE_FIELD_NOT_PRESET_WARNING 8 #define UE_FIELD_NOT_PRESET_WARNING 8

View File

@ -429,8 +429,8 @@ const BYTE UE_FIELD_BROKEN_NON_FIXABLE = 1;
const BYTE UE_FIELD_BROKEN_NON_CRITICAL = 2; const BYTE UE_FIELD_BROKEN_NON_CRITICAL = 2;
const BYTE UE_FIELD_BROKEN_FIXABLE_FOR_STATIC_USE = 3; const BYTE UE_FIELD_BROKEN_FIXABLE_FOR_STATIC_USE = 3;
const BYTE UE_FIELD_BROKEN_BUT_CAN_BE_EMULATED = 4; const BYTE UE_FIELD_BROKEN_BUT_CAN_BE_EMULATED = 4;
const BYTE UE_FILED_FIXABLE_NON_CRITICAL = 5; const BYTE UE_FIELD_FIXABLE_NON_CRITICAL = 5;
const BYTE UE_FILED_FIXABLE_CRITICAL = 6; const BYTE UE_FIELD_FIXABLE_CRITICAL = 6;
const BYTE UE_FIELD_NOT_PRESET = 7; const BYTE UE_FIELD_NOT_PRESET = 7;
const BYTE UE_FIELD_NOT_PRESET_WARNING = 8; const BYTE UE_FIELD_NOT_PRESET_WARNING = 8;

View File

@ -1164,7 +1164,7 @@ bool EngineValidateResource(HMODULE hModule, LPCTSTR lpszType, LPTSTR lpszName,
HGLOBAL hResourceGlobal; HGLOBAL hResourceGlobal;
DWORD ResourceSize; DWORD ResourceSize;
LPVOID ResourceData; LPVOID ResourceData;
BYTE ReturnData = UE_FILED_FIXABLE_CRITICAL; BYTE ReturnData = UE_FIELD_FIXABLE_CRITICAL;
hResource = FindResourceA(hModule, (LPCSTR)lpszName, (LPCSTR)lpszType); hResource = FindResourceA(hModule, (LPCSTR)lpszName, (LPCSTR)lpszType);
if(hResource != NULL) if(hResource != NULL)
@ -6678,7 +6678,7 @@ void SetOverallFileStatus(PFILE_STATUS_INFO myFileInfo, BYTE FiledStatus, bool F
if(myFileInfo->OveralEvaluation == UE_RESULT_FILE_OK || myFileInfo->OveralEvaluation == UE_RESULT_FILE_INVALID_BUT_FIXABLE) if(myFileInfo->OveralEvaluation == UE_RESULT_FILE_OK || myFileInfo->OveralEvaluation == UE_RESULT_FILE_INVALID_BUT_FIXABLE)
{ {
if(FiledStatus == UE_FILED_FIXABLE_CRITICAL || FiledStatus == UE_FIELD_BROKEN_FIXABLE_FOR_STATIC_USE || FiledStatus == UE_FIELD_BROKEN_BUT_CAN_BE_EMULATED) if(FiledStatus == UE_FIELD_FIXABLE_CRITICAL || FiledStatus == UE_FIELD_BROKEN_FIXABLE_FOR_STATIC_USE || FiledStatus == UE_FIELD_BROKEN_BUT_CAN_BE_EMULATED)
{ {
myFileInfo->OveralEvaluation = UE_RESULT_FILE_INVALID_BUT_FIXABLE; myFileInfo->OveralEvaluation = UE_RESULT_FILE_INVALID_BUT_FIXABLE;
} }
@ -7521,13 +7521,13 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
} }
else else
{ {
myFileStatusInfo.SizeOfImage = UE_FILED_FIXABLE_NON_CRITICAL; myFileStatusInfo.SizeOfImage = UE_FIELD_FIXABLE_NON_CRITICAL;
} }
} }
} }
else else
{ {
myFileStatusInfo.SectionAlignment = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.SectionAlignment = UE_FIELD_FIXABLE_CRITICAL;
} }
SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.SectionAlignment, true); SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.SectionAlignment, true);
if(PEHeader32->OptionalHeader.ImageBase % 0x1000 == NULL) if(PEHeader32->OptionalHeader.ImageBase % 0x1000 == NULL)
@ -7545,7 +7545,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
} }
else else
{ {
myFileStatusInfo.FileAlignment = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.FileAlignment = UE_FIELD_FIXABLE_CRITICAL;
} }
SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.FileAlignment, false); SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.FileAlignment, false);
/* /*
@ -7775,7 +7775,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress + PEHeader32->OptionalHeader.ImageBase, false, true); ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress + PEHeader32->OptionalHeader.ImageBase, false, true);
if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize) if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize)
{ {
myFileStatusInfo.RelocationTable = UE_FILED_FIXABLE_NON_CRITICAL; myFileStatusInfo.RelocationTable = UE_FIELD_FIXABLE_NON_CRITICAL;
} }
} }
SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.RelocationTable, false); SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.RelocationTable, false);
@ -7813,7 +7813,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
} }
else else
{ {
myFileStatusInfo.ImportTableSection = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.ImportTableSection = UE_FIELD_FIXABLE_CRITICAL;
} }
if(CheckDepth == UE_DEPTH_DEEP) if(CheckDepth == UE_DEPTH_DEEP)
{ {
@ -7883,7 +7883,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
if(EngineGetProcAddress((ULONG_PTR)hLoadedModule, (char*)ImportNamePtr) == NULL) if(EngineGetProcAddress((ULONG_PTR)hLoadedModule, (char*)ImportNamePtr) == NULL)
{ {
myFileStatusInfo.MissingDeclaredAPIs = true; myFileStatusInfo.MissingDeclaredAPIs = true;
SetOverallFileStatus(&myFileStatusInfo, UE_FILED_FIXABLE_CRITICAL, true); SetOverallFileStatus(&myFileStatusInfo, UE_FIELD_FIXABLE_CRITICAL, true);
} }
} }
} }
@ -7931,33 +7931,33 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
{ {
if(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress > CorrectedImageSize || PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress + PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size > CorrectedImageSize) if(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress > CorrectedImageSize || PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress + PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size > CorrectedImageSize)
{ {
myFileStatusInfo.TLSTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.TLSTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else else
{ {
ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress + PEHeader32->OptionalHeader.ImageBase, false, true); ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress + PEHeader32->OptionalHeader.ImageBase, false, true);
if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize) if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize)
{ {
myFileStatusInfo.TLSTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.TLSTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else else
{ {
PETls32 = (PIMAGE_TLS_DIRECTORY32)ConvertedAddress; PETls32 = (PIMAGE_TLS_DIRECTORY32)ConvertedAddress;
if(PETls32->StartAddressOfRawData != NULL && (PETls32->StartAddressOfRawData < PEHeader32->OptionalHeader.ImageBase || PETls32->StartAddressOfRawData > CorrectedImageSize + PEHeader32->OptionalHeader.ImageBase)) if(PETls32->StartAddressOfRawData != NULL && (PETls32->StartAddressOfRawData < PEHeader32->OptionalHeader.ImageBase || PETls32->StartAddressOfRawData > CorrectedImageSize + PEHeader32->OptionalHeader.ImageBase))
{ {
myFileStatusInfo.TLSTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.TLSTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else if(PETls32->EndAddressOfRawData != NULL && (PETls32->EndAddressOfRawData < PEHeader32->OptionalHeader.ImageBase || PETls32->EndAddressOfRawData > CorrectedImageSize + PEHeader32->OptionalHeader.ImageBase)) else if(PETls32->EndAddressOfRawData != NULL && (PETls32->EndAddressOfRawData < PEHeader32->OptionalHeader.ImageBase || PETls32->EndAddressOfRawData > CorrectedImageSize + PEHeader32->OptionalHeader.ImageBase))
{ {
myFileStatusInfo.TLSTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.TLSTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else if(PETls32->AddressOfIndex != NULL && (PETls32->AddressOfIndex < PEHeader32->OptionalHeader.ImageBase || PETls32->AddressOfIndex > CorrectedImageSize + PEHeader32->OptionalHeader.ImageBase)) else if(PETls32->AddressOfIndex != NULL && (PETls32->AddressOfIndex < PEHeader32->OptionalHeader.ImageBase || PETls32->AddressOfIndex > CorrectedImageSize + PEHeader32->OptionalHeader.ImageBase))
{ {
myFileStatusInfo.TLSTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.TLSTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else if(PETls32->AddressOfCallBacks != NULL && (PETls32->AddressOfCallBacks < PEHeader32->OptionalHeader.ImageBase || PETls32->AddressOfCallBacks > CorrectedImageSize + PEHeader32->OptionalHeader.ImageBase)) else if(PETls32->AddressOfCallBacks != NULL && (PETls32->AddressOfCallBacks < PEHeader32->OptionalHeader.ImageBase || PETls32->AddressOfCallBacks > CorrectedImageSize + PEHeader32->OptionalHeader.ImageBase))
{ {
myFileStatusInfo.TLSTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.TLSTable = UE_FIELD_FIXABLE_CRITICAL;
} }
if(PETls32->AddressOfCallBacks != NULL && CheckDepth == UE_DEPTH_DEEP) if(PETls32->AddressOfCallBacks != NULL && CheckDepth == UE_DEPTH_DEEP)
{ {
@ -7969,7 +7969,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
RtlMoveMemory(&ReadData, (LPVOID)ConvertedAddress, 4); RtlMoveMemory(&ReadData, (LPVOID)ConvertedAddress, 4);
if(ReadData < PEHeader32->OptionalHeader.ImageBase || ReadData > CorrectedImageSize + PEHeader32->OptionalHeader.ImageBase) if(ReadData < PEHeader32->OptionalHeader.ImageBase || ReadData > CorrectedImageSize + PEHeader32->OptionalHeader.ImageBase)
{ {
myFileStatusInfo.TLSTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.TLSTable = UE_FIELD_FIXABLE_CRITICAL;
} }
ConvertedAddress = ConvertedAddress + 4; ConvertedAddress = ConvertedAddress + 4;
} }
@ -7990,14 +7990,14 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
{ {
if(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress > CorrectedImageSize || PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress + PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].Size > CorrectedImageSize) if(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress > CorrectedImageSize || PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress + PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].Size > CorrectedImageSize)
{ {
myFileStatusInfo.LoadConfigTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.LoadConfigTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else else
{ {
ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress + PEHeader32->OptionalHeader.ImageBase, false, true); ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress + PEHeader32->OptionalHeader.ImageBase, false, true);
if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize) if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize)
{ {
myFileStatusInfo.LoadConfigTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.LoadConfigTable = UE_FIELD_FIXABLE_CRITICAL;
} }
} }
} }
@ -8013,14 +8013,14 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
{ {
if(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].VirtualAddress > CorrectedImageSize || PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].VirtualAddress + PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].Size > CorrectedImageSize) if(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].VirtualAddress > CorrectedImageSize || PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].VirtualAddress + PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].Size > CorrectedImageSize)
{ {
myFileStatusInfo.BoundImportTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.BoundImportTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else else
{ {
ConvertedAddress = (ULONG_PTR)PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].VirtualAddress + FileMapVA; ConvertedAddress = (ULONG_PTR)PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].VirtualAddress + FileMapVA;
if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize) if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize)
{ {
myFileStatusInfo.BoundImportTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.BoundImportTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else else
{ {
@ -8029,11 +8029,11 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
{ {
if(BoundIID->OffsetModuleName > PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].Size) if(BoundIID->OffsetModuleName > PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].Size)
{ {
myFileStatusInfo.BoundImportTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.BoundImportTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else if(!EngineIsPointedMemoryString(ConvertedAddress + BoundIID->OffsetModuleName)) else if(!EngineIsPointedMemoryString(ConvertedAddress + BoundIID->OffsetModuleName))
{ {
myFileStatusInfo.BoundImportTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.BoundImportTable = UE_FIELD_FIXABLE_CRITICAL;
} }
BoundIID = (PIMAGE_BOUND_IMPORT_DESCRIPTOR)((ULONG_PTR)BoundIID + sizeof IMAGE_BOUND_IMPORT_DESCRIPTOR); BoundIID = (PIMAGE_BOUND_IMPORT_DESCRIPTOR)((ULONG_PTR)BoundIID + sizeof IMAGE_BOUND_IMPORT_DESCRIPTOR);
} }
@ -8052,14 +8052,14 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
{ {
if(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].VirtualAddress > CorrectedImageSize || PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].VirtualAddress + PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].Size > CorrectedImageSize) if(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].VirtualAddress > CorrectedImageSize || PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].VirtualAddress + PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].Size > CorrectedImageSize)
{ {
myFileStatusInfo.IATTable = UE_FILED_FIXABLE_NON_CRITICAL; myFileStatusInfo.IATTable = UE_FIELD_FIXABLE_NON_CRITICAL;
} }
else else
{ {
ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].VirtualAddress + PEHeader32->OptionalHeader.ImageBase, false, true); ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].VirtualAddress + PEHeader32->OptionalHeader.ImageBase, false, true);
if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize) if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize)
{ {
myFileStatusInfo.IATTable = UE_FILED_FIXABLE_NON_CRITICAL; myFileStatusInfo.IATTable = UE_FIELD_FIXABLE_NON_CRITICAL;
} }
} }
} }
@ -8075,14 +8075,14 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
{ {
if(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].VirtualAddress > CorrectedImageSize || PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].VirtualAddress + PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].Size > CorrectedImageSize) if(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].VirtualAddress > CorrectedImageSize || PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].VirtualAddress + PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].Size > CorrectedImageSize)
{ {
myFileStatusInfo.COMHeaderTable = UE_FILED_FIXABLE_NON_CRITICAL; myFileStatusInfo.COMHeaderTable = UE_FIELD_FIXABLE_NON_CRITICAL;
} }
else else
{ {
ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].VirtualAddress + PEHeader32->OptionalHeader.ImageBase, false, true); ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].VirtualAddress + PEHeader32->OptionalHeader.ImageBase, false, true);
if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize) if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize)
{ {
myFileStatusInfo.COMHeaderTable = UE_FILED_FIXABLE_NON_CRITICAL; myFileStatusInfo.COMHeaderTable = UE_FIELD_FIXABLE_NON_CRITICAL;
} }
} }
} }
@ -8098,7 +8098,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
{ {
if(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress > CorrectedImageSize || PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress + PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].Size > CorrectedImageSize) if(PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress > CorrectedImageSize || PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress + PEHeader32->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].Size > CorrectedImageSize)
{ {
myFileStatusInfo.ResourceTable = UE_FILED_FIXABLE_NON_CRITICAL; myFileStatusInfo.ResourceTable = UE_FIELD_FIXABLE_NON_CRITICAL;
} }
else else
{ {
@ -8158,7 +8158,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
PESections = (PIMAGE_SECTION_HEADER)((ULONG_PTR)PESections + sizeof IMAGE_SECTION_HEADER); PESections = (PIMAGE_SECTION_HEADER)((ULONG_PTR)PESections + sizeof IMAGE_SECTION_HEADER);
if(SectionVirtualSize > PESections->VirtualAddress || SectionVirtualSizeFixed > PESections->VirtualAddress) if(SectionVirtualSize > PESections->VirtualAddress || SectionVirtualSizeFixed > PESections->VirtualAddress)
{ {
myFileStatusInfo.SectionTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.SectionTable = UE_FIELD_FIXABLE_CRITICAL;
} }
} }
NumberOfSections--; NumberOfSections--;
@ -8170,7 +8170,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
SectionVirtualSizeFixed = SectionVirtualSizeFixed + 0xF000; SectionVirtualSizeFixed = SectionVirtualSizeFixed + 0xF000;
if(PEHeader32->OptionalHeader.SizeOfImage > SectionVirtualSizeFixed) if(PEHeader32->OptionalHeader.SizeOfImage > SectionVirtualSizeFixed)
{ {
myFileStatusInfo.SizeOfImage = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.SizeOfImage = UE_FIELD_FIXABLE_CRITICAL;
} }
SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.SizeOfImage, true); SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.SizeOfImage, true);
SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.SectionTable, true); SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.SectionTable, true);
@ -8260,13 +8260,13 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
} }
else else
{ {
myFileStatusInfo.SizeOfImage = UE_FILED_FIXABLE_NON_CRITICAL; myFileStatusInfo.SizeOfImage = UE_FIELD_FIXABLE_NON_CRITICAL;
} }
} }
} }
else else
{ {
myFileStatusInfo.SectionAlignment = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.SectionAlignment = UE_FIELD_FIXABLE_CRITICAL;
} }
SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.SectionAlignment, true); SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.SectionAlignment, true);
if((ULONG_PTR)PEHeader64->OptionalHeader.ImageBase % 0x1000 == NULL) if((ULONG_PTR)PEHeader64->OptionalHeader.ImageBase % 0x1000 == NULL)
@ -8284,7 +8284,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
} }
else else
{ {
myFileStatusInfo.FileAlignment = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.FileAlignment = UE_FIELD_FIXABLE_CRITICAL;
} }
SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.FileAlignment, false); SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.FileAlignment, false);
/* /*
@ -8514,7 +8514,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase, false, true); ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase, false, true);
if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize) if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize)
{ {
myFileStatusInfo.RelocationTable = UE_FILED_FIXABLE_NON_CRITICAL; myFileStatusInfo.RelocationTable = UE_FIELD_FIXABLE_NON_CRITICAL;
} }
} }
SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.RelocationTable, false); SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.RelocationTable, false);
@ -8552,7 +8552,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
} }
else else
{ {
myFileStatusInfo.ImportTableSection = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.ImportTableSection = UE_FIELD_FIXABLE_CRITICAL;
} }
if(CheckDepth == UE_DEPTH_DEEP) if(CheckDepth == UE_DEPTH_DEEP)
{ {
@ -8622,7 +8622,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
if(EngineGetProcAddress((ULONG_PTR)hLoadedModule, (char*)ImportNamePtr) == NULL) if(EngineGetProcAddress((ULONG_PTR)hLoadedModule, (char*)ImportNamePtr) == NULL)
{ {
myFileStatusInfo.MissingDeclaredAPIs = true; myFileStatusInfo.MissingDeclaredAPIs = true;
SetOverallFileStatus(&myFileStatusInfo, UE_FILED_FIXABLE_CRITICAL, true); SetOverallFileStatus(&myFileStatusInfo, UE_FIELD_FIXABLE_CRITICAL, true);
} }
} }
} }
@ -8670,33 +8670,33 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
{ {
if(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress > CorrectedImageSize || PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress + PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size > CorrectedImageSize) if(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress > CorrectedImageSize || PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress + PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].Size > CorrectedImageSize)
{ {
myFileStatusInfo.TLSTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.TLSTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else else
{ {
ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase, false, true); ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase, false, true);
if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize) if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize)
{ {
myFileStatusInfo.TLSTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.TLSTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else else
{ {
PETls64 = (PIMAGE_TLS_DIRECTORY64)ConvertedAddress; PETls64 = (PIMAGE_TLS_DIRECTORY64)ConvertedAddress;
if(PETls64->StartAddressOfRawData != NULL && (PETls64->StartAddressOfRawData < (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase || PETls64->StartAddressOfRawData > CorrectedImageSize + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase)) if(PETls64->StartAddressOfRawData != NULL && (PETls64->StartAddressOfRawData < (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase || PETls64->StartAddressOfRawData > CorrectedImageSize + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase))
{ {
myFileStatusInfo.TLSTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.TLSTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else if(PETls64->EndAddressOfRawData != NULL && (PETls64->EndAddressOfRawData < (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase || PETls64->EndAddressOfRawData > CorrectedImageSize + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase)) else if(PETls64->EndAddressOfRawData != NULL && (PETls64->EndAddressOfRawData < (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase || PETls64->EndAddressOfRawData > CorrectedImageSize + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase))
{ {
myFileStatusInfo.TLSTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.TLSTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else if(PETls64->AddressOfIndex != NULL && (PETls64->AddressOfIndex < (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase || PETls64->AddressOfIndex > CorrectedImageSize + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase)) else if(PETls64->AddressOfIndex != NULL && (PETls64->AddressOfIndex < (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase || PETls64->AddressOfIndex > CorrectedImageSize + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase))
{ {
myFileStatusInfo.TLSTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.TLSTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else if(PETls64->AddressOfCallBacks != NULL && (PETls64->AddressOfCallBacks < (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase || PETls64->AddressOfCallBacks > CorrectedImageSize + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase)) else if(PETls64->AddressOfCallBacks != NULL && (PETls64->AddressOfCallBacks < (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase || PETls64->AddressOfCallBacks > CorrectedImageSize + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase))
{ {
myFileStatusInfo.TLSTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.TLSTable = UE_FIELD_FIXABLE_CRITICAL;
} }
if(PETls64->AddressOfCallBacks != NULL && CheckDepth == UE_DEPTH_DEEP) if(PETls64->AddressOfCallBacks != NULL && CheckDepth == UE_DEPTH_DEEP)
{ {
@ -8708,7 +8708,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
RtlMoveMemory(&ReadData, (LPVOID)ConvertedAddress, 8); RtlMoveMemory(&ReadData, (LPVOID)ConvertedAddress, 8);
if(ReadData < (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase || ReadData > CorrectedImageSize + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase) if(ReadData < (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase || ReadData > CorrectedImageSize + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase)
{ {
myFileStatusInfo.TLSTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.TLSTable = UE_FIELD_FIXABLE_CRITICAL;
} }
ConvertedAddress = ConvertedAddress + 8; ConvertedAddress = ConvertedAddress + 8;
} }
@ -8729,14 +8729,14 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
{ {
if(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress > CorrectedImageSize || PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress + PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].Size > CorrectedImageSize) if(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress > CorrectedImageSize || PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress + PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].Size > CorrectedImageSize)
{ {
myFileStatusInfo.LoadConfigTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.LoadConfigTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else else
{ {
ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase, false, true); ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase, false, true);
if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize) if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize)
{ {
myFileStatusInfo.LoadConfigTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.LoadConfigTable = UE_FIELD_FIXABLE_CRITICAL;
} }
} }
} }
@ -8752,14 +8752,14 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
{ {
if(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].VirtualAddress > CorrectedImageSize || PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].VirtualAddress + PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].Size > CorrectedImageSize) if(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].VirtualAddress > CorrectedImageSize || PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].VirtualAddress + PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].Size > CorrectedImageSize)
{ {
myFileStatusInfo.BoundImportTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.BoundImportTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else else
{ {
ConvertedAddress = (ULONG_PTR)PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].VirtualAddress + FileMapVA; ConvertedAddress = (ULONG_PTR)PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].VirtualAddress + FileMapVA;
if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize) if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize)
{ {
myFileStatusInfo.BoundImportTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.BoundImportTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else else
{ {
@ -8768,11 +8768,11 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
{ {
if(BoundIID->OffsetModuleName > PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].Size) if(BoundIID->OffsetModuleName > PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT].Size)
{ {
myFileStatusInfo.BoundImportTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.BoundImportTable = UE_FIELD_FIXABLE_CRITICAL;
} }
else if(!EngineIsPointedMemoryString(ConvertedAddress + BoundIID->OffsetModuleName)) else if(!EngineIsPointedMemoryString(ConvertedAddress + BoundIID->OffsetModuleName))
{ {
myFileStatusInfo.BoundImportTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.BoundImportTable = UE_FIELD_FIXABLE_CRITICAL;
} }
BoundIID = (PIMAGE_BOUND_IMPORT_DESCRIPTOR)((ULONG_PTR)BoundIID + sizeof IMAGE_BOUND_IMPORT_DESCRIPTOR); BoundIID = (PIMAGE_BOUND_IMPORT_DESCRIPTOR)((ULONG_PTR)BoundIID + sizeof IMAGE_BOUND_IMPORT_DESCRIPTOR);
} }
@ -8791,14 +8791,14 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
{ {
if(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].VirtualAddress > CorrectedImageSize || PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].VirtualAddress + PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].Size > CorrectedImageSize) if(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].VirtualAddress > CorrectedImageSize || PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].VirtualAddress + PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].Size > CorrectedImageSize)
{ {
myFileStatusInfo.IATTable = UE_FILED_FIXABLE_NON_CRITICAL; myFileStatusInfo.IATTable = UE_FIELD_FIXABLE_NON_CRITICAL;
} }
else else
{ {
ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].VirtualAddress + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase, false, true); ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].VirtualAddress + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase, false, true);
if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize) if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize)
{ {
myFileStatusInfo.IATTable = UE_FILED_FIXABLE_NON_CRITICAL; myFileStatusInfo.IATTable = UE_FIELD_FIXABLE_NON_CRITICAL;
} }
} }
} }
@ -8814,14 +8814,14 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
{ {
if(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].VirtualAddress > CorrectedImageSize || PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].VirtualAddress + PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].Size > CorrectedImageSize) if(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].VirtualAddress > CorrectedImageSize || PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].VirtualAddress + PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].Size > CorrectedImageSize)
{ {
myFileStatusInfo.COMHeaderTable = UE_FILED_FIXABLE_NON_CRITICAL; myFileStatusInfo.COMHeaderTable = UE_FIELD_FIXABLE_NON_CRITICAL;
} }
else else
{ {
ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].VirtualAddress + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase, false, true); ConvertedAddress = (ULONG_PTR)ConvertVAtoFileOffsetEx(FileMapVA, FileSize, NULL, PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].VirtualAddress + (ULONG_PTR)PEHeader64->OptionalHeader.ImageBase, false, true);
if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize) if(ConvertedAddress == NULL || ConvertedAddress - FileMapVA > FileSize)
{ {
myFileStatusInfo.COMHeaderTable = UE_FILED_FIXABLE_NON_CRITICAL; myFileStatusInfo.COMHeaderTable = UE_FIELD_FIXABLE_NON_CRITICAL;
} }
} }
} }
@ -8837,7 +8837,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
{ {
if(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress > CorrectedImageSize || PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress + PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].Size > CorrectedImageSize) if(PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress > CorrectedImageSize || PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress + PEHeader64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].Size > CorrectedImageSize)
{ {
myFileStatusInfo.ResourceTable = UE_FILED_FIXABLE_NON_CRITICAL; myFileStatusInfo.ResourceTable = UE_FIELD_FIXABLE_NON_CRITICAL;
} }
else else
{ {
@ -8897,7 +8897,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
PESections = (PIMAGE_SECTION_HEADER)((ULONG_PTR)PESections + sizeof IMAGE_SECTION_HEADER); PESections = (PIMAGE_SECTION_HEADER)((ULONG_PTR)PESections + sizeof IMAGE_SECTION_HEADER);
if(SectionVirtualSize > PESections->VirtualAddress || SectionVirtualSizeFixed > PESections->VirtualAddress) if(SectionVirtualSize > PESections->VirtualAddress || SectionVirtualSizeFixed > PESections->VirtualAddress)
{ {
myFileStatusInfo.SectionTable = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.SectionTable = UE_FIELD_FIXABLE_CRITICAL;
} }
} }
NumberOfSections--; NumberOfSections--;
@ -8909,7 +8909,7 @@ __declspec(dllexport) bool TITCALL IsPE32FileValidExW(wchar_t* szFileName, DWORD
SectionVirtualSizeFixed = SectionVirtualSizeFixed + 0xF000; SectionVirtualSizeFixed = SectionVirtualSizeFixed + 0xF000;
if(PEHeader64->OptionalHeader.SizeOfImage > SectionVirtualSizeFixed) if(PEHeader64->OptionalHeader.SizeOfImage > SectionVirtualSizeFixed)
{ {
myFileStatusInfo.SizeOfImage = UE_FILED_FIXABLE_CRITICAL; myFileStatusInfo.SizeOfImage = UE_FIELD_FIXABLE_CRITICAL;
} }
SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.SizeOfImage, true); SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.SizeOfImage, true);
SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.SectionTable, true); SetOverallFileStatus(&myFileStatusInfo, myFileStatusInfo.SectionTable, true);

View File

@ -632,8 +632,8 @@ typedef struct
#define UE_FIELD_BROKEN_NON_CRITICAL 2 #define UE_FIELD_BROKEN_NON_CRITICAL 2
#define UE_FIELD_BROKEN_FIXABLE_FOR_STATIC_USE 3 #define UE_FIELD_BROKEN_FIXABLE_FOR_STATIC_USE 3
#define UE_FIELD_BROKEN_BUT_CAN_BE_EMULATED 4 #define UE_FIELD_BROKEN_BUT_CAN_BE_EMULATED 4
#define UE_FILED_FIXABLE_NON_CRITICAL 5 #define UE_FIELD_FIXABLE_NON_CRITICAL 5
#define UE_FILED_FIXABLE_CRITICAL 6 #define UE_FIELD_FIXABLE_CRITICAL 6
#define UE_FIELD_NOT_PRESET 7 #define UE_FIELD_NOT_PRESET 7
#define UE_FIELD_NOT_PRESET_WARNING 8 #define UE_FIELD_NOT_PRESET_WARNING 8