Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Гайд Протектор PElock

malware
EXCLUSIVE
EXCLUSIVE
Статус
Оффлайн
Регистрация
21 Июн 2025
Сообщения
141
Реакции
35
Всем привет, решил написать свою первую статью про протектор, никогда не думал что малоизвестные протекторы могут меня так порадовать, приступим к статье:

От скуки я на просторах интернета ищу малоизвестные и редкие упаковщики и протекторы.
И хочу рассказать об одном интересном протекторе, который вызвал у меня нехилую такую улыбку - PELock.
Плюсом вообще малоизвестных протекторов является прежде всего отсутствие всяких готовых скриптов для распаковки, то есть это практически чистые и девственные протекторы, до которых никто не дотрагивался.

Конечно, как и любой другой упаковщик, его защита от отладки спокойно обходилась с помощью ScyllaHide, но дело в самом способе защиты - прежде всего, хочу отметить ну просто невероятно красивую обфускацию... Функции очень хорошо запутаны, и проходят через очень сложные ветвления.

А что меня заинтересовало больше всего - так это способ защиты импорт-таблицы, из-за этого я решил написать эту статью, и сижу сейчас с жуткой лыбой. В общем, он переводит импортированные функции в свои обёртки, которые состоят из ПРОЛОГА импортированной функции, а затем прыгают на середину импортированной функции. Это гениально...

На Tuts4You висит одно задание, основанное на этом PELock, задача которого состоит в распаковке. И дело в том, что из-за этой обёртки над импорт-таблицей, никто не может распаковать файл, решения на задаче до сих пор нет, а публикация была 2022 года.
Хотя, конечно, я уже представляю, как это решить, и это достаточно просто - нужно написать скрипт на x64dbg, который бы сконвертировал все эти обёртки в импорт-таблицу, сдампил код, и всё это собрал воедино.
Облегчает то, что протектор запускает код по его начальному базовому адресу, и сохраняет все адреса других секций. То есть, импорт-таблица находится всё по той же 402000, например. Просто там на самом деле не импорт-таблица, а куски импортированных функций с переходом на них.
Естественно, всё это ещё и генерируется динамически.

Программы, защищённые PELock с 2 килобайт возрастают до 613 килобайт, можно представить какой функционал там вложили)

Кода реально много, поэтому я долго не разбирался с тем, как реализован переход на оригинальный код, но вот такая реализация защиты импорт-таблицы меня очень сильно порадовала...
В моей программе для тестирования протектора был MessageBoxA, и чтобы определить, как PELock доходит до оригинального кода, мне надо было узнать хотя бы адрес оригинального кода и точки возврата в стеке, а поэтому надо было поставить точку останова на этой функции, и некоторое время я не понимал, почему точка останова на конце функции срабатывает, а на начале - нет.
Как раз по причине этого интереснейшего решения защиты импорт-таблицы - MessageBoxA исполнялся не с начала, а с середины.
1761078671090.png

1761078685603.png

1761078695245.png


Ссылка на протектор:
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Назад
Сверху Снизу