Гайд [Reverse-Engineering] Контрим LazyImport x64

PUPUE
Разработчик
Разработчик
Статус
Оффлайн
Регистрация
18 Мар 2020
Сообщения
472
Реакции
988
Весенний шалом.

ПРЕДИСЛОВИЕ
Я часто стал замечать, что многие абузят LazyImport, и вот на днях пока я готовил новую статью для Вас мне попалась эта либа, но т.к. она контриться очень легко, я решил запилить мини-статью с простым обходом, а основная статья выйдет через некоторое время :)

Контрим LazyImport
Как я понял в проге, которую я реверсил решили дать шанс LazyImport и накрыть некоторые вызовы виртой, нежели протектору, но проблема либы в том, что она очень сильно палится в рантайме.
LazyImport всегда стучится в PEB, в дизассемблере это одна инструкция

Код:
Expand Collapse Copy
mov rax, qword ptr gs:[0x0000000000000030]

Где gs:[0x30] - адрес PEB

Вот пример, где лоадеру надо вызвать GetSystemDirectoryA

1647758493061.png


После некоторых манипулияции с хэшом либа вызывает импорт через call rax

1647758548845.png


Как я и написал сверху - LazyImport всегда вызывает PEB, поэтому ничего нам не мешает составить паттерн для нахождения всех WinAPI-вызовов
Сам паттерн: 65 48 8B 04 25 30 00 00 00
Можете юзать такую фишку везде, где используется LazyImport, только для х32 вам надо по новому составить паттерн, так как байткод будет совсем другой

С помощью моего паттерна я нашел 16 инструкции ( считая тот, который мы уже в ручную нашли ).

Вот сам список с вызовами:

1647758595179.png


Не всегда видно название импорта, поэтому ставьте бряк на call rax, чтобы глянуть адрес в регистре, в х32 это возможно call eax, я не проверял :)

Вот такой вот простенький обход LazyImport, долго думал делать для нее отдельную статью или засунуть в мою следующую статью. Ждите моей следующей статьи, она выйдет очень скоро!
Подписывайтесь на блог моей команды:
Пожалуйста, авторизуйтесь для просмотра ссылки.

 
Последнее редактирование:
Интересненькая такая статья.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
норм , только не понятно как составлять патерн
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Все понял, только не понял как он вызывает через call eax? Там же нет адреса
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу