Следующая новость
Предыдущая новость

Deleaker, не болей! Ломаем защиту в обход VMProtect и пишем proxy DLL

31.01.2018 13:35
Deleaker, не болей! Ломаем защиту в обход VMProtect и пишем proxy DLL

Содержание статьи

  • Greetings
  • Процесс
  • Инструменты, которые нам понадобятся
  • Зачем нужны две DLL’ки?
  • Движемся дальше
  • Кодинг
  • Выводы

Не так давно на глаза мне попалась программа Deleaker. Софтина, из описания на сайте, предназначена для поиска в приложениях утечек памяти, GDI-ресурсов и незакрытых хендлов. А мне стало интересно, как у нее обстоят дела с защитой от взлома.

WARNING

Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.

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

Greetings

Мои благодарности завсегдатаям форума exelab.ru:

  • Mak;
  • VodoleY;
  • ELF_7719116;
  • Kindly

и многим другим.

Процесс

Программа устанавливается в директорию C:Program Files (x86)Deleaker как standalone, хотя есть вариант интеграции Deleaker в Visual Studio в виде дополнения (.vsix). Но я не пользуюсь Visual Studio, и для меня такой способ был недоступен.

Deleaker, не болей! Ломаем защиту в обход VMProtect и пишем proxy DLL

В директорию были установлены такие файлы.

Deleaker, не болей! Ломаем защиту в обход VMProtect и пишем proxy DLL

Запускаем программу и вводим присланный ключ. Софтина обещает нам пробный период использования.

Deleaker, не болей! Ломаем защиту в обход VMProtect и пишем proxy DLL

Замечательно. ????

Инструменты, которые нам понадобятся

  • x64dbg — отладчик;
  • DIE aka Detect It Easy — анализатор файлов;
  • CFF Explorer — PE-редактор;
  • MASM — компилятор.

Итак, проверив все исполняемые файлы анализатором DIE, в директории установленной программы находим две DLL’ки, «накрытые» VMProtect:

  • deleakersdk32.dll;
  • deleakersdk64.dll.
Deleaker, не болей! Ломаем защиту в обход VMProtect и пишем proxy DLL

Я предположил, что механизм (код) лицензирования (регистрации) находится именно в них.

Зачем нужны две DLL’ки?

Забегу вперед: DLL’ки идентичны, единственное различие — одна 32-битная, другая 64-битная. Механизм лицензирования (регистрации) используется только из deleakersdk32.dll, что облегчает нашу задачу.

Далее я открыл deleakersdk32.dll в CFF Explorer и зашел в директорию Export. Там нашлись четыре экспортируемые функции с говорящими именами.

Deleaker, не болей! Ломаем защиту в обход VMProtect и пишем proxy DLL

Эти функции как раз и отвечают за лицензирование (регистрацию) программы.

Все бы хорошо, если бы файл Deleaker.exe, который, собственно, и использует в данном случае deleakersdk32.dll, не был написан на .NET, а сама DLL — на Visual C++. То есть запустить Deleaker.exe напрямую в отладчике x64dbg у нас не получится.

Но это не беда, мы просто запускаем Deleaker.exe и аттачимся к процессу x64dbg.

В окне Symbols отладчика, в левой половине находим и выделяем курсором нашу DLL. Справа мы увидим список ее импортируемых и экспортируемых функций. Нас интересуют только те, что мы обнаружили ранее в CFF Explorer. Выделяя по очереди курсором функции, нажимаем клавишу F2, тем самым устанавливая точки останова (breakpoints) на начало исполнения кода этих функций.

Продолжение статьи доступно только подписчикам

Cтатьи из последних выпусков журнала можно покупать отдельно только через два месяца после публикации. Чтобы читать эту статью, необходимо купить подписку.

Подпишись на журнал «Хакер» по выгодной цене!

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

1 год

3990 р.

Экономия 1400 рублей!

1 месяц

720 р.

25-30 статей в месяц

Уже подписан?

Источник

Последние новости