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.

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

Популярное

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

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

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

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

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

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-агент.
  • Внутри цели используйте ManagedHookHostProj.dll, чтобы:
    • Найти управляемый метод через рефлексию
    • Принудительно вызвать JIT-компиляцию (RuntimeHelpers.PrepareMethod)
    • Получить нативную точку входа метода (GetFunctionPointer)
  • Вернувшись в агент, вызовите 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
      • Запуск тестовых сценариев
    Скачать инструмент