✔Deleaker, не болей! Ломаем защиту в обход VMProtect и пишем proxy DLL - «Новости»
Содержание статьи
Не?так давно на глаза мне попалась программа Deleaker. Софтина, из описания на сайте, предназначена для поиска в приложениях утечек памяти, GDI-ресурсов и незакрытых хендлов. А мне стало интересно, как у нее обстоят дела с защитой от взлома.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) на начало исполнения?кода этих функций.