В прошлый раз мы обсуждали принципы внутренней организации виртуальной машины Themida. А теперь давай закрепим полученные знания на конкретном примере — попробуем отучить просить ключ парочку популярных приложений фирмы ConceptWorld. Эти приложения представляют собой набор мелких дешевых полезняшек для работы с файлами, заметками и буфером обмена.
Лично я не совсем понимаю причину популярности этих утилит, более того, меня бесят их назойливые окошки, болтающиеся на экране и возникающие в самый неподходящий момент. Но самое раздражающее заключается в том, что на столь простые и дешевые приложения навесили столь взрослую защиту, в чем можно убедиться при помощи детектора протекторов DetectItEasy (Die). Этот странный факт мы с тобой сейчас исправим.
Приложения ConceptWorld отлично подойдут для демонстрации слабых мест защиты, которые мы с тобой изучим исключительно в академических и исследовательских целях. На всякий случай еще раз напомню, что актуальная Themida не всегда распознается автоматическим сканированием, для подстраховки необходимо подключать Nauz File Detector (NFD), который практически всегда определяет ее правильно.
Итак, начнем с программы RecentX. Ради экономии места я не буду заниматься рекламой, описывая, для чего она служит и что умеет делать (тем более, сам до конца этого не понимаю). Давай сразу перейду к сути защиты. При запуске приложения (а также после перезапуска системы, поскольку эта утилита нагло прописывается в автозагрузку), в верхней части экрана появляется пять вкладок, которые позволяют выполнять различные действия. Тулза отлично работает 30 дней, по прошествии которых превращается в тыкву: нажатие на любой элемент интерфейса приводит к появлению настырного окошка с требованием зарегистрировать программу.
В этот раз я нарушу собственные же правила и начну с описания принципа сброса триала. Если ты уже читал мои статьи, то знаешь, что для начала нам понадобится программа ProcessMonitor (ProcMon). Запускаем ее, ставим фильтр на имя процесса RecentX.
и для начала анализируем файловый ввод‑вывод этого процесса при его загрузке.
Это непросто, поскольку по своей специфике программа обращается чуть ли не ко всем файлам на жестком диске. Однако полистав список некоторое время, мы натыкаемся на последовательные обращения к файлам со странными непроизносимыми названиями в каталоге ProgramData
.
Попробуем удалить, к примеру, файл C:\
. Ничего не происходит, но при перезапуске программы он воссоздается на том же самом месте. Судя по всем признакам, это и есть файл триала.
Внимательно проанализировав лог ProcMon, мы обнаруживаем полный набор подобных файлов. Все они находятся в каталоге ProgramData
: acqrldoh.
, bgjxnlpy.
, lapoiwsc.
, uhthdans.
, vwnpbcnu.
, xmvkknpt.
и mntemp
. Причем время от времени вместо файлов acqrldoh.
и vwnpbcnu.
программа ищет другую пару — wspjaeoc.
и tvmnixvk.
. Однако даже удалив все файлы из каталога ProgramData
, удовлетворения мы не получим — программа упорно продолжает просить регистрацию.
По своему предыдущему опыту я помню, что помимо файлов, информация о триале обычно дублируется в реестре, потому начинаем рыть в этом направлении. Включаем в ProcessMonitor режим Show Registry Activity и начинаем тщательно и кропотливо изучать обращения программы к системному реестру.
Похоже, мы в беде: зацепиться не за что: все ключи реестра, к которым идет обращение, на первый взгляд, ни к "Фемиде", ни к триалу никакого отношения не имеют — программа делает что‑то связанное с сертификтами. Чтобы разрулить тупиковую ситуацию, нам явно потребуются дополнительные инструменты.
Попробуем утилиту Registry Trash Keys Finder, которая предназначена для более интеллектуальной чистки реестра. Грубо говоря, при помощи этой программы можно получить примерное представление, какие ключи в реестре не несут полезной нагрузки и каково было их изначальное предназначение. Мы не прогадали: ключ HKCU\
якобы связанный с сертификатами, оказывается напрямую связан с WinLicense. Причем рядом расположено множество подобных ключей, а мы бы на них никогда и не подумали!
Помимо этого Registry Trash Keys Finder находит в реестре множество скрытых триальных ключей от других протекторов. Внимательно пройдясь по логу обращений к реестру в шаговой доступности от этого места, кроме откровенно фемидовских ключей находим список фиктивных ключей, маркируемых программой как «Неверное имя для CLSID». Что интересно, время их создания соответствует нашему триалу:
HKCU\SOFTWARE\Classes\WOW6432Node\CLSID\{3cb0ad54-974d-16ed-d104-cd424d68} Неверное имя для CLSID
HKCU\Software\Classes\WOW6432Node\CLSID\{12da1235-be86-5767-6d92-ee730e32} Неверное имя для CLSID
HKCU\Software\Classes\WOW6432Node\CLSID\{6aa9d287-7a4e-0c97-3588-db0da93b} Неверное имя для CLSID
HKCU\SOFTWARE\Classes\CcFWSettg.Category\CLSID\{cca30008-435a-64be-eea5} WinLicense 1.x
HKCU\SOFTWARE\Microsoft\Cryptography\RNG WinLicense 1.x
HKCU\Software\Classes\CertificateAuthority.Request\CLSID WinLicense 1.x
Скачать:
Скриншоты:
Важно:
Все статьи и материал на сайте размещаются из свободных источников. Приносим свои глубочайшие извинения, если Ваша статья или материал была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.