| 34 | // utils |
| 35 | |
| 36 | bool IsValidPEHeader(ULONG_PTR BaseAddress) |
| 37 | { |
| 38 | if (!BaseAddress) return false; |
| 39 | PIMAGE_DOS_HEADER dosHeader = PIMAGE_DOS_HEADER(BaseAddress); |
| 40 | if (dosHeader->e_magic != IMAGE_DOS_SIGNATURE) return false; |
| 41 | PIMAGE_NT_HEADERS ntHeader = PIMAGE_NT_HEADERS(BaseAddress + dosHeader->e_lfanew); |
| 42 | if (ntHeader->Signature != IMAGE_NT_SIGNATURE) return false; |
| 43 | PIMAGE_OPTIONAL_HEADER optionalHeader = PIMAGE_OPTIONAL_HEADER(&ntHeader->OptionalHeader); |
| 44 | if (optionalHeader->Magic != IMAGE_NT_OPTIONAL_HDR_MAGIC) return false; |
| 45 | return true; |
| 46 | } |
| 47 | |
| 48 | const PIMAGE_SECTION_HEADER GetPeSectionByName(const PE_HEADER& HeaderData, const char* SectionName) |
| 49 | { |
no outgoing calls
no test coverage detected