| 175 | } |
| 176 | |
| 177 | DWORD CPEFunctions::OffsetToCode(DWORD dwBaseAddr) |
| 178 | { |
| 179 | auto pDosHeader = (PIMAGE_DOS_HEADER)dwBaseAddr; |
| 180 | if (!pDosHeader || pDosHeader->e_magic != IMAGE_DOS_SIGNATURE) |
| 181 | return 0; |
| 182 | |
| 183 | auto pNTHeader = (PIMAGE_NT_HEADERS)((DWORD)pDosHeader + (DWORD)pDosHeader->e_lfanew); |
| 184 | if (pNTHeader->Signature != IMAGE_NT_SIGNATURE) |
| 185 | return 0; |
| 186 | |
| 187 | PIMAGE_OPTIONAL_HEADER pOptionalHeader = &pNTHeader->OptionalHeader; |
| 188 | if (!pOptionalHeader) |
| 189 | return NULL; |
| 190 | |
| 191 | return pOptionalHeader->BaseOfCode; |
| 192 | } |
| 193 | |
| 194 | DWORD CPEFunctions::GetModuleImageSize(DWORD dwBaseAddr) |
| 195 | { |
nothing calls this directly
no outgoing calls
no test coverage detected