Проекты

PE Image Info Plugin

GUI

История возникновения началась с того, что я сильно расплодил DAL и BLL используемых в разных проектах. И в один прекрасный момент мне стало интересно, используется или не используется специфический метод в дочерних проектах или его можно смело удалять никого не оповещая. Первая версия искала через рефлексию и загрузку через память. Но про ограничения разных методов поиска через рефлексию можно почитать в описании разных провайдеров загрузки плагинов. В результате, пришлось копать в сторону PE и CLI...

Интерфейс доступен в меню: View→Executables→PE/CLI View

Чтение PE файлов

Плагин может читать PE файл 2мя вариантами:

  1. Win32Loader — Через функцию LoadLibrary
  2. StreamLoader — Через управляемый класс System.IO.FileStream

Открыть PE файл можно из нескольких источников:

  1. Файловая система
  2. Запущенные процессы (Позволяет обойти упаковщики и необходимость подсчёта RVA)
  3. GAC

Настройки

  • MaxArrayDisplay 10 — Максимальная визуализация массивов.
  • ShowAsHexValue False — Отображать цифры в виде десятичной или щестнадцатеричной системы исчисления.
  • ShowBaseMetaTables False — Отображать в динамических структурах басзовые таблицы, вместо строго типизированных (Ближе к бинарному виду файла).
  • Loader StreamLoader — Как загружать PE файл.
    • Win32Loader — Через функцию LoadLibrary (RVA считать не нужно.)
    • StreamLoader — Через управляемый класс System.IO.FileStream (Приходится подсчитывать правильные RVA)
  • MonitorFileChange False — При обновлении файла на жёстком диске, файл автоматом обновится во всех открытых окнах отображения данных из текущего файла

Внешние методы

  • Type GetEntityType() — Получить тип PEFile
  • Object CreateEntityInstance(Object dataItem) — Создать экземпляр класса PEFile, передав в качестве аргумента путь к файлу на диске
  • Object[] GetSearchObjects() — Получить массив файлов с расширениями *.dll, *.exe из папки, выбираемой в пользовательском интерфейсе.

Configuration

Отображаемые директории

Интерфейс отображает информацию по следующим директориям и заголовкам

  • DOS header (IMAGE_DOS_HEADER)
  • PE/PE+ header (IMAGE_NT_HEADERS)
  • File header (IMAGE_FILE_HEADER)
  • Optional header (IMAGE_OPTIONAL_HEADER)
  • COFF header (IMAGE_COFF_SYMBOLS_HEADER)
  • Sections header (IMAGE_SECTION_HEADER[])
  • Директории:
    • Architecture
    • Bound import
    • Certificate
    • CLR runtime header
      • Metadata
        • #~
          • Module
          • TypeRef
          • TypeDef
          • FieldPtr
          • Field
          • MethodPtr
          • MethodDef
          • ParamPtr
          • Param
          • InterfaceImpl
          • MemberRef
          • Constant
          • CustomAttribute
          • FieldMarshal
          • DeclSecurity
          • ClassLayout
          • FieldLayout
          • StandAloneSig
          • EventMap
          • EventPtr
          • Event
          • PropertyMap
          • PropertyPtr
          • Property
          • MethodSemantics
          • MethodImpl
          • ModuleRef
          • TypeSpec
          • ImplMap
          • FieldRVA
          • ENCLog
          • ENCMap
          • Assembly
          • AssemblyProcessor
          • AssemblyOS
          • AssemblyRef
          • AssemblyRefProcessor
          • AssemblyRefOS
          • File
          • ExportedType
          • ManifestResource
          • NestedClass
          • GenericParam
          • MethodSpec
          • GenericParamConstraint
        • #Strings
        • #US
        • #Guid
        • #Blob
      • Resource Table (Будет переписано в следующих версиях)
      • VTable fixup
      • Code Manager Table
      • Export Address Table
      • Managed Native Header
      • Strong Name Signature
    • Debug
      • CodeView PDB2
      • CodeView PDB7
      • Misc (IMAGE_DEBUG_MISC)
    • Delay Import Descriptor
      • Список всех импортируемых библиотек
      • Список всех импортируемых функций
    • Exception Table
    • Export Table
      • Список всех экспортируемых функций
    • Global Ptr
    • IAT
    • Import Table
      • Список всех импортируемых библиотек
      • Список всех импортируемых функций
    • Load Config Table
    • Base Relocation Table
      • Relocation Blocks
      • Relocation Sections
    • Resource Table. Просмотр ресурсов:
      • RT_STRING
      • RT_HTML
      • RT_MANIFEST
      • RT_ACCELERATOR
      • RT_MESSAGETABLE
      • RT_DIALOG
      • RT_MENU
      • RT_VERSION

    • TLS Table

Поддерживаемые структуры

Наименования структур и перечистлимых типов соответствует наименованиям в стандартном C++ заголовочном файле описывающего PE формат. Ниже, частично, приведены поддерживаемые структуры.

  • DOS Headers
    • IMAGE_DOS_HEADER
  • PE/PE+ Headers
    • IMAGE_FILE_HEADER
    • IMAGE_OPTIONAL_HEADER32
    • IMAGE_OPTIONAL_HEADER64
    • IMAGE_NT_HEADERS32
    • IMAGE_NT_HEADERS64
    • IMAGE_SECTION_HEADER
    • Unmanaged resources
      • IMAGE_RESOURCE_DIRECTORY
      • IMAGE_RESOURCE_DIRECTORY_ENTRY
      • IMAGE_RESOURCE_DATA_ENTRY
      • IMAGE_RESOURCE_DIRECTORY_STRING
      • ACCELTABLEENTRY
      • DLGTEMPLATE
      • DLGITEMTEMPLATE
      • DLGTEMPLATEEX
      • DLGITEMTEMPLATEEX
      • MENUHEADER
      • MENUITEM
      • MENUITEMPOPUP
      • MENUITEMEX
      • BITMAPINFOHEADER
      • VS_VERSIONINFO
      • VS_FIXEDFILEINFO
      • VarFileInfo
      • StringTable
      • V_STRING
      • FONTDIRENTRY
      • MESSAGE_RESOURCE_BLOCK
      • MESSAGE_RESOURCE_ENTRY
    • IMAGE_IMPORT_DESCRIPTOR
    • IMAGE_THUNK_DATA32
    • IMAGE_THUNK_DATA64
    • IMAGE_IMPORT_BY_NAME
    • IMAGE_RUNTIME_FUNCTION_ENTRY
    • IMAGE_DATA_DIRECTORY
    • IMAGE_EXPORT_DIRECTORY
    • IMAGE_BOUND_IMPORT_DESCRIPTOR
    • IMAGE_BOUND_FORWARDER_REF
    • WIN_CERTIFICATE
    • ImgDelayDescr
    • IMAGE_BASE_RELOCATION
    • IMAGE_LOAD_CONFIG_DIRECTORY32
    • IMAGE_LOAD_CONFIG_DIRECTORY64
    • IMAGE_TLS_DIRECTORY32
    • IMAGE_TLS_DIRECTORY64
    • Debug directory
      • IMAGE_DEBUG_DIRECTORY
      • CV_INFO_PDB70
      • CV_HEADER
      • CV_INFO_PDB20
      • IMAGE_DEBUG_MISC
    • .NET CLI
      • IMAGE_COR20_HEADER
      • IMAGE_COR20_METADATA
      • IMAGE_COR20_VTABLE
      • ResourceManagerHeader
      • ResourceSetHeader
      • ResourceItem
      • STREAM_HEADER
      • STREAM_TABLE_HEADER
Теги:

Скачать

Ссылки

Родительские файлы

Дочерние файлы