/// <summary>Get all import modules from image</summary> /// <returns>Import modules</returns> public IEnumerator <ImportModule> GetEnumerator() { if (!IsEmpty) { UInt32 count = 0; WinNT.IMAGE_IMPORT_DESCRIPTOR descriptor = this.Header.Value; while (!descriptor.IsEmpty) { yield return(new ImportModule(this, descriptor)); count++; descriptor = this.Parent.Header.PtrToStructure <WinNT.IMAGE_IMPORT_DESCRIPTOR>(base.Directory.VirtualAddress + (Import.SizeOfHeader * count)); } } }
/// <summary>Create instance of import description class</summary> /// <param name="directory">Import directory</param> /// <param name="header">Header</param> public ImportModule(Import directory, WinNT.IMAGE_IMPORT_DESCRIPTOR header) { this._directory = directory; this._header = header; }