MyTetra Share
Делитесь знаниями!
Как бороться с триал-версиями программ
09.03.2018
13:11
Раздел: Комп


Как бороться с триал-версиями программ



  Заметка эта является своеобразным ответом на частые вопросы связанные смоей утилиткой Registry Trash Keys Finder.

  Все написанное ниже — совсем даже не для кул хакеров. Скорееэто для тех, у кого вместо лишних денег на покупку программ есть некоторый азарт побороться с ними.Использована терминология непрофессионала, так что не судите строго. Большинство упоминаемых на этойстранице программ (да и не только их) можно найти, причем в "улучшенном виде" на этом весьма полезном и содержательномсайте.

  Речь пойдет не о взломе, патчах, кряках и тому подобной бяке.Остановимся мы на программах, которые предлагают свои полноценные (не всегда) версии для опробованияв течении некоторого числа дней и(или) какого-то количества запусков.

  Сначала о сути вопроса. Для того чтобы ограничить использование Вами какой-нибудьпрограммы, она должна (обычно при первом запуске) так сказать пометить территорию. Это должна быть какая-то запись вреестре или в каком-нибудь файле на диске (запись в BIOS и напрямую в физический сектор жесткого диска здесь нерассматривается). В последующем программа при запуске (не всегда) будет проверять эту запись и, сравнивая ее с текущейдатой, делать выводы о том, стоит ли Вам разрешить работу. Иногда программы выводят приветственное :) окошко(т.н. NagScreen), в котором пишут "Вам осталось ХX дней на опробование...". Что касается отсчета запусков, то тут несколькоиначе: эта запись должна при работе изменяться программой, сохраняя в её содержимом уже произведенное числозапусков.

  Хочу сразу предостеречь Вас от одной частой ошибки. Некоторые (особенно дорогие) программы хоть и имеют некоторый тестовый период, но это не совсем то, о чем мы собираемся поговорить. Дело в том, что тестовыйпериод этих программ организуется путем предоставления пользователю (обычно только один раз) временного лицензионного ключа. После того, как его действие закончится Вам понадобится новый ключ (получить повторно временный удается нечасто), а значит его уже нужно будет покупать.Так вот, при в стрече с этим типом триальных программ продление их ознакомительного периода путем поиска каких-то скрытых записей обычно безполезная трата времени: их там попросту нет.

  Итак, что же обычно представляет из себя вся эта Trial информация? Это уже наусмотрение самих авторов программ. Вариантов (а точне их модификаций) множество.


Нулевой вариант: Я его даже и не собирался описывать, потому как решил, что он сегодня нигдеуже не используется. Оказалось - нет, жив, курилка. Слишком уж все просто: программаперед работой проверяет дату какого-нибудь файла, который был создан во время инсталляции или первого своего запуска(чаще всего именно дату самого исполнимого файла) и, если она отстоит от текущей более, чем на заявленный триальныйсрок, то программа шумит и ругается. Но самое смешное, что после переустановки она, как миленькая, заново начинаетотсчет (понятное дело: ведь при установке файлы получают свежие даты). Кстати, такой вариант иногда используется каксоставная часть комбинированной защиты (например, программа проверяет дату создания папок и файлов внутри своей рабочейдиректории).

Первый вариант: программа создает файл в системной папке (или в папке Windows или, иногда, вкорневой папке диска C:) с именем, подобным на какой-либо системный файл, например wsock321.dll или winhelp.cnt и т.п.Файл для маскировки (не всегда) делается скрытым/системным или забивается всякой ерундой, например взятой из подобного'правильного' файла, так что при просмотре содержимого будет казаться, что файл вполне нормальный. На самом же деле вфайле будет выделена небольшая область, где и будут записаны (часто в зашифрованном виде) дата первого запуска (илинаоборот последнего) и счетчик запусков или, к примеру, число записанных CD матриц или отсканированных страниц и т.п. Спомощью подобных файлов AudioGrabber помечал для себя, что регистрационный номер, введенный Вами при регистрации, -левый. А проверялся этот номер во время подключения к интернет базе CDDB. А не слишком известная у нас программа длясоздания антихакерской защиты ACPprotect так вообще ограничиласьтолько этим единственным вариантом триальной защиты.

Второй вариант: используется один из тех файлов, которые уже есть в системе и запись в которыене блокирована. Например win.ini, system.ini, odbc.ini и т.п. Выбирается какая-либо наиболее забитая непонятными (длянеспециалиста) буквенно-цифровыми наборами секция и в ней делается запись в таком же невразумительном виде. Такоймеханизм, в частности, использовался популярными программами FineReader и Lingvo.
(Примерчик) (Примеркомбинации 1-го и 2-го вариантов)

Особая модификация 2-го варианта. Только сейчас входит в моду, раньше не замечал, хотя ктознает... Использует некоторые специальные возможности файловой системы NTFS. При этом триальная информация записываетсяне внутрь самого файла, а в специально создаваемый для этой цели альтернативный поток данных (ADS / Alternate DataStream) этого файла. Такая информация не видна в менеджере файлов, но при этом вполне доступна для чтения и записипрограммными методами. Подобную хохму используют уже некоторые вирусы, скрыто "приклеивая" таким образом кважным системным файлом вредоносный программный код. Тут не место вдаваться в подробности этих технологий (Вы, что, ивпрямь поверили, что я в курсе, как это все работает:-), выскажу только свое мнение, что Вы еще не раз услышите про этотвариант. А пока, если интересно, поищите в сетке программы, которые позволяют найти и просмотреть/удалить ненужные Вамальтернативные потоки (есть ведь и нужные, понятное дело).

Третий вариант, наиболее распространенный: запись производится в Реестре Windows.Разновидностей - тоже масса. Но все они сводятся к созданию в реестре ключа (ключей) или значения (тоже может бытьнесколько), которые будут хранить необходимую информацию. Очень часто Trial-ключи располагаются не в той секции реестра,которая выделена для хранения настроек программ (это секции Software \ Название Фирмы Производителя), а пытаютсязатеряться среди чужих (конечно, не все поступают так), например среди Microsoft - ихочень много в Реестре. Другое очень модное место для создания триал-ключа - это ветвь ..\CLSID. Там расположеныбуквально тысячи однотипно выглядящих (типа {C45BC9EE-D7F5-0977-A380-297B777CA0E0}) ключей, содержащих специальныеидентификаторы классов для зарегистрированных COM элементов. Обращение к этим ключам идет довольно активное. Вот гдеспрятаться-то хорошо!

Продвинутая модификация 3-го варианта, ставшая популярной только в последние годы (если Вынемного понимаете в программировании, можете заглянуть вот сюда). Реализуема она только на операционках,которые основаны на ядре NT (NT,W2000,XP,Vista,Windows 7 и др). Применяется на данный момент многими коммерческимизащитами, например EXECryptor, SDProtector, ZIPWorx и др. Суть этой новомодной штуковины заключается в том, чтосозданную особым образом триальную запись в Реестре не удается ни просмотреть, ни удалить традиционными способами. Длясоздания такого ключа используются специальные функции из NativeAPI. Невидимым и неудаляемым такой ключ делает включениев имя этого ключа "запретного" нулевого символа (а он-то стандартно используется как завершающий символ длястрок!). При этом обычные программы работы с Реестром воспринимают не все имя ключа, а только ту его часть, котораярасположена до нулевого символа и посему не могут с этим ключом нормально работать (проще говоря - полный облом:). Кстати, начиная с версии 3.6.1 TrashReg предоставляет простое средство для удаления таких "хитрых"ключей.


  Продвинутые программисты не ограничиваются использованием одного метода, а объединяют ипереплетают их в затейливый клубок!!! Примеры - программа AfterScan, LingoWare Translator, те же FineReader и Lingvo. Ну, а те, кто не настолько продвинут или просто не желает всеми этими фокусамизабивать себе голову, приобретают крутую и недешевую вещь — готовый софтварный протектор, например ASProtect (детище Алексея Солодовникова). Он, кроме сжатия,шифрования, проверки целостности, защиты от взлома и др., позволяет ввести ограничения на использование программы (натекущий момент - по третьему варианту). Registry Trash Keys Finder как раз восновном и направлена на поиски ключей, подобных тем, которые создаются ASProtect'ом и некоторыми другими подобными ей(в частности очень популярной среди западных программистов Armadillo).

  А зачем, собственно, спросите Вы, нам эти ключи искать? Конечно чтобы удалить или привозможности подправить! Обычно программа, при запуске не обнаружившая свою триальную метку, считает себя только чтоинсталлированной и поздравляет Вас с началом ее опробования (кстати, тут же создавая новую метку). То, что нам и нужно!Некоторые программы хитрят и создают триальные метки уже при инсталляции. Их может генерировать и сама программаустановки. В этом случае удаление триального ключа позволит Вам как минимум произвести успешную переустановкупрограммы.

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

  Итак, все-таки будем искать. В первую группу инструментов поиска я бы включилпрограммы мониторинга доступа к файлам и к Реестру. Стандартно рекомендуемые: FileMon и RegMon от компании Sysinternals. Достоинства: бесплатные, удобные для перехода кнайденной позиции по двойному клику на строке, широкие возможности фильтрации. Главный недостаток: некоторые программыимеют встроенный механизм защиты от таких программ и запросто захлопывают FileMon и RegMon, без всяких предупреждений (хотя умные парни уже нашли различные приемы от этого лома).А не так давно я обнаружил в сети еще одну весьма продвинутую программу подназванием MultiMon. Так вот она умееет мониторить нетолько файловые операции и обращения к Реестру, но еще и сетевые операции, буфер обмена, клавиатурные нажатия, другиедействия пользователя ... да всего и не помню уже. Кстати, не пропустите очень неплохой редактор Реестра Resplendent Registrar от того-же производителя. Между прочим, впоследнем тоже есть встроенная функция мониторинга за Реестром (работает только для NT систем). А возможность менять"на лету" тип значения, хранящегося в Реестре, просто уникальна. Обе программы платные, но имеютполнофункциональные ознакомительные версии (Resplendent Registrar версий 4+ уже имеет множество ограничений в версии Lite).Ограничения по времени работы этих программ можно снять, убрав парочкузначений из Реестра. Причем чтобы их найти не нужны никакие особые навыки - просто зайдите в штатные для этих программключи Реестра и Вы их там сразу увидите.

  Вторая группа софта для нашей цели - это утилиты для создания снимков системы(например до первого запуска программы и после) и сравнения затем этих снимков. Программа, которую очень неплохо иметьдля определения изменений в реестре, это Advanced RegistryTracer от скандально известной компании Elcomsoft. Множество очень удобных функций: просмотр снимка реестра,сохранение выбранных ветвей в REG файлах, откат обнаруженных изменений, возможность хранить в каждой базе (кстати базыможно создавать для каждой исследуемой программы разные) множество снимков реестра и производить сравнение любой пары,переход к указанному ключу в Regedit и многое другое. Недостаток один - Shareware, но он легко устраняется посещениемопределенных сайтов ;-). Для того, чтобы отслеживать изменения в файлах и реестре при установке программ неплохоподходит удобный, сделанный в виде мастера FireLog, который создает комплексный отчет об изменениях в Реестре и ini-файлах (просто тотальнаяслежка :). Жаль только, что проект этот уже давно не развивается и оттого возможны проблемы в работе с новымиоперационными системами. Да и программу эту в сети уже найти сложновато. Лично меня на данный момент вполне устраивает быстрая и добротно выполняющая аналогичную работу очень компактная утилита Regshot, которая к тому же еще и позволяет сохранятьсделанные снимки для последующего их использования.

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

Кстати, попутный совет: если Вы прозевали фазу первого запуска программы, но у Вас на компе есть другаяоперационка, то тогда под контролем установите программу уже на этой операционке. Более того, иногда (редко, но бывает)для этого достаточно просто войти в систему под другим пользователем.

  Тем не менее, обойтись без программ мониторинга в этих делах практически невозможно,потому что многие программисты стараются припрятать триальные записи от Ваших глаз, создавая их не сразу же при запуске,а при каком-нибудь специфическом событии в программе. Так, например, иногда поступает всем известный навороченныйменеджер закачек Reget Deluxe. Отследить момент создания им триальногоключа довольно сложно (похоже в какой-то из стадий закачки файла), тем не менее RegMonэлементарно укажет Вам на обращение к этому ключу, даже если его пока еще и нет в Реестре. Чудеса...

[ А вот тут несколько примеров...]

  Продолжение следует...





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



Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования