Новости из Блогов Библиотека для работы с PE-файлами (C++)

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 8 Sep 2012.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,482
    Likes Received:
    7,063
    Reputations:
    693
    Библиотека для работы с PE-файлами (C++)
    Суббота, 8. Сентябрь 2012
    автор: dx
    http://kaimi.ru/2012/09/portable-executable-library/
    http://kaimi.ru/



    [​IMG]

    Выкладываю более-менее завершенную библиотеку для работы с Portable Executable (PE) файлами.

    Основные фичи библиотеки:
    [+] Чтение 32-разрядных и 64-разрядных PE-файлов (PE, PE+) для Windows, возможность единообразной работы с обоими форматами
    [+] Пересборка 32-разрядных и 64-разрядных PE-файлов
    [+] Работа с директориями и заголовками
    [+] Конвертирование адресов
    [+] Чтение и редактирование секций PE-файла
    [+] Чтение и редактирование таблицы импортов
    [+] Чтение и редактирование таблицы экспортов
    [+] Чтение и редактирование таблиц релокаций
    [+] Чтение и редактирование ресурсов
    [+] Чтение и редактирование TLS
    [+] Чтение конфигурации образа (image config)
    [+] Чтение базовой информации .NET
    [+] Чтение информации о привязанном импорте
    [+] Чтение директории исключений (только PE+)
    [+] Чтение отладочной директории с расширенной информацией
    [+] Вычисление энтропии
    [+] Изменение файлового выравнивания
    [+] Изменение базового адреса загрузки
    [+] Работа с DOS Stub'ом и Rich overlay
    [+] Высокоуровневое чтение ресурсов: картинки, иконки, курсоры, информация о версии, строковые таблицы, таблицы сообщений
    [+] Высокоуровневое редактирование ресурсов: картинки, иконки, курсоры, информация о версии

    Словом, все, что вы хотели сделать с PE, но боялись спросить, как. Весь код библиотеки снабжен обильными комментариями на английском языке. В проект включено 25 примеров работы с библиотекой, которые показывают, как работать с той или иной частью библиотеки (комментарии на русском языке). Имеются солюшены для MSVC++ 2008 и 2010. Справочной информации пока нет, возможно, соберусь ее как-нибудь написать.

    Библиотека не использует WinAPI или другие библиотеки, только STL. Возможно, я когда-нибудь сделаю ее кроссплатформенной, но пока до этого далеко из-за отличия размера типа wchar_t в Windows и Linux (а в PE-файлах очень много юникодных 16-байтовых строк) и некоторых других сложностей.

    Библиотека и примеры собираются под Windows x86 и x64, но для того, чтобы работать с PE+, собирать под x64 необязательно. Библиотека не исполняет считываемые файлы, не маппит их в память, поэтому с ее помощью можно спокойно открывать подозрительные исполняемые файлы и работать с ними.

    Проект залит на code.google.com на случай возможных правок и улучшений, так как сейчас библиотека в стадии альфа-версии.

    Репозиторий: http://code.google.com/p/portable-executable-library/
    Скачать архив с последними сорсами: ZIP
     
    _________________________
  2. Hon45

    Hon45 New Member

    Joined:
    3 Sep 2012
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    спасибо
     
Loading...