Категория > Новости > Deleaker, не болей! Ломаем защиту в обход VMProtect и пишем proxy DLL - «Новости»

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


31-01-2018, 18:00. Автор: Ellington

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

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

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

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




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



Greetings


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


  • Mak;

  • VodoleY;

  • ELF_7719116;

  • Kindly

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



Процесс


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



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



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



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



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


  • x64dbg — отладчик;

  • DIE aka Detect It Easy — анализатор файлов;

  • CFF Explorer — PE-редактор;

  • MASM — компилятор.



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


  • deleakersdk32.dll;

  • deleakersdk64.dll.


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



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


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



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



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


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


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


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


Источник новостиgoogle.com
Перейти обратно к новости