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

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

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

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

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

Категории

Все категории
Loading categories
unidbg — Позволяет эмулировать нативную библиотеку Android, а также экспериментальную эмуляцию iOS. | Kitploit
Инструменты/GitHubGitHub/zhkl0228/unidbg
Безопасность AndroidДинамический анализ (песочница)Безопасность iOSОбратная инженерияОтладчикиАнализ Бинарных ФайловОбучение и ОбразованиеОбратная Разработка с Помощью ИИ
GitHubzhkl0228/unidbg

unidbg

Позволяет эмулировать нативную библиотеку Android, а также экспериментальную эмуляцию iOS.

Репозиторий
5.1k1.2k8214 дней назадПроверено Kitploit

Популярное

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

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

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

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

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

unidbg

Позволяет эмулировать нативную библиотеку Android, а также экспериментальную эмуляцию iOS.

Это образовательный проект, чтобы узнать больше о форматах файлов ELF/MachO и ассемблере ARM.

Используйте его на свой страх и риск!

Возможности

  • Поддержка MCP (Model Context Protocol) для отладки с помощью ИИ в Cursor и других ИИ-инструментах.
  • Эмуляция JNI Invocation API, чтобы можно было вызывать JNI_OnLoad.
  • Поддержка JavaVM, JNIEnv.
  • Эмуляция инструкций syscalls.
  • Поддержка ARM32 и ARM64.
  • Inline-хуки благодаря Dobby.
  • Хуки импортов Android благодаря xHook.
  • iOS fishhook, substrate и whale хуки.
  • Бэкенд unicorn с поддержкой простого консольного отладчика, gdb stub, трассировки инструкций, трассировки чтения/записи памяти.
  • Поддержка iOS objc и swift runtime.
  • Поддержка быстрого бэкенда dynarmic.
  • Поддержка гипервизора Apple M1 — самый быстрый ARM64-бэкенд.
  • Поддержка Linux KVM бэкенда с Raspberry Pi B4.
  • Обнаружение утечек памяти для эмулируемого нативного кода с гостевой трассировкой стека и трассировкой стека хоста.

MCP-отладчик (интеграция с ИИ)

unidbg поддерживает Model Context Protocol (MCP) для отладки с помощью ИИ. Когда отладчик активен, введите mcp в консоли, чтобы запустить MCP-сервер, к которому могут подключаться ИИ-инструменты (например, Cursor).

Быстрый старт

unidbg MCP имеет два режима работы:

Режим 1: Отладка по точкам останова — Подключите отладчик и запустите свой код. При срабатывании точки останова Breaker.debug() приостанавливает эмулятор — введите mcp в консоли, чтобы запустить MCP-сервер и позволить ИИ помочь с анализом. Доступны все инструменты отладки (регистры, память, дизассемблирование, выполнение по шагам, трассировка и т.д.). После возобновления выполнения при следующей точке останова отладчик снова остановится. Когда выполнение завершится без срабатывания точек останова, процесс завершится и MCP остановится.

Debugger debugger = emulator.attach();
debugger.addBreakPoint(address);
// run your emulation logic — debugger pauses when breakpoint is hit

Режим 2: Пользовательские инструменты (повторяемые) — Используйте McpToolkit для регистрации пользовательских инструментов и позвольте ИИ повторно запускать целевые функции с разными параметрами. Нативная библиотека загружается один раз; после каждого выполнения процесс остаётся активным, и MCP остаётся доступным для следующего запуска.

McpToolkit toolkit = new McpToolkit();
toolkit.addTool(new McpTool() {
    @Override public String name() { return "encrypt"; }
    @Override public String description() { return "Run encryption"; }
    @Override public String[] paramNames() { return new String[]{"input"}; }
    @Override public void execute(String[] params) {
        String input = params.length > 0 ? params[0] : "default";
        // call encryption with input
    }
});
toolkit.run(emulator.attach());

Когда отладчик останавливается, введите mcp (или mcp 9239, чтобы указать порт) в консоли. Затем добавьте в настройки MCP в Cursor:

{
  "mcpServers": {
    "unidbg-mcp-server": {
      "url": "http://localhost:9239/sse"
    }
  }
}

Доступные MCP-инструменты

Статус и информация

ИнструментОписание
check_connectionСтатус эмулятора: семейство, архитектура, возможности бэкенда, isRunning, загруженные модули
list_modules / get_module_infoПеречислить загруженные модули, получить подробную информацию, включая количество экспортируемых символов и зависимости
list_exportsПеречислить экспортируемые/динамические символы модуля с опциональным фильтром и деманглингом C++
find_symbolНайти символ по имени или ближайший символ по адресу
get_threadsПеречислить все потоки/задачи в эмуляторе

Регистры и дизассемблирование

ИнструментОписание
get_registers / get_register / set_registerЧтение/запись регистров ЦП
disassembleДизассемблировать инструкции по адресу (адреса переходов автоматически аннотируются именами символов)
assembleАссемблировать текст инструкции в машинный код
get_callstackПолучить текущий стек вызовов (backtrace)

Память

ИнструментОписание
read_memory / write_memoryЧтение/запись сырых байтов памяти
read_string / read_std_stringЧтение C-строки или C++ std::string (с определением SSO)
read_pointerЧтение цепочки указателей с разрешением символов
read_typedЧтение памяти как типизированных значений (int8–int64, float, double, pointer)
search_memoryПоиск байтовых паттернов в памяти с фильтрами по области/правам доступа
list_memory_mapПеречислить все отображения памяти с правами доступа
allocate_memory / free_memory / list_allocationsВыделение (malloc/mmap) с опциональными начальными данными, освобождение и отслеживание блоков памяти
patchЗаписать ассемблированные инструкции в память

Точки останова и выполнение

ИнструментОписание
add_breakpoint / add_breakpoint_by_symbol / add_breakpoint_by_offsetДобавить точки останова по адресу, символу или модуль+смещение
remove_breakpoint / list_breakpointsУдалить или перечислить точки останова (с дизассемблированием)
continue_executionВозобновить выполнение. Используйте poll_events для ожидания breakpoint_hit или execution_completed
step_over / step_into / step_outШаг с обходом, шаг с заходом (на N инструкций), шаг из функции
next_blockОстановиться на следующем базовом блоке (только Unicorn)
step_until_mnemonicОстановиться на следующей инструкции, соответствующей мнемонике, например bl, ret (только Unicorn)
poll_eventsОпрашивать события breakpoint_hit, execution_completed, trace

Трассировка

ИнструментОписание
trace_codeТрассировать инструкции со значениями чтения/записи регистров (regs_read, prev_write)
trace_read / trace_writeТрассировать чтение/запись памяти в диапазоне адресов

Вызовы функций

ИнструментОписание
call_functionВызвать нативную функцию по адресу с типизированными аргументами (hex, string, bytes, null). Возвращает значение с разрешением символов и предпросмотром памяти
call_symbolВызвать экспортируемую функцию по модулю + имени символа, например libc.so + malloc

Только iOS (доступно, когда Family=iOS)

ИнструментОписание
inspect_objc_msgПроверить вызов objc_msgSend: показать имя класса получателя и селектор, например -[NSString length]
get_objc_class_nameПолучить имя класса ObjC объекта по заданному адресу (только разбор памяти, без изменения состояния)
dump_objc_classДамп определения класса ObjC (свойства, методы, протоколы, ivars)
dump_gpb_protobufДамп схемы сообщения GPB protobuf в формате .proto (только 64-бит)

Пользовательские MCP-инструменты

Используйте McpToolkit для регистрации пользовательских инструментов, каждый из которых реализует интерфейс McpTool. Это заменяет ручную диспетчеризацию if-else чистыми самодостаточными классами инструментов. К этому моменту нативная библиотека полностью загружена (JNI_OnLoad / точка входа уже выполнены), поэтому код внутри execute() каждого инструмента — это логика целевой функции для анализа. ИИ может устанавливать точки останова и трассировки перед запуском пользовательского инструмента, а затем проверять результаты выполнения с разными входными данными без перезапуска процесса.

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