LIMB
Вход Регистрация

тема

Обзор на малоизвестный протектор Alienyze Protector v1.4

external · · 0 ответов · 676 просмотров

На просторах интернета я случайно наткнулся на малоизвестный и очень интересный протектор под названием Alienyze Protector v1.4 (официальный сайт), который продавался за 49$, описание было очень интересным, но малоговорящим:

  • Anti-Debugger techniques that detect and fool present debuggers
  • Anti-VM techniques that detect sandbox & virtualized environments
  • Protection from disassemblers and software analysis tools
  • Hardware ID locking for making applications machine dependant
  • Integrity checks that detect code patching & tampering
  • Customizable compression and encryption of the applications code
  • Real time protection in running application
  • Project configuration settings Load, Save support
  • Multilingual user interface, language selection support
  • Command line support
  • And many more

Не удалось прогрузить медиа

Превью
Я скачал демо-версию, чтобы посмотреть, что он из себя представляет. В описании не написано, но я скажу, что в демо-версии скорее всего присутствуют полноценные функции "Anti-Debugger", "Anti-VM", "Protection from disassemblers and software analysis tools", "Integrity checks that detect code patching & tampering" и "Real time protection in running application", то есть все самые важные нам функции, которые нужны для обзора протектора.


Скачав демо-версию протектора, перед глазами появился достаточно обычный но приятный интерфейс:

Не удалось прогрузить медиа

Интерфейс протектора
Доступный функционал следующий:

Не удалось прогрузить медиа

Функционал протектора

Написав тестовый код на FASM и собрав его:

Code:
format    PE GUI
entry    start
include    'win32a.inc'

section    '.text' code readable executable
    start:
        push    0
        push    0
        push    0
        push    0
        call    dword[MessageBox]

        push    0
        call    dword[ExitProcess]

section    '.idata' import readable writeable
    library    kernel, 'kernel32.dll',\
        user, 'user32.dll'

    import    kernel,\
        ExitProcess, 'ExitProcess'

    import    user,\
        MessageBox, 'MessageBoxA'

section    '.relocs' readable writeable fixups

... я сразу же столкнулся с проблемой. Alienyze не понимает программы, собранные на FASM, и просто ломается без каких-либо ошибок или сообщений, просто падает. Грустно. Видать, кривой PE-парсер.

Что-ж, пришлось взять для теста готовую программу, написанную на C/C++. С ней "пришелец" справился.

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


Потыкав в отладчике сгенерированную программу, огорчило то, что в ней слишком мало кода... В том смысле, что Alienyze недостаточно хорошо морфит код. Конечно, странно ожидать от него какой-то мощной виртуальной машины, как у Themida или VMProtect, но всё же... Кода слишком мало, и он завязан на паре циклов, в которых идёт расшифровка кода, а затем задержки с постоянными проверками на наличие отладчика.

Не удалось прогрузить медиа

"Маловато, понимаешь... Маловато будет!"
Я не слишком силён в криптографии, поэтому даже не буду пытаться сказать, какое шифрование выбрано за основу, но вроде с этим там всё прилично.

А вот что снова расстроило - так это снова отсутствие каких-либо морферов на оригинальный код. Оригинальный код просто берёт, и расшифровывается прямо по адресу 0x401000, да-да! А после чего запускается в потоке. Причём увидеть и сдампить код очень просто, но об этом чуть позже...

Стоит сказать и немного хорошего про данный протектор.

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

Подключиться к программе тоже невозможно, все эти проверки работают в цикле, и при подключении отладчиком или CheatEngine - программа немедленно закрывалась.

Проверки хеш-суммы и на всякие патчи также присутсвуют. При попытке изменить имя секции - программа выдавала сообщение "This application is corrupted and cannot be run".

Также протектор скрывает импорт-таблицу. Все импорты подгружаются динамически с помощью функций LoadLibrary+GetProcAddress, и адресуются функции через EBP, почти как у меня в шеллкодах.

Не удалось прогрузить медиа

Без импортов, добавлена секция ".alien".
Также данного протектора нет в сигнатурах анализаторов файлов. Например, DetectItEasy не смог определить протектор, и выдал лишь информацию о линковщике:

Медиа заблокировано
Этот домен не входит в список разрешённых для медиа.
Формат: изображения / GIFДомен: img1.teletype.in
Разрешённые домены
  • imgur.com
  • ru.imgbb.com
  • prnt.sc
  • imgbb.com
  • ibb.co
  • i.imgur.com
  • i.ibb.co
  • darklimb.vip
  • i.pinimg.com
  • img3.teletype.in
  • img4.teletype.in
  • teletype.in
  • pikabu.ru
  • cs15.pikabu.ru
  • img2.teletype.in
  • lh7-rt.googleusercontent.com
  • duty-files.cc
  • blogger.googleusercontent.com

Протектор не определён с помощью DetectItEasy
По поводу веса также положительно - вес с 9 килобайт увеличивается всего на 12.44 килобайт с учётом включённой функции сжатия внутри протектора на установке "Medium". Возможно, в платной версии можно сжимать ещё больше.

Присутствует в протекторе и защита на запуск внутри виртуальной среды. Она реализована с помощью cpuid:

Медиа заблокировано
Этот домен не входит в список разрешённых для медиа.
Формат: изображения / GIFДомен: img1.teletype.in
Разрешённые домены
  • imgur.com
  • ru.imgbb.com
  • prnt.sc
  • imgbb.com
  • ibb.co
  • i.imgur.com
  • i.ibb.co
  • darklimb.vip
  • i.pinimg.com
  • img3.teletype.in
  • img4.teletype.in
  • teletype.in
  • pikabu.ru
  • cs15.pikabu.ru
  • img2.teletype.in
  • lh7-rt.googleusercontent.com
  • duty-files.cc
  • blogger.googleusercontent.com
Медиа заблокировано
Этот домен не входит в список разрешённых для медиа.
Формат: изображения / GIFДомен: img1.teletype.in
Разрешённые домены
  • imgur.com
  • ru.imgbb.com
  • prnt.sc
  • imgbb.com
  • ibb.co
  • i.imgur.com
  • i.ibb.co
  • darklimb.vip
  • i.pinimg.com
  • img3.teletype.in
  • img4.teletype.in
  • teletype.in
  • pikabu.ru
  • cs15.pikabu.ru
  • img2.teletype.in
  • lh7-rt.googleusercontent.com
  • duty-files.cc
  • blogger.googleusercontent.com

При обнаружении виртуальной среды выдаёт сообщение - "Sorry, this application cannot run under this environment".

Обнаружение отладчика реализовано как в памяти, так и при подключении к процессу, один из методов - с помощью NtQueryObject, но до конца я это не разбирал.


А теперь то, с чего я и затеял эту статью - написать инструкцию по отладке программ, защищённых Alienyze Protector.

Дело в том, что в интернете нет вообще статей на подобную тему, протектор, возможно, в глаза никто не видел, а поэтому я буду тут первооткрывателем. Несмотря на свою простоту, он может всё же может быть где-то использован, а поэтому обязательно кто-то должен написать инструкцию по его отладке.

Итак, нам понадобится:

  1. x64dbg
  2. ScyllaHide
Закидываем программу в отладчик, и активируем ScyllaHide на профиле "VMProtect x86/x64".

Нажимаем CTRL+G, и пишем NtCreateThreadEx - с помощью данной функции протектор запускает поток на оригинальный расшифрованный код. Ставим точку останова на данной функции.

Готово. Запускаем исполнение, и ловим программу на исполнении функции NtCreateThreadEx, вот и финиш - оригинальный код находится в регистре ECX. Нажимаем CTRL+G, пишем ecx, и оригинальный код прямо перед Вами.

Вот такой вот интересный протектор.
👍30 👏6 🤔6 😢4 💯4

Гостевой просмотр. Чтобы отвечать и ставить реакции, войдите или зарегистрируйтесь.