PEAnatomist - внутренности PE-файлов

Тема в разделе "WASM.PROJECTS", создана пользователем RamMerLabs, 11 окт 2019.

  1. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.416
    Обновление программы до версии 0.2.8 Final (2022-03-05):

    • Добавлено отображение информации о IMAGE_DEBUG_TYPE_BBT (Basic Block Transformation)
    • Исправлена ошибка разбора заголовка CORCOMPILE_HEADER для .NetFramework 4.6 - 4.6.2
    • Добавлена поддержка IMAGE_FILE_MACHINE_POWERPCBE (Xbox 360, только несжатые PE)
    • Добавлена поддержка IMAGE_REL_BASED_HIGHADJ
    • Исправлен ряд ошибок

    Сайт программы # Подробнее об изменениях # Скачать новую версию
     
    Artem_N, Rel и Mikl___ нравится это.
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    4.849
    Вообще, надо бы какой-то еще PE- парсер попробовать потом, интерфейс PEBear'а как-то совсем не нравится.
     
  3. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.416
    Aiks и Mikl___ нравится это.
  4. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.416
    Обновление программы до версии 0.2.10 Final Fix2 (2022-04-16):

    • Исправлена ошибка отображения данных из таблиц UnwindInfo CxxFH3 для ARM7
    • Исправлены CodeView-символы S_DEFRANGE_CONSTVAL_ON_ENTRY и S_DEFRANGE_GLOBALSYM_ON_ENTRY из VS2022 17.2Pre3
    • Устранена утечка GDI-объектов при одновременном использовании более одного диалога настройки колонок ListView

    Сайт программы # Подробнее об изменениях # Скачать новую версию
     
    Mikl___ и Rel нравится это.
  5. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.011
    Адрес:
    Россия, Нижний Новгород
    RamMerLabs, случайно не знаешь, есть ли гарантии, что ординалы имён в таблице экспортов будут отсортированы по-возрастанию? Можно ли на это полагаться при парсинге?
     
  6. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.416
    Если речь о массиве IMAGE_EXPORT_DIRECTORY.AddressOfNameOrdinals, то спецухой предусмотрена сортировка - для быстрого поиска по ординалу в случае отсутствия имени экспортируемого символа. Однако, если имя есть, то вполне можно обойтись без поиска и в отдельных интересных случаях сортировка может быть проигнорирована.
    Я бы перед использованием убедился в возрастании индексов и/или сделал бы принудительную сортировку на копии массива, если это критично.
     
  7. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.011
    Адрес:
    Россия, Нижний Новгород
    Да, о нём. Перебираю экспорты и думаю, как быстро, желательно за константное время, определить, есть ли у функции имя, и получить его.
    И такой способ существует только если есть гарантия, что ординалы отсортированы. Если же нет - остаётся только линейный поиск (если не выделять память под отсортированный массив).
    Сортировка имён в спеках прописана явно, а вот насчёт сортировки ординалов - в спеках не нашёл (и не уверен, должна ли отсортированность ординалов следовать из отсортированности имён - скорей всего не должна).
     
  8. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.416
    Вы правы, явно указана сортировка индексов (называемых иногда "hint" по аналогии с импортом) в массиве имён. Признаюсь, никогда не заморачивался с признаком сортировки ординалов, т.к. обычно использую собственную копию данных, чаще в виде хеш-таблиц или деревьев.

    Ну тогда наверное остаётся ввести свойство\признак\флаг "отсортированности" массива ординалов, проверяя на возрастание индексов при загрузке файла и в зависимости от значения флага выполнять поиск перебором (в худшем случае) или бинарный.
     
  9. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.416
    Обновление программы до версии 0.2.11 Final Fix3 (2022-05-18):

    • Исправлена ошибка перечисления символа IMAGE_DYNAMIC_RELOCATION_FUNCTION_OVERRIDE в таблице DVRT
    • Добавлена отдельная страница для содержимого символа IMAGE_DYNAMIC_RELOCATION_FUNCTION_OVERRIDE в таблице DVRT (бэкпорт из 0.3.10516.1931)

    Сайт программы # Подробнее об изменениях # Скачать новую версию
     
    Rel, Mikl___ и Aiks нравится это.
  10. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.416
    Обновление программы до версии 0.2.10712.2124 (2022-07-12):
    • Устранена редкая ошибка обращения к памяти вне выделенного буфера во время распознавания типа обработчика исключений для отдельных PE
    • Устранена ошибка чтения директории IMAGE_DIRECTORY_ENTRY_DEBUG и заголовка метаданных dotNet вне выделенных буферов в некоторых искажённых PE

    Сайт программы # Подробнее об изменениях # Скачать новую версию
     
    Mikl___ и Rel нравится это.
  11. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.416
    MaKaKa, R81..., Mikl___ и ещё 1-му нравится это.
  12. MaKaKa

    MaKaKa Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2020
    Сообщения:
    47
    RamMerLabs не планируете добавить вкладку с дизассемлированным кодом? Очень не хватает.
     
  13. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    4.849
    Да, запили уже нам аналог IDA Pro в своей тулзе, а то очень не хватает. И декомпилятор не забудь нормальным сделать, а не как у Ильфака.
     
  14. MaKaKa

    MaKaKa Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2020
    Сообщения:
    47
    Rel Ну мне просто Detect It Easy не нравится, Hiew не пользуюсь, PEAnatomist нравится, пользуюсь достаточно регулярно, но порой не хватает диза, чтобы быстро глянуть. А в иду бинарь тащить это ждать драгоценные минуты пока там все проанализируется и pdb скачаются.
     
  15. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.416
    Доброго дня! Рад, что моя программа оказалась полезной!
    Диз для x86/x64/arm64 планируется в версии 0.3, скорее всего пока на основе Capstone. По срокам никакой определённости.
     
    Rel и MaKaKa нравится это.
  16. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.416
    mantissa, MaKaKa и Mikl___ нравится это.
  17. RCE

    RCE Member

    Публикаций:
    2
    Регистрация:
    22 сен 2022
    Сообщения:
    26
    RamMerLabs, софт норм что развивается, но PE Explorer + CFF Explorer конечно лучше, без обид. Раз уж "анатомист" - то должна быть возможность "ковырять" файлы, т.е. менять/добавлять импорт, точку входа и т.д.
     
  18. MaKaKa

    MaKaKa Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2020
    Сообщения:
    47
    Анатомия это вроде не про изменение объекта, а про строение. По-моему название тулзы морфологически корректное и соответствует ее функциональности на текущем этапе.
     
  19. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    4.849
    Не бери в голову, он просто пытается генерировать посты, от которых есть толк, но у него пока очень плохо выходит...
     
  20. RCE

    RCE Member

    Публикаций:
    2
    Регистрация:
    22 сен 2022
    Сообщения:
    26
    Я посты не генерирую. А просто сделал предложение.
    --- Сообщение объединено, 15 ноя 2022 ---
    RamMerLabs, Советую сделать поддержку плагинов еще, чтоб можно было прикрутить, что вы не успеваете, вот и всё что я советовал. Не понимаю неприязнь ко мне, но в этой теме мы это обсуждать согласно правилам не будем.