Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
NativePe — Библиотека Object Pascal (Delphi) для парсинга, отображения, загрузки и дампа файлов Windows PE, с релокациями, импортами, TLS и чтением памяти удалённых процессов. | Kitploit
Инструменты/GitHubGitHub/habanada/nativepe
Динамический анализ (песочница)Криминалистика памятиОбратная инженерияАнализ вредоносных программУтилиты и фреймворкиАнализ Бинарных ФайловРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubhabanada/nativepe

NativePe

Библиотека Object Pascal (Delphi) для парсинга, отображения, загрузки и дампа файлов Windows PE, с релокациями, импортами, TLS и чтением памяти удалённых процессов.

181 день назадЕщё не проверено
Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

NativePe

NativePe

NativePe — это библиотека для работы с Windows Portable Executable, написанная на Object Pascal для Delphi.

Проект сосредоточен на разборе PE, отображении, загрузке, перемещении, обработке импорта и экспорта, дампинге, чтении памяти процессов и связанных внутренних механизмах Windows. Он поддерживает сборки Win32 и Win64 из одного дерева исходников.

NativePe — это исследовательский проект. Он был протестирован на большом наборе обычных, необычных, повреждённых и враждебных PE-файлов, но не претендует на корректную обработку всех возможных PE-файлов.

Мотивация

Часть мотивации личная. Я использовал Delphi примерно в начале 2000-х и хотел вернуться к низкоуровневой разработке под Windows с современным Delphi.

NativePe также является практическим экспериментом, показывающим, что Object Pascal всё ещё можно использовать для исследований PE и внутренних механизмов Windows.

Происхождение и связь с libpeconv

Ядро обработки PE в NativePe — это порт/реализация на Object Pascal проекта libpeconv от hasherezade.

Код был переписан на Object Pascal, но разделение на основные модули и многие публичные операции, пути валидации, решения по управляющему потоку, правила отката, диагностика и тесты были производными от исходного кода libpeconv. Таким образом, NativePe не является реализацией функциональности libpeconv, портированной из неё, созданной в условиях «чистой комнаты» или независимого проектирования.

Ревизия libpeconv, используемая текущим дифференциальным стендом, — коммит 0fc25f680e03699d33ef3b2034a6724365f3d1a4.

Спасибо hasherezade за публикацию libpeconv. См. docs/PROVENANCE.md для описания связи на уровне исходного кода и THIRD-PARTY-NOTICES.md для атрибуции и уведомлений о лицензиях.

Что здесь оригинально

NativePe — это больше, чем синтаксический перевод libpeconv. Текущий проект добавляет функциональность, специфичную для NativePe, и интеграцию с Delphi/Windows вокруг портированного ядра.

Это включает разрешение API Set, подключаемые провайдеры памяти WinAPI/NTAPI/прямых системных вызовов, инициализацию security-cookie, вспомогательные средства переработки PE и связанный интеграционный код. У этих частей нет прямого аналога на уровне исходных модулей в зафиксированном ядре libpeconv.

Репозиторий также содержит специфичные для NativePe тестовые проекты Delphi, реальные фикстуры, инструментарий для корпуса и интеграционные тесты Windows.

Основные возможности

  • Обработка заголовков и секций PE32 и PE32+
  • Преобразование RAW в виртуальный и виртуального в RAW
  • Базовые перемещения
  • Обработка обычного импорта и импорта с отложенной загрузкой
  • Поиск экспорта и отображение экспорта
  • Разбор TLS и обработка колбэков
  • Разбор директории ресурсов
  • Обработка директории исключений
  • Разбор Load Config
  • Поиск модулей на основе PEB
  • Ручная загрузка PE
  • Чтение и дампинг PE удалённых процессов
  • Вспомогательные средства восстановления и починки импорта
  • Поиск code cave и вспомогательные средства переработки PE
  • Вспомогательные средства перенаправления IAT и локальных функций
  • Опциональное разрешение API Set
  • Опциональная инициализация security cookie
  • Подключаемый слой доступа к памяти
  • Бэкенд памяти WinAPI
  • Бэкенд памяти NTAPI через ntdll
  • Бэкенд памяти прямых системных вызовов Win64
  • Цели Win32 и Win64

Более подробно в docs/FEATURES.md.

Бэкенды памяти

NativePe отделяет логику PE от выбранных операций с памятью операционной системы через TNativePeMemoryProvider.

Текущие встроенные бэкенды:

  • TWinApiMemoryProvider
  • TNtApiMemoryProvider
  • TSyscallMemoryProvider на Win64

Существующий путь хуков также сохраняет свой опциональный переключатель совместимости UseSyscalls для защиты памяти на основе прямых системных вызовов.

См. docs/MEMORY-PROVIDERS.md.

Тестирование

NativePe использует несколько уровней тестирования:

  • Регрессионные и интеграционные тесты DUnitX
  • Тесты повреждённых PE
  • Тесты реальных процессов и загрузчика Windows
  • Изолированный запуск корпуса
  • Проверки точности и дифференциальные проверки libpeconv

Задокументированный дифференциальный запуск от 25 сентября 2026 года обработал 30 159 идентичных путей корпуса с помощью NativePe и зафиксированного стенда libpeconv. На уровне результатов 30 147 путей совпали и 12 различались. NativePe не зафиксировал ни одного сбоя воркеров в этом запуске; стенд libpeconv зафиксировал шесть. Эти результаты описывают только данный корпус и данные стенды и не устанавливают общего превосходства.

Запуск не был тестом производительности бенчмарк-качества, поэтому его данные о времени не используются для заявлений о производительности. Внешние корпуса и образцы вредоносного ПО не распространяются вместе с NativePe.

См. docs/TESTING.md, docs/CORPUS-RESULTS.md и docs/LIBPECONV-COMPARISON.md.

Сборка

NativePe разрабатывается с Delphi 12 Athens.

Откройте NativePe.groupproj, чтобы собрать включённые демо, тесты, запуск корпуса, инструмент дампинга процессов и проекты тестов на реальных данных.

Основной исходный код библиотеки находится в src. Проекты также могут использовать NativePe напрямую, добавив src в путь поиска модулей Delphi и ссылаясь на необходимые модули NativePe.*.

Включённые проекты поддерживают как Win32, так и Win64.

Минимальный пример загрузчика

Следующий пример отображает образ PE, применяет перемещения и разрешает импорты. Он не вызывает точку входа PE.

program PeLoaderMinimal;

{$APPTYPE CONSOLE}

uses
  System.SysUtils,
  NativePe.BufferUtil,
  NativePe.PeLoader;

var
  Image: TAlignedBuf;
  ImageSize: NativeUInt;

begin
  if ParamCount <> 1 then
    Halt(1);

  Image := LoadPeExecutable(ParamStr(1), ImageSize);
  if Image = nil then
    Halt(1);
  try
    Writeln('Loaded at: 0x', IntToHex(NativeUInt(Image), SizeOf(Pointer) * 2));
    Writeln('Virtual size: ', ImageSize);
  finally
    FreePeBuffer(Image, ImageSize);
  end;
end.

Добавьте src в путь поиска модулей Delphi и запустите программу с PE-файлом в качестве единственного аргумента.

Запуск инструментов

Репозиторий содержит несколько исполняемых файлов и вспомогательных скриптов. Основные точки входа описаны в docs/BINARIES.md.

Важно: NativePeDemo.exe загружает и выполняет переданный PE-файл. Используйте его только с доверенными тестовыми файлами. Запуск корпуса предназначен для статической обработки PE и намеренно не выполняет точки входа PE или TLS-колбэки.

Документация

Скачать инструмент