Многие, наверно, пользуются аськой. Конечно есть и другие клиенты для этой службы, кому они нравятся, кому нет
- это их дело. Но вот о выходе новой легкой версии Аси наверно слышали уже все. Это 4-я версия обладает своими особенностями, которые некоторым могут показаться лишними, а могут прийтись совсем кстати. Одной из таких изюминок является центр развлечений Xtraz. Благодаря этой
фиче можно загружать себе на компьютер маленькие игрушки, которые очень увлекают. Но они обрезаны до невозможности и подсевший на гейму юзер Аси кликает по
манящей надписи внизу окошка "Download full version". Конечно все прекрасно скачивается и инсталлируется, но при долгожданном двойном щелчке по красивому ярлычку на рабочем столе появляется то, чего геймер абсолютно не ждал, особенно наш отечественный геймер.
Игруха триальная, и мало того она работать
собирается всего час, и еще что потом
выяснилось у нее попятиминутная
тарификация. То есть ты поиграл в нее 3
минуты, а у тебя отняли пять. Это мне совсем
не понравилось, тем более что стоила она аж
19$. И я начал ломать защиту от Oberon Media.
Я скачал игрушку под названием 5 Spots. Там
надо находить пять отличий в двух разных
картинках. На ее примере я покажу как можно
заставить абсолютно все игры от этой
компании работать на вас вечно, так как
защита у них всех я думаю однотипная.
Итак, после установки, я как и все юзеры
увидел эту не очень радующую информацию и
начал думать где могут храниться данные о
проработанном времени. Конечно, первая
мысль пришедшая мне в голову это реестр. На
мое удивление в софте юзера был ключ Oberon media,
а в нем ключ под какими-то циферками и там
оказались значения оставшегося для игры
времени, сколько всего можно играть и еще
кое-какая информация. Я быстро изменил
значение параметра AvlUsage на 60 и запустил
игру. Хрен там: все так и осталось. Тогда я
изменил общее доступное время с часа на 2 и
подправил опять AvlUsage. Как я и ожидал, ничего
хорошего не произошло. Тогда я еще по
манипулировал с различными значениями в
реестре, запустил игру не из launch.exe (предлагает
купить прогу, зарегать и показывает время:
как на рисунке), а из экзешника самой геймы,
в нашем случае 5_spots.exe. Успехов это никаких
не принесло. Копаться во внутренностях этой
геморной игрушке мне не хотелось и я решил
посмотреть что она делает в реестре и к
каким файлам обращается. Для этого я
запустил две специальные тузлы о которых ты
должен был хоть раз слышать. Это regmon и filemon.
Первая мониторит обращения к реестру, а
вторая, соответственно, к файлам. При
запуске список файлов побежал как бешенный,
а реестровых записей вообще ушел в
бесконечность. Я принялся анализировать
все это. В файлах я ничего подозрительного
не нашел (как оказалось позже хреновый из
меня Шерлок Хоумс), а в реестре я увидел
пугающие обращение к версии винды и БИОСа.
Тут у меня совсем руки опустились, я в
последней надежде переустановил игру, но
время так и осталось неизменным.
Я решил на втором своей машине установить
какой нить анинсталлер и сносить ее каждый
раз при истечении срока под чистую... И тут
меня осенило (совсем старый стал, с самого
начала не мог догадаться), что если это
прокатит значит можно найти в чем там
заковырка, благо логи все анинсталлеры
сохраняют. Под рукой у меня оказалась
только WinTools.Net.
Там помимо всего прочего была тулза под
названием Clean un. Поставив ее на машину и
сделав снимок харда и реестра я запустил
инстал игры. После этого я опять сделал
снимок и ВинТулз выдала мне результат:
двадцать с чем-то изменений на харде, и
почти столько же в реестре. Я начал с дисков.
Ничего подозрительного на первый взгляд не
оказалось. Все кидалось программ филес и
был один темповый файл в профиле
пользователя. Но название мне его
показалось подозрительным (8a44841a.tmp). Я
подумал, что может при инсталляции надо, но
все-таки залез в temp. Файл этот там спокойно
себе лежал. Мне это показалось странным:
обычно проги чистят за собой. Открыв в
текстовом редакторе я увидел только
каракули. Запустил игру, потом вышел из нее
и посмотрел на этот файл. Он изменился и при
этом дату он тоже изменил но на совсем
другую нежели была в момент запуска. Все
понятно - это хитрый план буржуев, чтоб
держать под контролем время работы
программы, а дату они для маскировки
неправильную делали. Тут меня черт дернул
залезть в install.log, лежавший в папке с геймой.
И хорошо, что дернул: в логе не было и
упоминания о темповом файле. Я за компанию
осмотрел и секцию инстального лога про
реестр и сравнил его со снимком
анинсталлера. И опять обнаружил целых три
несоответствия. В снимке были эти три ключа,
а в логе их не было:
HKEY_LOCAL_MACHINE \SOFTWARE\ Licenses\{IF9472018DA10E0B8}
HKEY_LOCAL_MACHINE \SOFTWARE\ Licenses\{0F9472018DA10E0B8}
HKEY_LOCAL_MACHINE \SOFTWARE\ Classes\CLSID\{FFBDEE52-ACBB-BF9B-8EA8
-3563F6258696}\ AkwGrsPZdG
Точнее их было четыре (надеюсь ты знаешь
почему). Последний ключ вообще был с
надписью на груди "Убейте меня, я с вас
бабло снимаю". Придерживаясь логики
военных людей - сначала уничтожать, а потом
думать, я снес всю эту фигню нахрен. И о чудо,
когда я запустил игру было опять целых 60
минут. Но после нескольких мгновений
геймерского счастья обнаружилось, что
время опять стало убывать, а записи в
реестре и файл снова появились на своем
месте. Но это ведь для нас не проблема. Пишем
прогу, которая рубит это все, а потом
запускает игруху. У меня были опасения, что
странные имена файла и ссылок генерируются
на основе тех обращение к реестру о которых
я говорил в начале (версии винды и биоса). Но
после теста на трех разных машинах с
разными версиями окон это предположение
опроверглось. Для написания проги можно
использовать любой язык умеющий работать с
файлами и реестром. Я юзал Делфи. Для самых
ленивых привожу код, но без комментариев,
там и так все предельно ясно.
program Crack;
uses
Windows,
Classes,
SysUtils,
ShellAPI,
Registry;
const TmpDirLen=1024;
var Reg: TRegistry;
TempDir: array [0..TmpDirLen] of char;
PathToFile: String;
begin
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
if Reg.OpenKey('\SOFTWARE\Licenses\',false) then
if Reg.DeleteValue('{IF9472018DA10E0B8}') then
begin
Reg.DeleteValue('{0F9472018DA10E0B8}');
Reg.CloseKey;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('\SOFTWARE\Classes\CLSID\ {FFBDEE52-ACBB-BF9B-8EA8-3563F6258696}\ ',false);
Reg.DeleteValue('AkwGrsPZdG');
end
else MessageBox(0, 'Can not edit registry or olredy correct!', 'ERROR',MB_ICONERROR)
else MessageBox(0, 'Can not edit registry!','ERROR', MB_ICONERROR);
Reg.Destroy;
SetString(PathToFile,TempDir, GetTempPath(TmpDirLen-1,TempDir));
if not DeleteFile(PathToFile+'8a44841a.tmp') then
MessageBox(0,'Can not delet file in the temp directory or olredy deleted!','ERROR',MB_ICONERROR);
ShellExecute(0,'open',PChar('launch.exe'),nil,nil,SW_SHOWNORMAL);
end.
Вот так обычный юзер может поломать любую
игрушку от Oberon Media имея из дополнительного
софта лишь анинсталлер.
ВСЕ ВЫШЕ ИЗЛОЖЕННОЕ ПРЕДЛАГАЕТСЯ ЛИШЬ В
ОЗНАКОМИТЕЛЬНЫХ ЦЕЛЯХ, ДЛЯ ТОГО ЧТОБЫ
УКАЗАТЬ ВОЗМОЖНЫЕ НЕДОРАБОТКИ В ЗАЩИТЕ
ПРОГРАММ. АВТОР НИКАКОЙ ОТВЕТСТВЕННОСТИ ЗА
ИСПОЛЬЗОВАНИЕ ДАННОГО МАТЕРИАЛА НЕ НЕСЕТ.