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

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

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

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

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

Категории

Все категории
Loading categories
DotNetHookerToolkit — Инжектор .NET Framework на основе Frida и инструментарий для перехвата управляемых методов для трассировки во время выполнения, разрешения нативных точек входа и динамического анализа процессов Windows. | Kitploit
Инструменты/GitHubGitHub/sensepost/dotnethookertoolkit
Динамический анализ (песочница)Анализ КодаЭксплуатацияОбратная инженерияОтладчикиТестирование на ПроникновениеАнализ Бинарных Файлов
GitHubsensepost/dotnethookertoolkit

Популярное

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

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

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

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

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

DotNetHookerToolkit

Инжектор .NET Framework на основе Frida и инструментарий для перехвата управляемых методов для трассировки во время выполнения, разрешения нативных точек входа и динамического анализа процессов Windows.

Репозиторий
115 месяцев назадЕщё не проверено

InjectorCli + ManagedHookHostProj

Этот репозиторий содержит два проекта, которые предназначены для совместного использования:

  • InjectorCli: консольный инжектор на .NET Framework 4.8, построенный на frida-clr (Frida.dll)
  • ManagedHookHostProj: вспомогательная DLL на .NET Framework 4.8 с нативными экспортами (через 3F .NET DllExport), используемая для преобразования управляемых методов в нативные точки входа, чтобы Frida могла подключиться
  • TestTarget32: пример программы на .NET Framework 4.8 для тестирования перехвата.

Эти проекты ориентированы на Windows и предполагают, что вы инструментируете процессы, которыми владеете или имеете разрешение на тестирование.

Зачем нужны два проекта

Frida перехватывает адреса нативного кода. В .NET Framework управляемые методы JIT-компилируются в нативный код, однако:

  • Frida не предоставляет стабильного API вида «перехватить управляемый метод по имени» для .NET Framework
  • Адреса методов неизвестны до тех пор, пока JIT не скомпилирует метод

Итак, общая схема такова:

  1. Используйте InjectorCli, чтобы присоединиться/запустить цель и загрузить Frida JavaScript-агент.
  2. Внутри цели используйте ManagedHookHostProj.dll, чтобы:
    • Найти управляемый метод через рефлексию
    • Принудительно вызвать JIT-компиляцию (RuntimeHelpers.PrepareMethod)
    • Получить нативную точку входа метода (GetFunctionPointer)
  3. Вернувшись в агент, вызовите Interceptor.attach(entrypoint, ...) для трассировки вызовов/логирования аргументов / (опционально) изменения поведения.

Как они работают вместе (поток данных)

InjectorCli (C#)

  • создаёт Frida.DeviceManager и выбирает устройство
  • порождает или присоединяется к процессу
  • создаёт Frida.Script из вашего JavaScript-файла и загружает его
  • выводит сообщения от агента через script.Message

Agent (JavaScript)

  • может напрямую перехватывать обычные Win32 API (например, CreateFileW, MessageBoxW)
  • может опционально загрузить управляемую вспомогательную DLL через Module.load()
  • вызывает экспортируемые помощники (например, ResolveMethod) через NativeFunction
  • использует управляемые UTF-16 буферы (DescribeObjectUtf16 + FreeUtf16) вместо разбора строковых макетов CLR
  • может запрашивать диагностику помощника через GetLastErrorUtf16 при сбое разрешения
  • использует возвращённые адреса для установки перехватчиков

ManagedHookHostProj (C#-библиотека классов с экспортами)

  • выполняется внутри CLR целевого процесса
  • использует рефлексию для поиска нужного метода по имени (+ опционально сигнатура перегрузки)
  • принудительно запускает JIT-компиляцию и возвращает адрес нативной точки входа
  • предоставляет безопасные экспорты для чтения/записи примитивов по ссылке (ReadInt32 / WriteInt32 / WriteBool)
  • предоставляет поточную диагностику помощника (GetLastErrorUtf16, ClearLastError)

Быстрый старт (32-битная цель)

Для иллюстрации работы всех компонентов предположим, что целевой процесс скомпилирован для 32-битной архитектуры (WoW64).

1) Сборка frida-clr x86

  • Вам потребуется x86-версия Frida.dll для инжекции в x86-процесс.
  • Пример команд (из командной строки разработчика Visual Studio):
root@kitploit:~
cd C:\path\to\frida-clr
configure.bat --prefix="%CD%\dist-x86" --build=windows-x86-md

cd build

make.bat

make.bat install

Убедитесь, что у вас есть:

  • dist-x86\bin\Frida.dll (PE32)

2) Сборка InjectorCli (x86)

  • Откройте InjectorCli.sln в Visual Studio и установите конфигурацию сборки Release | x86.

  • Или из командной строки разработчика:

root@kitploit:~
msbuild \InjectorCli\InjectorCli.sln /p:Configuration=Release /p:Platform=x86
  • Если ваш Frida.dll находится не по пути dist-x86\bin\Frida.dll, обновите ссылку в InjectorCli.csproj соответствующим образом.

3) (Опционально) Сборка ManagedHookHostProj (x86)

  • Откройте ManagedHookHostProj.sln в Visual Studio и установите конфигурацию сборки Release | x86.

  • Или из командной строки разработчика:

root@kitploit:~
msbuild \ManagedHookHostProj\ManagedHookHostProj.sln /p:Configuration=Release /p:Platform=x86
  • Затем вы можете проверить экспорты, выполнив следующую команду в командной строке разработчика:
root@kitploit:~
dumpbin /exports examples\ManagedHookHostProj\bin\Release\ManagedHookHostProj.dll

Примечание: на x86 + StdCall вы можете увидеть декорированные имена экспортов (например, _ResolveMethod@16). Предоставленный скрипт агента включает запасной вариант для поиска декорированных имён.

4) Запуск: трассировка нативных вызовов (без управляемого помощника)

  • Присоединиться к существующему PID:
root@kitploit:~
FridaClrInjector.exe --pid 1234 --script hooks\hook_createfilew.js
  • Запустить приостановленным, инжектировать, возобновить:
root@kitploit:~
FridaClrInjector.exe --spawn "C:\Windows\SysWOW64\notepad.exe" --script hooks\hook_messagebox.js

5) Запуск: разрешение управляемого метода + трассировка (с использованием вспомогательной DLL)

  • Сначала отредактируйте hook_managed.js, установив:

    • helperDllPath на путь к собранной ManagedHookHostProj.dll
    • targetAssemblyPath, targetTypeName, targetMethodName, paramSig
  • Затем выполните:

root@kitploit:~
FridaClrInjector.exe --pid 1234 --script "C:\path\to\hook_managed.js"

Ограничения

  • Встраивание (inlining): маленькие методы могут быть встроены в Release-сборках, и ваш перехватчик не сработает.
  • Перегрузки: используйте paramSig для выбора правильной перегрузки, иначе вы можете перехватить не тот метод.
  • Разрядность должна совпадать: x86-цель требует x86-инжектор + x86 Frida.dll + x86 вспомогательная DLL.
  • Необработанные управляемые ссылки ненадёжны: устаревшие экспорты помощника (MakeString/Box*/DescribeObject) следует рассматривать только как совместимые.

Дополнительная документация

  • Документация инжектора:

    • README инжектора
    • Как это работает
    • Устранение неполадок
  • Документация вспомогательной DLL:

    • README вспомогательной DLL
    • Как это работает
    • Устранение неполадок
  • Документация тестового примера:

    • README TestTarget32
    • Запуск тестовых сценариев
Скачать инструмент