private static ImageImportDescriptor *GetImportDescriptors(this ProcessModule module) { ImageNTHeaders *ntHeader = module.GetNTHeader(); ImageDataDirectory importDataDirectory = ntHeader->OptionalHeader.GetDataDirectory(ImageDirectoryEntry.Import); return((ImageImportDescriptor *)importDataDirectory.VirtualAddress.AsPtr(module)); }
private static ImageNTHeaders *GetNTHeader(this ProcessModule module) { ImageDosHeader *dos = (ImageDosHeader *)module.BaseAddress; dos->VerifySignature(); ImageNTHeaders *nt = (ImageNTHeaders *)dos->e_lfanew.AsPtr(module); nt->VerifySignature(); return(nt); }