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

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

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

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

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

Категории

Все категории
Loading categories
NativeMirror — Нативная реализация функциональности PE-sieve на Delphi с переиспользуемой библиотекой, CLI и DLL, совместимой с PE-sieve, для интеграции с HollowsHunter. | Kitploit
Инструменты/GitHubGitHub/habanada/nativemirror
Оборонительные ИнструментыКриминалистика памятиОбратная инженерияАнализ вредоносных программЦифровая криминалистикаАнализ Бинарных ФайловРеагирование на Инциденты
GitHubhabanada/nativemirror

NativeMirror

Нативная реализация функциональности PE-sieve на Delphi с переиспользуемой библиотекой, CLI и DLL, совместимой с PE-sieve, для интеграции с HollowsHunter.

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

Популярное

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

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

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

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

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

NativeMirror

NativeMirror — это независимая реализация функциональности PE-sieve на Object Pascal, адаптированная из PE-sieve от hasherezade. Она сканирует память процесса, обнаруживает модифицированный или внедрённый код и выполняет дамп PE-файлов.

Реализация использует нативные API Delphi и NativePe в качестве PE-движка. Её можно использовать напрямую как библиотеку Delphi, через CLI или через DLL-интерфейс, совместимый с PE-sieve. Все три варианта используют одно и то же ядро сканера. Цель совместимости — внешне наблюдаемое поведение PE-sieve 0.4.1.5; полная поведенческая эквивалентность не установлена.

Требования

  • Windows и Delphi 12 с поддержкой компиляторов Win32 и Win64.
  • NativePe: обязательная PE-библиотека. Разместите её рядом с NativeMirror как ../NativePe или скорректируйте пути поиска Delphi.
  • NativeASM: опциональный бэкенд дизассемблирования для Win64. Проект NativeMirrorScan.NativeAsm.dproj включает USE_NATIVEASM. Без него NativeMirror использует резервный вариант Delphi/LDE. Скорректируйте путь поиска NativeASM в соответствии с вашей установкой.
  • Python 3 с лаунчером Windows py: требуется для пост-сборочного шага DLL и тестов Python. Скрипты используют стандартную библиотеку Python.
  • DUnitX: требуется для сборки тестовых раннеров Delphi. Сделайте его модули доступными в пути поиска Delphi.
  • CMake и Visual Studio 2022 с инструментами C++: нужны только для контрактных тестов DLL.

Некоторые конфигурации проектов содержат локальные пути зависимостей. Проверьте пути поиска перед сборкой на другой машине.

Сборка

Откройте NativeMirror.groupproj в Delphi и выберите нужный проект, платформу и конфигурацию.

ПроектВыходной файл
tools/NativeMirrorScan/NativeMirrorScan.dprojNativeMirrorScan.exe
tools/NativeMirrorDll/pe-sieve.dprojpe-sieve.dll
tests/ScannerIntegration/NativeMirrorTestTarget.dprojТестовая цель Win64
tests/ScannerIntegration/NativeMirrorTestTarget32.dprojТестовая цель Win32
tests/ScannerIntegration/NativeMirrorScannerTests.dprojТестовый раннер сканера Win64
tests/HollowsHunterIntegration/NativeMirrorHollowsHunterTests.dprojТестовый раннер HollowsHunter Win64

Соберите CLI и DLL для Win32 и Win64 по мере необходимости. Соберите обе тестовые цели перед запуском интеграционных тестов. Соберите тестовые раннеры для Win64.

Выходные файлы размещаются в bin/<Platform>/<Config>. В примерах ниже используется Debug. Модули компилятора размещаются в dcu/. Не размещайте исполняемые файлы в tools/.

Запуск сканера

Выполняйте эти команды из корня проекта. Замените 1234 на идентификатор процесса для сканирования.

.\bin\Win64\Debug\NativeMirrorScan.exe /help
.\bin\Win64\Debug\NativeMirrorScan.exe /pid 1234
.\bin\Win64\Debug\NativeMirrorScan.exe /pid 1234 /json /quiet /ofilter 2
.\bin\Win64\Debug\NativeMirrorScan.exe /pid 1234 /dir output

/ofilter 2 отключает вывод дампа. /dir output выбирает выходной каталог для отчётов и дампов. При необходимости используйте исполняемый файл Win32 в bin/Win32/Debug. Доступ к целевому процессу зависит от ваших разрешений Windows.

Использование напрямую из Delphi

Добавьте src/ и его подкаталоги модулей вместе с NativePe в путь поиска вашего проекта. Вызовите ScanAndDump с TNativeMirrorOptions. Библиотека компилируется в ваше приложение; это использование не требует ни NativeMirrorScan.exe, ни pe-sieve.dll. Python нужен только для отдельной сборки DLL и тестов на Python.

Этот консольный пример сканирует PID 1234 и выводит свой отчёт в формате JSON:

program ScanExample;

{$APPTYPE CONSOLE}

uses
  System.JSON,
  NativeMirror.Core.Types,
  NativeMirror.Core.Options,
  NativeMirror.Core.Engine;

var
  Options: TNativeMirrorOptions;
  Report: TNativeMirrorReportEx;
  Json: TJSONObject;
begin
  Options := TNativeMirrorOptions.Default;
  Options.Pid := 1234;
  Options.Quiet := True;
  Options.OutputFilter := nmOutNoDir;
  Report := ScanAndDump(Options);
  try
    Json := Report.ToJson(Options.ResultsFilter, Options.JsonLevel);
    try
      Writeln(Json.ToJSON);
    finally
      Json.Free;
    end;
  finally
    Report.Free;
  end;
end.

Замените PID на целевой. nmOutNoDir отключает файлы отчётов и дампы. Проверяйте Report.ErrorReport на ошибки сканирования, а Report.ScanReport — на результаты сканирования. Возвращённый отчёт принадлежит вызывающей стороне, и она должна освободить его.

Файлы в bin

Скачайте pe-sieve32.exe и pe-sieve64.exe из релизов PE-sieve. Существующие скрипты сравнения используют исполняемые файлы v0.4.1.1. Поместите оба в bin/Win64/Debug; тестовые скрипты Win64 ищут там свой эталонный сканер. Исполняемый файл 32 — это оригинальный эталон Win32, хотя он хранится вместе с тестовыми инструментами Win64.

Конфигурация Debug выглядит так:

bin/
  Win64/Debug/
    NativeMirrorScan.exe
    pe-sieve.dll
    pe-sieve.dll.exports.json
    pe-sieve32.exe
    pe-sieve64.exe
    NativeMirrorTestTarget.exe
    NativeMirrorScannerTests.exe
    NativeMirrorHollowsHunterTests.exe
    hollows_hunter.exe
  Win32/Debug/
    NativeMirrorScan.exe
    pe-sieve.dll
    pe-sieve.dll.exports.json
    NativeMirrorTestTarget32.exe

NativeMirror создаёт CLI, DLL, записи экспорта, цели и средства запуска тестов. Исполняемые файлы PE-sieve и HollowsHunter загружаются отдельно. HollowsHunter нужен только для его интеграционного теста или ручного использования DLL.

HollowsHunter: используйте сборку DLL

Загрузите hollows_hunter64_dll.zip, v0.4.1.1 со страницы релизов HollowsHunter. Используйте пакет DLL. При совпадающей архитектуре хоста и контракте API финальный pe-sieve.dll от NativeMirror заменяет оригинальную DLL PE-sieve, используемую HollowsHunter. Автономный статический исполняемый файл не может использовать заменяющую DLL. Прилагаемый интеграционный тест охватывает хост Win64 DLL v0.4.1.1.

Для ручного запуска скопируйте hollows_hunter.exe из пакета в bin/Win64/Debug, рядом с pe-sieve.dll, собранной NativeMirror. Не копируйте оригинальную DLL из пакета поверх DLL NativeMirror. И хост, и DLL должны быть Win64.

.\bin\Win64\Debug\hollows_hunter.exe /pid 1234 /quiet /hooks /ofilter 2 /json /report 7

Для автоматического сравнения извлеките неизменённые оригинальные EXE и DLL из того же пакета в:

tests/HollowsHunterIntegration/fixtures/Win64/pe-sieve-C/
  hollows_hunter.exe
  pe-sieve.dll
  manifest.json

Оставьте существующий manifest.json. В нём записаны ожидаемые версии и хэши SHA-256. Средство запуска проверяет эти файлы, копирует один и тот же хост в отдельные каталоги reference и NativeMirror и тестирует каждую DLL на контролируемых тестовых процессах. Оно не скачивает файлы и не перезаписывает сборку в bin.

Почему сборка DLL использует Python

PE-sieve экспортирует PESieve_version как 32-битное значение данных. Для версии 0.4.1.5 это значение равно 0x00040105. Вызывающая сторона ожидает, что адрес экспорта указывает на эти четыре байта, а не на функцию, возвращающую это число.

Компилятор/компоновщик Delphi 12, используемый в этом проекте, не экспортирует переменную напрямую через предложение exports. Поэтому DLL содержит помеченное значение версии и изначально экспортирует вспомогательную функцию под требуемым именем.

После компоновки событие после сборки проекта запускает:

py tools/NativeMirrorDll/finalize_exports.py bin/Win64/Debug/pe-sieve.dll
Скачать инструмент