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

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

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

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

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

Категории

Все категории
Loading categories
VehApiResolve — Разрешает Windows API во время выполнения с помощью векторных обработчиков исключений и поиска по хешам, чтобы скрывать импорты и замедлять реверс-инжиниринг атакующих нагрузок. | Kitploit
Инструменты/GitHubGitHub/rad9800/vehapiresolve
Red TeamingРазработка Полезной НагрузкиСостязательная Атака
GitHubrad9800/vehapiresolve

VehApiResolve

Разрешает Windows API во время выполнения с помощью векторных обработчиков исключений и поиска по хешам, чтобы скрывать импорты и замедлять реверс-инжиниринг атакующих нагрузок.

Репозиторий
118244 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

VehApiResolve

Вдохновлено обфускацией 32-битного API Dridex Loader.

Как это работает?

Мы устанавливаем обработчик исключений.

root@kitploit:~
AddVectoredExceptionHandler( CALL_FIRST, ApiResolverHandler );

Этот обработчик исключений будет обрабатывать только исключения, выбрасываемые как EXCEPTION_BREAKPOINT. Когда оно выбрасывается нами, мы можем захватить CONTEXT. Мы можем получить переданные аргументы. Регистры RDX и R8 будут содержать хэш нашей функции и модуля. Затем мы можем динамически разрешить их с помощью GetProcAddrExH, как показано ниже

root@kitploit:~
ExceptionInfo->ContextRecord->Rax = (ULONG_PTR)GetProcAddrExH( ExceptionInfo->ContextRecord->Rdx, ExceptionInfo->ContextRecord->R8 );

RAX часто используется для возврата значений. Когда мы возвращаемся, если адрес был разрешён, он будет возвращён.

root@kitploit:~
LazyRet proc
	int 3	; raise an exception 
	ret		; rax will hold address
LazyRet endp
  1. Вызываем исключение.
  2. Обрабатываем это исключение.
  3. Разрешаем требуемую функцию.
  4. Сохраняем её в RAX.
  5. Возвращаемся.

Затем мы можем использовать этот адрес.

Зачем?

Вероятно, это усложняет жизнь реверс-инженеру, что всегда хорошо.

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