| 369 | } |
| 370 | |
| 371 | IMAGE_DATA_DIRECTORY* GetPEDirectory(PVOID pe_buffer, size_t dir_id) |
| 372 | { |
| 373 | if (dir_id >= IMAGE_NUMBEROF_DIRECTORY_ENTRIES) return NULL; |
| 374 | |
| 375 | char* nt_headers = GetNTHeaders((char*)pe_buffer); |
| 376 | if (nt_headers == NULL) return NULL; |
| 377 | |
| 378 | IMAGE_DATA_DIRECTORY* peDir = NULL; |
| 379 | |
| 380 | IMAGE_NT_HEADERS* nt_header = (IMAGE_NT_HEADERS*)nt_headers; |
| 381 | peDir = &(nt_header->OptionalHeader.DataDirectory[dir_id]); |
| 382 | |
| 383 | if (peDir->VirtualAddress == NULL) { |
| 384 | return NULL; |
| 385 | } |
| 386 | return peDir; |
| 387 | } |
| 388 | |
| 389 | bool RepairIAT(PVOID modulePtr) |
| 390 | { |
no test coverage detected