Многие, наверно, пользуются аськой. Конечно есть и другие клиенты для этой службы, кому они нравятся, кому нет - это их дело. Но вот о выходе новой легкой версии Аси наверно слышали уже все. Это 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, лежавший в папке с геймой. И хорошо, что дернул: в логе не было и упоминания о темповом файле. Я за компанию осмотрел и секцию инстального лога про реестр и сравнил его со снимком анинсталлера. И опять обнаружил целых три несоответствия. В снимке были эти три ключа, а в логе их не было:

Code
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 минут. Но после нескольких мгновений геймерского счастья обнаружилось, что время опять стало убывать, а записи в реестре и файл снова появились на своем месте. Но это ведь для нас не проблема. Пишем прогу, которая рубит это все, а потом запускает игруху. У меня были опасения, что странные имена файла и ссылок генерируются на основе тех обращение к реестру о которых я говорил в начале (версии винды и биоса). Но после теста на трех разных машинах с разными версиями окон это предположение опроверглось. Для написания проги можно использовать любой язык умеющий работать с файлами и реестром. Я юзал Делфи. Для самых ленивых привожу код, но без комментариев, там и так все предельно ясно.

Code
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.


Источник: Хакер