Logo SNC Несколько примеров триал защит
 
О себе
Словами
Фото!
 
 Программирование 
 Visual Basic
 Download
Trial Ware?
 
Примеры триала
 Kleptomania 2.4
 PE Explorer 1.95
 CPU Idle 6.0
 Anjelica 4.x
 PE Compact 1.84
 Adv. Direct Remailer
 WEBaby Screen Savers
 ClipMate 5.x
 Steganos Security Suite
 ACProtect
 
Plus
 Справка по RegMon
 Справка по FileMon
 
 
 
 
 
 

Яндекс цитирования

Рейтинг@Mail.ru

  Мне в один прекрасный момент (да будь он проклят!) показалось, что все то, что я накрапал в заметке о поиске и снятии Trial защит, будет слишком голословным, если не привести какие-нибудь конкретные примеры. Это именно примеры, а не методические указания. Я думаю, что если Вы прочтете и попробуете описанное здесь, то у Вас появится понятие и о методах. Конечно, я не смогу здесь разместить лог-файлы, полученные при мониторинге программ, целиком, я буду просто упоминать их содержимое, чтобы было ясно откуда что берется. Оговорюсь, что выбор программ для примеров был абсолютно непредвзятым. Чаще всего это те программы, что мне 'заказали' недавно в письмах (уже пора деньжата брать за такую услугу :) пользователи моей утилитки Registry Trash Keys Finder, возмущенные тем фактом, что она с упомянутыми программами не справилась.

  Имейте ввиду, что к тому моменту, когда Вы все это читаете, уже вполне могли выйти в свет новые версии описанных программ, и, как возможное следствие этого, мог измениться механизи их триальной защиты. В таком случае Вам самим предоставляется почетное право выяснения сути всех произошедших изменений :).

Kleptomania 2.4. Взять можно вот здеся. Программка очень оригинальная: работая по технологиям OCR, позволяет снять с экрана любой текст, или, например, послать e-mail по адресу, который где-нибудь просто нарисован! Работает 21 день почти полноценно, только вот к тексту иногда рекламу свою добавляет, но это не страшно: 'Delete' еще не отменили. Решил испробовать на ней FireLog. Пользоваться программой очень просто: она сделана в виде мастера, просто отвечаешь на ее вопросы и двигаешься дальше. После завершения установки Kleptomania, Fire Log уже подготовила полный отчет, и в нем вот такое:

Если учесть то, что файлы win.ini и system.ini сейчас используют только древние программы и иногда сама система, будем считать эти записи очень подозрительными, тем более, что у программы есть свой собственный ini-файл. Пробуем на работоспособность через 30 дней — не работает. Открываем в Блокноте или MSConfig эти файлы и удаляем то, что было добавлено. Пробуем запустить Kleptomania. Wow!!! Говорит: попробуйте-ка меня 21 день и работает опять! Из любопытства заглянем в те файлы, что лечили только что. А там всё опять на месте, только цифры поменялись, что, кстати, и подтверждает предположение, что это были триальные записи. Менять эти цифры самому бессмысленно: шифровано-перешифровано все (кстати редактировать сам файл программы тоже не удается, где-то есть проверка контрольной суммы). Но вот что интересно: если системные часы перевести даже далеко назад, программа продолжает работать. Ну и дура. Теперь после удаления ключей из ini-файлов крутанем часы на годик вперед, а уж потом запустим нашего пациента. Почти уверен, что работать он будет не меньше года. Поживем - увидим...
[В начало]

PE Explorer 1.95.  Эта программа предназначена для просмотра и редактирования PE файлов (включая их дизассемблирование), есть еще неплохой блок работы с ресурсами. Программа современная и с оригинальным дизайном. Из необычных функций - мастер включения поддержки XP стилей в программы, которые пока эти стили не поддерживают и разборка форм Delphi по компонентам. Образчик несколько продвинутой триал-защиты, не использующей реестр. Так как продлить время жизни этой программы я решил уже после того, как она отработала свой срок (30 дней), пришлось прибегнуть к услугам FileMon'а. Сразу же заметны обращения к файлу Win.ini. Открываем и смотрим: ну просто бесстыдство какое-то: там открытым текстом написано

[PE EXPLORER]
Vector1=FFF4D841FFF4D841FFFEFFAE4C28497C

Ясное дело, что это зашифрованная дата (и дальнейшие опыты подтвердят это). Смотрим дальше: обращение к файлу C:\WINDOWS\SYSTEM\pexmodes.dat. Заглянув ему в нутро видим строку FFF4D841FFF4D841FFFEFFAE4C28497C. Ура! Удаляем этот файл, удаляем те строки из Win.ini, запускаем PE Explorer... и он опять не работает :((. Кстати запись эта и файл восстановились тоже. Получается, что где-то еще есть резервная метка. Присмотревшись далее к логу FileMon'а спотыкаемся на обращении к файлу "C:\Мои документы\desktop.ini". Файл этот скрытый и должен использоваться Проводником для индивидуальной настройки вида папки. Ну-ка посмотрим-ка чего там такое... Так вот же оно:

[PE EXPLORER]
Vector2=FFF4D867FFF4D841FFFEFFAE96D321EF

Теперь уберем все три заначки. То та жа. Таперича работает :). А куда она денется... Между прочим у PE Explorer'a есть младший брат Resource Tuner 1.9x, содержащий только функции редактора ресурсов. Так вот этот братан полностью перенял схему триал защиты у старшого. Только секции у него называются [RESTUNER], а левый файл в системной папке - resmodes.dat. Мне кажется, что все-таки можно было и соригинальничать немного :).

Замечание Хотел я привести Вам способы автоматизации оживления вышеописанных программ, но к собственному удивлению, обнаружил полное отсутствие средств работы с INI-файлами в VBS/JScript. Возможно это связано с тем фактом, что MS на каждом шагу напоминает, что INI-файлы - это наследие прошлого и их функции полностью заменил Реестр Windows (как видите, опять выдают желаемое за действительное :). Короче говоря, слепил я тут одну суперпростую ActiveX DLL-ку. В ней пока только пара методов, но которые можно вызвать из обычных VBS или JS файлов. В архиве есть инструкции по установке и скрипты для описанных программ. Наверное, можно будет эту байду и для других случаев использовать.
[В начало]

CPU Idle 6.0. Вроде бы неплохая программа для охлаждения процессора, даже всемирно известная, но вот защита... Работает тридцать дней, потом говорит 'ВСЕ, ПОКУПАЙ', но если переустановить её, сразу успокаивается и снова дает месяц побаловать с ней. Так можно делать до бесконечности. Сразу ясно, что здесь используется для отметки времени один из тех файлов, которые копируются на диск при установке. Методом проб и ошибок (с первого раза :) находим, что если сменить дату файла cpuidle.exe на, к примеру, годом позже, то после запуска (уже успешного, без ругани) на вкладке про регистрацию покажется надпись вроде 'Осталось 365 дней пробного использования'. Ну как, Вам достаточно? Мало - прибавьте еще больше к дате файла. Одно ограничение осталось: не удается выключить показ SplashScreen'а при загрузке программы (ограничение триальной версии). И тут тоже просто: программа только блокирует возможность переключить эту опцию, но, как оказалось, все равно прочитывает ее значение из реестра. Тогда мы найденное в реестре с помощью RegMon значение HKCU\Software\CpuIdle\ SplashScreen=00000001 меняем на SplashScreen=00000000 и все, сплешскрин весь вышел. Все бы программы так защищались...

Неожиданно часто у меня спрашивали, а как, собственно, изменить дату файла. Это элементарно просто, когда у Вас под рукой есть файловый менеджер типа Total Commander или, скажем, FAR. Эта функция обычно называется Изменить Атрибуты Файла. Сложнее, если у Вас нету программы такого рода. Могу предложить как минимум два решения: первый - скачать мою специально сделанную малюсенькую программку, а вот второй - (моё Know How) гораздо прикольнее. Идея его такая: файл нужно прикрепить к письму, удалить оригинал файла с диска, сменить системное время на компьютере на нужное Вам и только тогда извлечь файл из письма, поместив его на место оригинала. И не забудьте сразу же время восстановить на нормальное.

Замечание. Некоторые системные утилиты, вроде Scandisk или Norton Disk Doctor, считают, что дата старше текущей - ошибочная и норовят ее сменить на дату проверки. Ну что ты с ними будешь делать, посылайте Вы их подальше...
[В начало]

Анжелика (версии начиная с 4.0) (печать платежных документов) Пробная версия на 20 запусков. Привожу как пример простейшей защиты ключом реестра. Запускаем Regmon, устанавливаем ему фильтр Include anjelica, заносим в Exclude те программы, что у Вас постоянно работают (при мониторинге за реестром лучше все лишнее выгрузить, будет меньше мусора в логе) например explorer;regmon;wincmd и запускаем anjelica.exe. Программа предлагает провести немедленно регистрацию или немного попробовать ее на вкус. OK, будем пробовать (жмем клавишу 0). Программа говорит о том, что надо ее перезагрузить. Достаточно, остановите ведение лога в RegMon и взляните на экран. Там почти никаких обращений Anjelica к реестру, но есть
Anjelica-OpenKey-HKCR\VxdDriverx-NOTFOUND
Anjelica-CreateKey-HKCR\VxdDriverx-SUCCESS-hKey:0xC29B5550
Anjelica-SetValueEx-HKCR\VxdDriverx\U-SUCCESS-"58278657634709018857". Расшифровывается (для тех кто на бронепоезде :) это всё так: программа пытается открыть ключ, но его не оказывается в Реестре, тогда она создает новый, ему временно присвоен идентификатор hKey:0xC29B5550 (у Вас там будет другое число)...

Кстати, не обращайте на эти hKey-числа никакого внимания, за исключением тех случаев, когда нужная Вам запись в логе не будет начинаться с такого вот числа, а не с названия ветви реестра, что означает, что открывается подключ (или считывается значение) того ключа, что получил до этого такой идентификатор (перечитайте несколько раз, может станет понятней :). Дело в том, что RegMon иной раз не может Вас автоматически перебросить в Regedit'е к этому ключу(значению), говорит, мол, полное имя ключа неизвестно, так Вы можете сами проследить по списку, о каком ключе идет речь. Подробности работы с RegMon можно прочесть тут.

...а после того, как ключ создан, в нем еще создается и параметр U со значением 58278657634709018857 (естественно у Вас будет другое число). В этом числе, похоже, и запрятаны данные о том, сколько осталось запусков. Если продолжить мониторинг и запустить вновь программу, будет видно, что программа при запуске это число сначала считывает:

Anjelica-QueryValueEx-HKCR\VxdDriverx\U-SUCCESS-"58278657634709018857",
а затем меняет:
Anjelica-SetValueEx-HKCR\VxdDriverx\U-SUCCESS-"65768901883470582757".
Уж слишком похоже на триал ключ. А еще видно, что производится попытка считать значение HKCR\VxdDriverx\С, видимо сюда будет занесен пароль при регистрации программы. (Попытка подставить произвольное значение туда приводит к сообщению вроде того, что Вы пытались украсть регистрацию с чужого компьютера!). Если удалить ключ HKCR\VxdDriverx, то программа запустится как в первый раз. Немного неудобно через 20 запусков удалять ключ из реестра, а затем еще перезагружать программу, поэтому пришлось залезть в anjelica.exe Hex-редактором и найти в теле 2 упоминания VxdDriverx и рядом с ним параметра U, и во втором вхождении заменить U на Y (пишите любую латинскую букву). Теперь программа сначала считывает из параметра U сколько там осталось до конца запусков, а затем новое значение записывает уже в параметр Y, а значит вечно стоит на месте :). Только учтите, что это уже вроде как хакинг. Не-хо-ро-шо!
[В начало]

PE Compact v.1.84 (упаковщик и оптимизатор исполнимых PE файлов) Полнофункциональная пробная версия на 14 дней. Простейшая защита, но ловить ее лучше с Advanced Registry Tracer. Запускаем ART. Создаем новый файл базы (например PECompact). Очень неплохо закрыть все ненужные работающие программы. Запускаем сканирование реестра. Завершилось - запускаем установку PECompact. Установили - сканируем реестра снова. Теперь снимков реестра уже два. Запускаем сравнение этих снимков ("Сompare here" при выделенном 2-ом снимке). Результаты будут в виде 3 вкладок (Добавлено, Удалено, Изменилось). Добавлений там много, но в основном касающихся контекстных меню для исполнимых файлов. А это что такое за HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\MouseConfig ? Какого рожна инсталлятор упаковщика лезет устанавливать параметры мыши, да и еще создает для этого новый ключ в Microsoft'овской ветви реестра? Посмотрим. Там создан бинарный параметр CoordJumpRatioT размером в 8 байт. Копируем его значение в WinHex, в его Интерпретаторе данных включаем показ всех типов даты, устанавливаем курсор на начало вставленной Hex-строки. Особенно привлекательно выглядит отображение для формата FILETIME: это точная дата и время установки PECompact! Попался, голубчик! Делаем проверку: передвигаем системную дату где-нибудь на месяц вперед. Запускаем PECompact, смотрим About: говорит приплыли, и вырубается. Нажатием на F5 на ...\MouseConfig в ART попадаем в редактор реестра и удаляем этот ключ. Запускаем опять PECompact: первый раз в первый класс. Смотрим опять в реестр: ключ появился снова, но цифири в нем другие. Финита. (Время в компьтере не забудьте вернуть назад :) Для обновления через 14 дней программы можно сделать REG-файл (в ART на панели инструментов есть кнопка "Save to undo files"). В полученном файле (например untrial.reg) оставить только заголовок (Regedit4) и строку, в которой есть HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ MouseConfig, остальные строки (не пустые!) вырезать. После такой правки запуск этого файла будет удалять ключ ...\MouseConfig из реестра. Вот как выглядит этот untrial.reg:

untrial.reg
REGEDIT4

[-HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\MouseConfig]

Для минимальной автоматизации можно создать BAT-файл и с его помощью запускать PECompact. В Блокноте пишем:

pecompact.bat
start /w regedit /s untrial.reg
start pecompact.exe
exit

Сохраняем в папку где программа и REG-файл, переименовываем в чего_нибудь_там.BAT, в свойствах его указать 'Закрывать окно по завершении...' и 'Свернутое в значок', и PIF-файлом, что при этом явится запускать программу.
[В начало]

Advanced Direct Remailer v.2.17 Эффективная программа для массовой рассылки почты, минуя почтовый сервер провайдера. Всего 15 дней опробования, но абсолютно без ограничений. Особенность триал-защиты ADR в том, что это тот достаточно редкий случай, когда удаление (лучше при экспериментах производить только переименование) ключа реестра, законно используемого программой (HKLM\Software\Elcom\Advanced Direct Remailer), приводит к сбросу счетчика дней использования. Конечно при таком грубом удалении будут потеряны и все настройки ADR, поэтому все-таки нужно выделить именно триальную запись (или записи). Как? Популярным методом научного тыка:) и наблюдений.

  При осмотре ключа сразу бросается в глаза значение с именем "Date". Если убирать это значение в реестре и запускать ADR, то можно заметить, что программа заново воссоздает Date, но только вот его значение всегда различается. Подозрительно... Проводим проверку этого значения в WinHex аналогично предыдущему примеру. На этот раз очевидно, что мы имеем дело с датой запуска записанной в формате С. Банзай, поиск завершен!

  Казалось бы такая легкая победа, но почему-то мне в такую наивность защиты не очень-то верится (тот, кто успокоится на этой находке через пару недель убедится в правомерности таких подозрений - программа откажется работать). Будем продолжать наши наблюдения, удаляя основной ключ программы из реестра и запуская ADR с разной системной датой компьютера. Ключ этот снова и снова будет появляться, но теперь можно заметить, что и значение IspParam в основном ключе меняется, причем чем позже дата, тем больше это число, и наоборот. А если быть еще более внимательным (слабо?:), то заметим, что разница дат в, скажем, пять дней приводят к разнице в IspParam в те же 5 единиц. Ага!!! Осталось провести контрольный эксперимент. Запускаем ADR с удаленным IspParam. Закрываем ADR. Корректируем значение IspParam в реестре, уменьшая его как минимум на 15. Пытаемся потом произвести запуск, но вместо этого видим красивое окошко "Истек оценочный период!". Вот и все. Ан нет, не все. Вдруг откуда ни возмись в реестре появляется новое значение Expired=1 (!), то есть по-русски: Истек=Ага. Это страховочная запись, подобную которой создают многие программы, дабы зафиксировать факт, что триальный период истек. Теперь Вы можете хоть удалять IspParam, хоть писать туда день рождения Фредди Крюгера, все равно программа не заработает, пока Вы не удалите и Expired. Отсюда следует вывод: не доводите программу до конца ее ознакомительного срока работы, если не хотите себе потом лишних проблем с поиском триальных ключей.

   И в заключение содержимое REG-файлика для оживления ADR:

ADRestore.reg
REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Elcom\Advanced Direct Remailer]
"Date"=-
"IspParam"=-
"Expired"=-

И вот когда все про триал ADR было написано и выгружено на сервер, у меня вдруг возникла потребность использовать его замечательные возможности. И тут меня поджидал неприятный сюрприз: при попытке отправить с помощью ADR письма я снова получаю "Истек оценочный период!". Выходит, что недооценил я trial-защиту все-таки. Надо что-то делать. Снова производим очистку и пытаемся отправить письмо, но только теперь одновременно контролируем процесс FileMon-ом. Из подозрительного - обращения к win.ini, а зачем, собственно? Открываем смотрим: глаза разбегаются. Выручает копия win.ini где-то месячной давности. Делаем сравнение старой и новой версии (можно, например, использовать встроенную в TC утилиту сравнения файлов по содержимому). Самое броское изменение - это добавление секции [Time Zone] и в ней значения Syncronize=63249. Пробуем на время его удалить/переименовать. Вот теперь все в порядке. Программа заработала. Если у Вас хватило выдержки следить за моими поисками триальных меток в случае с ADR, то думаю Вы сделали для себя правильный вывод: ловить триальные ключи уже установленной, а тем более отработавшей свой триал, программы - это самый бестолковый метод. Конечно правильнее было бы отследить процесс инсталляции программы и, особенно, ее первый запуск.

[В начало]

WEBaby Screen Savers (симпатичные хранители экрана на движке DivX;-)) Триальная версия всего на 7 дней. Хочу описать эту защиту, потому как был поражен самоуверенностью программистов. Я-то запасся всем арсеналом средств для борьбы с триалом. Но ничего особенного не понадобилось. Ну просто добило это меня: в реестре в фирменном ключе производителя HKLM\Software\WEBaby\Screen Savers\ для каждого хранителя создается свой подключ, а в том подключе параметр с именем, Внимание!, "Install time", имеющий некоторое бинарное значение. Если это значение скопировать в WinHex, то его Интерпретатор говорит, что это дата в формате UNIX/C, причем именно дата установки! Начинаем наши пляски. Прогоняем время на пару недель вперед пытаемся смотреть скринсейверы - не работают, евры просят. Удаляем в реестре значение "Install time" - оба-на! "Ошибка, надо переустановить!" - говорит скринсейвер и, гад, не работает. Конечно, можно установить заново, но не слишком ли много чести: раз в неделю переустанавливать хранитель экрана (а если их несколько?!). Надо как то заносить обновленную дату в реестр, но как? На эту сложность, похоже, и была сделана ставка. Как же автоматизировать эту процедуру? Можно, конечно, написать небольшую программку для этой цели, но это уже как-то... АГА! Есть же скрипты (Java или Basic на выбор)! Кто не в курсе, скрипт - это простой текстовый файл с набором некоторых команд, которые могут выполняться при запуске этого скрипта. Если такой скрипт положить в папку Автозагрузка, то он будет исполняться автоматически (если ОС не против :) и, например, обновлять нужные даты или удалять неугодные нам ключи в реестре и пр. Скрипт для этого случая получился у меня простым до безобразия, но с одним недостатком: его нужно править под каждый конкретный хранитель, уточняя имя его ключа в реестре. А ведь хранители так быстро надоедают :(. Опять воспользовался буржуйской беспечностью: папки с установленными хранителями называются у них так же как и эти ключи в реестре. Это позволило определять нужные имена средствами VB скрипта. Я, конечно, не проверял все хранители, тем более учитывая их ежемесячное обновление на сайте, но, похоже, что конечный вариант скрипта будет позволять пользоваться любым из них, а так же любым их количеством. (У меня там нимб еще не светится вокруг башки, а?)
А все беспечность и самоуверенность программерская, а ведь с каждого хранителя они хотят получить по $10 (десять долларов США)...
[В начало]

ClipMate v.5.x (imho лучший менеджер буфера обмена) Полнофункциональная пробная версия рассчитана на 30 дней и не менее чем на 30 _рабочих_ запусков. Технологию слежки предлагаю такую же, как в примере с PECompact, но это на Ваш выбор, вполне можно обойтись и RegMon'ом. Делаем снимки до установки и после первого запуска ClipMate. Сравнение этих снимков покажет добавление множества параметров в новом ключе HKEY_CURRENT_USER\Software\Thornsoft\ClipMate5. А вот и подозрительное: HKEY_CLASSES_ROOT\CLIPMT5\CM50 и в нем еще более странное CLASSINFO = CM50/29351/30912626. Запомним его на всякий случай. Бегло осматривая другие добавления, напарываемся на

[HKEY_CURRENT_USER\Software\ Thornsoft\ClipMate5\Video]
"DialogConstants"="30912626"
"VideoProfile"="29351"
(цифры ничего не напоминают?). Да и какие там видеонастройки: в конце-то концов программа с буфером работает! Присмотрим за этими значениями. Позапускаем программу, че-нить покопируем, повставляем, в общем насладимся ее продвинутостью. При этом будем посматривать в реестр и в окошко About (там написано сколько уже дней и сколько раз программу используют). Так и есть: VideoProfile=29351 и соответствующая ему часть в CLASSINFO = CM50/29351/30912626 синхронно уменьшаются, правда не на единичку, после каждого использования (не просто запуска!), а значение DialogConstants= и его отображение в CLASSINFO = не меняются. Дурное дело - не хитрое: записываем в VideoProfile что то вроде 999999. После запуска программы в About написано, что это уже какой-то минус много тысячный раз использования :D. Ну в общем перемудрил автор программы. Теперь пока из минуса не выйдет, программа будет работать. Дата тут уже не играет роли, таковы уж условия триала. Если Вы спросите, а зачем эти параметры нужно было дублировать, то ответ видимо такой: чтобы нас запутать и на случай удаления записей при деинсталяцции. То есть переустановкой программу не оживишь. Я пробовал удалить попеременно один из параметров - после работы программы он восстанавливается, а если удалить их оба, то только тогда будет ситуация первого запуска программы.

  Из любопытства пробовал разные даты инсталляции, чтобы попытаться раскусить, как программа записывает эту дату. Оказалось, довольно прикольно: запись формируется так: {Год+1111} {День_месяца+12} {Номер_месяца+16}. Это значит в моем случае 3091-1111=1980 год, 26-12=14 число, 26-16=10 месяц(октябрь?). Вечно у меня на компе неверная дата, а всё эти эксперименты :). Вообще-то дата вещь серьезная, с нею шутки плохи (помним еще ошибку 2000?). А вот у меня было несерьезное настроение и я вписал в реестр DialogConstants=30912600, т.е. отрицательный номер месяца (-16). Результат: ClipMate со страху вообще забыл, что надо считать, просто осталось Unregistered (можно запросто убрать, например ResHacker'ом) и вот уже у меня второй год работает без каких-либо возмущений...

Интересное наблюдение: если посмотреть внутрь программного файла ClipMate, то можно наткнуться на большой кусок, в котором лежат до боли знакомые словосочетания. Например: PHROZEN, THEFORCETEAM, 126.COM, FREEWARE, COKEBOTTLE, EGIS/CORE, FULLY LICENSED USER, Free User, BART SIMPSON, CZY и еще несколько десятков аналогичных (и даже, извиняюсь, FUCK там есть!). Это ж как надо было достать программиста левыми серийными номерами с названиями хакерских групп и любимых ими имен, чтобы он решил зашить этот черный список прямо в программный код! Так вот если затереть нужное слово, то левый серийник спокойно будет программой проглочен.
[В начало]

Steganos Security Suite 4. Представляет из себя набор утилит для шифрования файлов, почтовых отправлений, хранения паролей и конфиденциальных данных, безвозвратного удаления файлов, а также... да Вы всё и сами знаете :). Я сейчас не об этом. Однажды поставил я эту программу на своем компьютере и, решив продлить ее триальный срок, попробовал отслеживать ее обращения к реестру с помощью RegMon-a. Ключи, ответственные за отсчет триала, нашел быстро. Если кому интересно, вот reg-файл для обнуления триального срока:

SSS4.reg
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Steganos\SecuritySuite\4\Licence] "TimeStamp"=- "TimeStampHash"=- "Installed"=dword:00000001

Для сведения: первые два ключа фиксируют дату первого запуска программы. Удаление не приведет к их автоматическому обновлению, пока при этом не будет присутствовать третий ключ (кстати, это очень частый прием в триальной защите: подобный ключ в реестре создается инсталлятором программы, а после ее первого запуска ключ удаляется).

Но я опять-таки не об этом:). При просмотре списка ключей, которые постоянно наведывает при своем запуске SSS4, мой глаз постоянно цеплялся за такие параметры, как LicenceModel, OEMInstalled и некоторые другие в ключе Licence. Пройти мимо них было просто невозможно. Начал пробовать различные значения для этих ключей. Вряд ли я смогу восстановить сейчас ход своих мыслей, но он привел меня к тому, что я создал ключ LicenceModel со значением "OEM" и перезапустил программу. Похоже мои действия пришлись по вкусу SSS4: надпись "Test version" сменилась благозвучной "Registered version". Правда кнопка с предложением зарегистрироваться осталось видна, но после того, как я кликнул на ней, исчезла НАВСЕГДА (программа у меня работает в полнофункциональном режиме уже почти полгода). Вот такая любопытная история. В виде рег-файла она выглядит следующим образом:

SSS4_OEM.reg
REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Steganos\SecuritySuite\4\Licence]
"LicenceModel"="OEM"

Не могу гарантировать, что новые версии программы, которые уже появились на официальном сайте программы, поведут себя точно также (качать для проверки десятки мегабайт мне неохота), но попробовать все же стоит.
(Как сообщил мне 20.08.04 Alexander Michailov aka A_Mich описанный выше метод прекрасно работает и со Steganos Security Suite 6.0)
[В начало]

ACProtect. Но только не перепутайте с упоминаемым тут всуе ASProtect-ом! Хотя и не мудрено это: весь основной дизайн (UI) нагло передран с ASProtect-oвского. Но зато чего стоит одна только расшифровка названия: AntiCrack Software Protector. Это вам не хухры-мухры! А цена!.. Да я, однако, слегка увлекся. да и к тому же я совсем не собирался писать о самой программе. Я хотел обратить Ваше внимание на тот механизм, который она внедряет при создании триал версий защищаемых ею программ. Имеющаяся у меня версия (1.21) дает нам следующий выбор триальных ограничений: по количеству запусков, по количеству дней работы и с явным указанием последнего дня работы. Попробовал я все три и даже не один раз. Запуск этих защищенных программ показал любопытный результат: никаких(!) ключей в Реестре не создается, а только по одному скрытому файлу с бессмысленным именем, подобным peyxqy.ift и всегда одинаковой длиной (10 байт) в корневой директории загрузочного диска. Заглянем-ка внутрь с помощью Hex-редактора. Итак: первый байт (смещение 0x0) для файла, созданного при ограничении числа запусков всегда был равен 0x41 (символ заглавной латинской буквы A), при ограничении числа дней - 0x42 (B) и для ограничения по последней дате, как Вы уже сами догадались, 0x43 (С).

Банально, ну а что там дальше? Сначала для файла первого типа во втором байте было такое же значение, как и в первом (0x41), но при последующих запусках эта величина увеличивалась каждый раз на единицу (соответственно это выглядело, как перебор заглавных букв латинского алфавита), остальные байты в этом файле были нулевыми. В двух других файлах нулевым был только последний байт, а 8 байт до него были заняты данными. Предположив, что это дата в одном из стандартных форматов, я использовал для проверки встроенный Интерпретатор WinHex (курсор должен быть установлен в позицию 0x1). Интерпретация этих данных как Win32 FILETIME привела к желаемому результату: в обоих случаях была видна дата последнего дня работы.

Одно только меня смущает в этом исследовании: мне так и не удалось пока вживую увидеть ни одной триал-программы, которая была бы защищена подобным образом :( Если найдется у Вас, обязательно сообщите мне. Только учтите: искать у себя подобные файлы нужно еще до того, как Вы запустите на своем компьютере мою RTKF, ибо в текущей версии сносит она их безжалостно:) (прочитайте в ридми.рус, как это можно отключить).
[В начало]



А вот описывать все это, ей богу, будет потруднее, чем делать...

  ...но все равно продолжение следует...

 

Copyright © 2002-2004 SNC - О компании...