#include "LPEL_Headers.h"
PIMAGE_DOS_HEADER DLLEXPORT LPEL_GetDOSHeader(HANDLE hBinary)
{
PIMAGE_DOS_HEADER pDOSHeader = NULL;
pDOSHeader = (PIMAGE_DOS_HEADER) hBinary;
return pDOSHeader;
}
PIMAGE_NT_HEADERS DLLEXPORT LPEL_GetPEHeader(HANDLE hBinary)
{
PIMAGE_DOS_HEADER pDOSHeader = NULL;
PIMAGE_NT_HEADERS pPEHeader = NULL;
pDOSHeader = LPEL_GetDOSHeader(hBinary);
pPEHeader = (PIMAGE_NT_HEADERS) ((PUCHAR)pDOSHeader + pDOSHeader->e_lfanew); return pPEHeader;
}
PIMAGE_FILE_HEADER DLLEXPORT LPEL_GetCOFFHeader(HANDLE hBinary)
{
PIMAGE_NT_HEADERS pPEHeader = NULL;
PIMAGE_FILE_HEADER pCOFFHeader = NULL;
pPEHeader = LPEL_GetPEHeader(hBinary);
pCOFFHeader = (PIMAGE_FILE_HEADER)&pPEHeader->FileHeader;
return pCOFFHeader;
}
PIMAGE_OPTIONAL_HEADER DLLEXPORT LPEL_GetOptionalHeader(HANDLE hBinary)
{
PIMAGE_NT_HEADERS pPEHeader = NULL;
PIMAGE_OPTIONAL_HEADER pOptionalHeader = NULL;
pPEHeader = LPEL_GetPEHeader(hBinary);
pOptionalHeader = (PIMAGE_OPTIONAL_HEADER)&pPEHeader->OptionalHeader;
return pOptionalHeader;
}
PIMAGE_SECTION_HEADER DLLEXPORT LPEL_GetSectionHeader(HANDLE hBinary)
{
PIMAGE_NT_HEADERS pPEHeader = NULL;
PIMAGE_SECTION_HEADER pSectionHeader = NULL;
pPEHeader = LPEL_GetPEHeader(hBinary);
pSectionHeader = (PIMAGE_SECTION_HEADER)IMAGE_FIRST_SECTION(pPEHeader);
return pSectionHeader;
}
BYTE DLLEXPORT LPEL_IsPEValid(HANDLE hBinary)
{
PIMAGE_DOS_HEADER pDOSHeader = NULL;
PIMAGE_NT_HEADERS pPEHeader = NULL;
pDOSHeader = LPEL_GetDOSHeader(hBinary);
pPEHeader = LPEL_GetPEHeader(hBinary);
if(pDOSHeader->e_magic != IMAGE_DOS_SIGNATURE)
return 0x0;
if(pPEHeader->Signature != IMAGE_NT_SIGNATURE)
return 0x0;
return 0x1;
}