|
|
Воскресенье, 22.12.2024, 19:57 |
| |
|
Вы вошли как Гость | Группа "Гости"Приветствую Вас Гость | RSS |
*
Как бороться с триал-версиями программ
| |
Fima | Дата: Понедельник, 01.07.2013, 20:36 | Сообщение # 1 |
Admin
Группа: Администраторы
Сообщений: 4954
Награды: 24
Статус: Offline
| Как бороться с триал-версиями программ
Все написанное ниже - не для кул хакеров. Скорее это для тех, у кого вместо лишних денег на покупку программ есть некоторый азарт побороться с ними. Использована терминология непрофессионала, не судите строго.
Речь пойдет не о взломе, патчах, кряках и тому подобной бяке. Остановимся мы на программах, которые предлагают свои полноценные (не всегда) версии для опробования в течении некоторого числа дней и(или) какого-то количества запусков.
Сначала о сути вопроса. Для того чтобы ограничить использование Вами какой-нибудь программы, она должна (обычно при первом запуске) так сказать пометить территорию. Это должна быть какая-то запись в реестре или в каком-нибудь файле на диске (запись в BIOS и напрямую в физический сектор жесткого диска здесь не рассматривается). В последующем программа при запуске (не всегда) будет проверять эту запись и, сравнивая ее с текущей датой, делать выводы о том, стоит ли Вам разрешить работу. Иногда программы выводят приветственное окошко(т.н. Nag Screen), в котором пишут "Вам осталось ХX дней на опробование...". Что касается отсчета запусков, то тут несколько иначе: эта запись должна при работе изменяться программой, отображая в её содержимом уже произведенное число запусков.
Что же обычно представляют из себя эти Trial записи? Это уже на усмотрение самих авторов программ.
Нулевой вариант: Я его даже и не собирался описывать, потому как решил, что он сегодня нигде уже не используется. Оказалось - нет, жив, курилка. Слишком уж все просто: программа перед работой проверяет дату какого-нибудь файла, который был создан во время инсталляции или первого своего запуска (чаще всего именно дату самого исполнимого файла) и, если она отстоит от текущей более, чем на заявленный триальный срок, то программа шумит и ругается. Но самое смешное, что после переустановки она, как миленькая, заново начинает отсчет (понятное дело: при установке файлы получают свежие даты). Кстати такой вариант защиты иногда используется как составная часть комбинированной (например CommView проверяет дату создания двух папок внутри своей рабочей папки).
Первый вариант: программа создает файл в системной папке (или в папке windows или, иногда, в корневой папке диска C:) с именем, подобным на какой-либо системный файл, например wsock321.dll или winhelp.cnt и т.п. Файл для маскировки (не всегда) делается скрытым/системным или забивается всякой ерундой, например взятой из подобного 'правильного' файла, так что при просмотре содержимого будет казаться, что файл вполне нормальный. На самом же деле в файле будет выделена небольшая область, где и будут записаны (часто в зашифрованном виде) дата первого запуска (или наоборот последнего) и счетчик запусков или, к примеру, число записанных CD матриц или отсканированных страниц и т.п. С помощью подобных файлов AudioGrabber помечал для себя, что регистрационный номер, введенный Вами при регистрации, - левый. А проверялся этот номер во время подключения к интернет базе CDDB. А не слишком известная у нас программа для создания антихакерской защиты ACPprotect так вообще ограничилась только этим единственным вариантом триальной защиты.
Второй вариант: используется один из тех файлов, которые уже есть в системе и запись в которые не блокирована. Например win.ini, system.ini, odbc.ini и т.п. Выбирается какая-либо наиболее забитая непонятными (для неспециалиста) буквенно-цифровыми наборами секция и в ней делается запись в таком же невразумительном виде. Такой механизм, в частности, использовался популярными программами FineReader и Lingvo.
Третий вариант, наиболее распространенный: запись производится в реестре Windows. Разновидностей - масса. Но все они сводятся к созданию в реестре ключа (ключей) или значения (тоже может быть несколько), которые будут хранить необходимую информацию. Очень часто Trial-ключи располагаются не в той секции реестра, которая выделена для хранения настроек программ (это секции Software Название Фирмы Производителя), а пытаются затеряться среди чужих (конечно, не все поступают так), например среди Microsoft - их очень много в реестре. Другое очень модное место для создания триал-ключа - это ветвь ..CLSID. Там расположены буквально тысячи однообразных (типа {C45BC9EE-D7F5-0977-A380-297B777CA0E0}) ключей, содержащих специальные идентификаторы классов для зарегистрированных COM элементов. Обращение к этим ключам идет довольно активное. Вот где прятаться хорошо!
Некоторые продвинутые программисты не ограничиваются использованием одного метода, а объединяют и переплетают их в затейливый клубок, ой жадные!!! Примеры - программа AfterScan, LingoWare Translator, те же FineReader и Lingvo.
Ну а те, кто не настолько продвинут или просто не желает всеми этими фокусами забивать себе голову, приобретают крутую и недешевую вещь ASProtect (детище Алексея Солодовникова). Она, кроме сжатия, шифрования, проверки целостности, защиты от взлома и др., позволяет ввести ограничения на использование программы (на текущий момент - по третьему варианту, в последнее время несколько модифицированному). Registry Trash Keys Finder как раз в основном и направлена на поиски ключей, подобных тем, которые создаются ASProtect'ом и некоторыми другими подобными ей (в частности очень популярная среди западных программистов Armadillo).
А зачем, собственно, спросите Вы, эти ключи искать? Конечно чтобы удалить или подправить! Обычно программа, при запуске не обнаружившая свою триальную метку, считает себя только что инсталлированной и поздравляет Вас с началом ее опробования (и, кстати, тут же создавая новую метку). То, что нам и нужно! Некоторые программы хитрят и создают триальные метки уже при инсталляции. Их может генерировать и сама программа установки. В этом случае удаление триального ключа позволит Вам как минимум произвести успешную переустановку программы.
Надо сказать, что с некоторыми программами проходит и такой простой трюк: при инсталляции следует перевести системные часы компьютера на нужный Вам период вперед, а потом, уже после установки и однократного запуска программы, вновь вернуть время вспять. Если вдруг этот фокус удастся, то программа будет работать в ознакомительном режиме не менее того срока, на который Вы делали сдвиг по времени. Трюк этот опасный: многие новые программы уже "знают" о таких методах и, обнаружив обман, просто отказываются работать вообще, какое время им не подай
|
|
| |
Fima | Дата: Понедельник, 01.07.2013, 20:36 | Сообщение # 2 |
Admin
Группа: Администраторы
Сообщений: 4954
Награды: 24
Статус: Offline
| 2. Итак, все-таки будем искать. Инструментарий: во-первых это программы мониторинга доступа к файлам и доступа к реестру. Стандартно рекомендуемые: FileMon и RegMon от компании Sysinternals. Достоинства: бесплатные, удобные для перехода к найденной позиции по двойному клику на строке, широкие возможности фильтрации. Главный недостаток: некоторые программы имеют встроенный механизм защиты от таких программ и запросто захлопывают и FileMon и RegMon без всяких предупреждений. Неплохая альтернатива этим программам: Win-eXpose-I/O и Win-eXpose-Registry от компании Shetef Solutions and Consulting Ltd. Достоинства: часто работают там, где не работают FileMon и RegMon, есть возможность фильтрации каждой функции в отдельности. Как недостаток можно указать SHAREWARE'ность...
Вторая группа софта для нашей цели - это утилиты для создания снимков системы (например до первого запуска программы и после) и сравнения затем этих снимков. Программа, которую очень неплохо иметь для определения изменений в реестре, это Advanced Registry Tracer от скандально известной компании Elcomsoft. Множество очень удобных функций: просмотр снимка реестра, сохранение выбранных ветвей в REG файлах, откат обнаруженных изменений, возможность хранить в каждой базе (кстати базы можно создавать для каждой исследуемой программы разные) множество снимков реестра и производить сравнение любой пары, переход к указанному ключу в Regedit и многое другое. Недостаток один - Shareware, но он легко устраняется посещением определенных сайтов .
Для того, что бы отслеживать изменения в файлах и реестре при установке программ неплохо подходит удобный, сделанный в виде мастера FireLog, который создает комплексный отчет об изменениях в файлах, реестре и ini-файлах (просто тотальная слежка :). Жаль, что проект этот уже давно не развивается. Лично меня больше всего устраивает, как быстро и добротно выполняет аналогичную работу очень компактная утилита Regshot, к тому же позволяющая быстро сохранять сделанные снимки для последующего использования.
Имейте ввиду: использовать утилиты второй группы имеет смысл только при установке, первом запуске триальной программы (правда замечены программы, делающие дополнительные метки уже только при втором запуске, так что не поленитесь проконтролировать и второй запуск исследуемой программы) и при последнем запуске, после которого ознакомительное использование становится невозможным (при этом некоторые программы создают дополнительные метки, сигнал, что программа свое отработала). При этом результативность слежки будет максимальной, потому что Вы увидите именно изменения, а не всё подряд, как это происходит в случае с программами-шпионами (чтобы уменьшить число записей в их логах, активно применяйте фильтры).
Однако обойтись без программ мониторинга в этих делах практически невозможно, потому что многие программисты стараются припрятать триальные записи от Ваших глаз, создавая их не сразу же при запуске, а при каком-нибудь специфическом событии в программе. Так, например, иногда поступает всем известный навороченный менеджер закачек Reget Deluxe. Отследить момент создания им триального ключа довольно сложно, тем не менее RegMon элементарно укажет Вам на обращение к этому ключу, даже если его пока еще и не существует в реестре. Чудеса...
источник: databack4u.com
|
|
| |
| |
|