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

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

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

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

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

Категории

Все категории
Loading categories
KeyPatchX — KeyPatch Enhanced — плагин для IDA Pro для символо-ориентированного патчинга ассемблера x86/x64 на базе Keystone Engine. Форк Keypatch с автоматическим разрешением символов IDA, RIP-относительным кодированием и исправлением имён _↔. | Kitploit
Инструменты/GitHubGitHub/gmh5225/keypatchx
Статический анализЭксплуатацияОбратная инженерияОтладчикиУтилиты и фреймворкиАнализ Бинарных ФайловЭксплуатация Бинарных Файлов
GitHubgmh5225/keypatchx

KeyPatchX

KeyPatch Enhanced — плагин для IDA Pro для символо-ориентированного патчинга ассемблера x86/x64 на базе Keystone Engine. Форк Keypatch с автоматическим разрешением символов IDA, RIP-относительным кодированием и исправлением имён _↔.

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

Популярное

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

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

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

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

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

KeyPatch Enhanced — плагин ассемблера с поддержкой символов для IDA Pro

Улучшенная ветка на основе Keypatch (от Nguyen Anh Quynh & Thanh Nguyen), модифицированная Euarno.

Ключевое улучшение: прямое использование имён символов IDA в ассемблере x86/x64 — плагин автоматически разрешает адреса и генерирует корректную RIP-relative / rel32-кодировку.


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

1. Ассемблирование с прямым использованием имён символов

В диалоговом окне Keypatch можно напрямую вводить инструкции с именами символов, без ручного вычисления адресов и смещений:

call rc4_crypt          ; автоматический расчёт относительного смещения rel32
jmp  main               ; аналогично
lea  rcx, enc_0         ; x64: автоматически генерируется lea rcx, [rip + disp32]
lea  rax, Format         ; аналогично

2. Автоматическая коррекция имён IDA (_ ↔ .)

IDA иногда отображает . из базы данных как _ (например, enc.0 отображается как enc_0). Плагин автоматически пытается найти вариант с заменой _ → ., так что о внутреннем формате хранения IDA можно не беспокоиться.

3. Поддерживаемые типы инструкций

ТипПримерОбработка
CALL / JMP / Jcccall func_nameСимвол → абсолютный адрес, Keystone вычисляет rel32
LEA (голый символ)lea rcx, symbolx64: → lea rcx, [rip + disp32]
x86: → lea ecx, [addr]
LEA (составной операнд)lea rcx, [rbp+0x120+Str]Заменяется только символ на значение адреса, структура выражения сохраняется
MOV offsetmov rax, offset symbolx64: преобразуется в lea rax, [rip + disp32]
при выходе за диапазон используется mov rax, imm64
Обращение к памяти [symbol]mov rax, qword ptr [symbol][symbol] → [0xADDR], Keystone кодирует автоматически
Символ-непосредственное значениеpush symbolСимвол → 0xADDR

4. Улучшенные сообщения об ошибках

При неудачном ассемблировании в окне вывода отображается:

Keypatch: Keystone error: Invalid operand (KS_ERR_ASM_INVALIDOPERAND)
Keypatch:   input asm  : lea rcx, [rip + 0x176E3]
Keypatch:   fixed asm  : LEA RCX, [RIP + 0x176E3]
Keypatch:   address    : 0x140001966

Установка

Предварительные зависимости

  • IDA Pro 7.0+
  • Python-биндинги Keystone Engine
pip install keystone-engine

Установка плагина

Скопируйте keypatch.py в каталог плагинов IDA:

СистемаПуть
Windows%APPDATA%\Hex-Rays\IDA Pro\plugins\ или <каталог установки IDA>\plugins\
macOS~/.idapro/plugins/ или <каталог установки IDA>/plugins/
Linux~/.idapro/plugins/ или <каталог установки IDA>/plugins/

Перезапустите IDA.


Использование

Открытие Patcher

  • Меню: Edit → Keypatch → Patcher
  • Горячая клавиша: Ctrl + Alt + K
  • Контекстное меню: Keypatch → Patcher

Базовый рабочий процесс

  1. В окне дизассемблера IDA установите курсор на целевой адрес
  2. Нажмите Ctrl + Alt + K, чтобы открыть Patcher
  3. В поле Assembly введите инструкцию (можно использовать имена символов IDA)
  4. Проверьте поле Encoding, чтобы убедиться в корректности кодировки
  5. Нажмите Patch, чтобы применить изменения

Пример: перехват вызова функции

Предположим, вы хотите пропатчить по адресу 0x140001966 переход на rc4_crypt:

Assembly: call rc4_crypt

Плагин автоматически разрешает адрес rc4_crypt, вычисляет смещение rel32 и генерирует корректную кодировку E8 xx xx xx xx.

Пример: загрузка адреса данных

Assembly: lea rcx, enc_0

Плагин автоматически:

  1. Разрешает enc_0 (внутреннее имя может быть enc.0) → адрес 0x140013050
  2. Вычисляет RIP-relative смещение disp32 = 0x140013050 - (0x140001966 + 7)
  3. Генерирует lea rcx, [rip + 0x176E3]
  4. Передаёт в Keystone для кодирования в машинный код

Заполнение диапазона (Fill Range)

  1. В окне дизассемблера выделите диапазон адресов
  2. Нажмите Ctrl + Alt + K, чтобы открыть Fill Range
  3. Введите инструкцию (например, nop) — весь диапазон будет заполнен автоматически

Отмена

  • Меню: Edit → Keypatch → Undo last patching

Примечания

  • Ограничение диапазона RIP-relative: диапазон RIP-relative адресации для lea и [symbol] составляет ±2 ГБ. Если символ выходит за пределы диапазона, плагин выдаст ошибку.
  • Ограничение непосредственных значений в x64: для push symbol в x64 адрес символа должен быть ≤ 0x7FFFFFFF (знаковое расширение imm32), иначе будет предупреждение. Рекомендуется использовать lea reg, symbol + push reg.
  • Несколько инструкций через точку с запятой: разрешение символов в форме lea rcx, sym; call func пока не поддерживается. Патчите по одной инструкции.

Оригинальный проект

  • Авторы оригинала: Nguyen Anh Quynh (@aquynh) & Thanh Nguyen
  • Оригинальный проект: keystone-engine/keypatch
  • Оригинальная лицензия: GPL v2
  • Домашняя страница проекта: http://keystone-engine.org/keypatch
  • Keystone Engine: http://www.keystone-engine.org

Автор модификаций

  • Euarno — функция автоматического разрешения символов IDA, коррекция имён _ ↔ ., поддержка RIP-relative кодировки в x64, улучшенный вывод ошибок

Лицензия

Данная модифицированная версия распространяется под лицензией MIT. Подробности см. в файле LICENSE.

Авторские права на оригинальный код Keypatch принадлежат авторам оригинала; он распространяется под GPL v2.

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