Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Ограничение времени использования



Другим популярным ограничением DEMO-версий является ограниченное вре­мя использования. Бывают по крайней мере два вида ограничений. В первом отсчет времени идет от момента первого запуска, а во втором программа работает до некоторой заранее установленной даты. Разумеется, первое гораздо удобнее, но и более уязвимо, так как необходимо где-то сохранить дату первого запуска (причем убедиться, что он именно первый). Есть очень немного способов это сделать. Практически разработчики ограничены реестром или внешним файлом. Изменять код самой программы недопустимо, так как это вызовет протест со стороны антивирусов, а, значит, и со стороны использующих их клиентов. Под MS-DOS программы прошлого поколения могли писать в инженерные цилиндры жесткого ' диска, в неиспользуемый конец последнего кластера файла, неиспользуемые поля CMOS. Сегодня ситуация изменилась. Современные операционные системы типа Windows NT вообще не дадут непривилегированному пользователю прямого досту­па к диску. Идет активное внедрение сетевых технологий, а следовательно, защитный механизм должен успешно функционировать и на сетевой машине. Таким образом, практически единственной подходящей кандидатурой выглядит реестр. Однако все обращения к нему очень легко отследить и отредактировать. Или можно переустановить операционную систему, уничтожив реестр.

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

Рассмотрим для примера crack05 (file://CD:\SOURCE\VC\CRACK05\ RELEASE\crack05.exe). Программа при первом запуске запоминает текущую дату и по истечении 20 дней с этого момента прекращает работу. Переустановка (т.е. удаление и восстановление с оригинала) не помогает. Где же записан момент. первого запуска? Быть может, в реестре? Это предположение нетрудно проверить любым монитором реестра. Запустим, например, "Regmon for Windows NT/9x" by Mark Russinovich. Теперь все обращения к реестру будут протоколироваться. Так выглядит протокол при первом запуске защиты:

40 Crack05 OpenKey HKCU\SOFTWARE\CRACK05 KOTFOUMD

41 Crack05 CreateKey HKCU\SOFTWARE\CRACK05 SUCCESS hKey: OXC29AF430

42 Crack05 SetValueEn HKCU\SOFTWARE\CRACK05 SUCCESS Ox36D3A94F

43 Crack05 CloseKey HKCU\SOFTWARE\CRACK05 SUCCESS

А так при последующих:

35 Crack05 OpenKey HKCГ\SOrTWARE\CBACK05 SUCCESS hKey; OXC29AFE60

36 Crack05 QueryValueEx HKCU\SOFTWARE\CRACK05 SUCCESS Ox36D3FC04

37 Crack05 CloseKey HKCU\SOFTWARE\CRACK05 SUCCESS

Попробуем удалить раздел HKEY_CURRENT_USER\SOFTWARE\CRACK05 (предварительно сделав резервную копию реестра). Последующий запуск защита воспримет как первый. На процедуру вскрытия ушло меньше пары минут. Однако периодическое редактирование реестра утомительно и просто неудобно. Полно­ценный взлом предполагает полную блокировку защитного механизма, что мы сейчас и сделаем.

Протокол позволяет понять алгоритм работы защиты. Первоначально програм­ма пытается найти в реестре раздел HKEY_CURRENT_USER\ SOFTWA­RE \CRACK05. Если он отсутствует, то защита полагает, что на этом компьютере запущена впервые и записывает текущую дату. В противном случае вычисляется число дней с момента первого запуска. Можно изменить код так, чтобы незави­симо от результатов поиска управление всегда передавалось на ветку первого запуска.

Рассмотрим следующий код:

00401096 lea ecx,[esp+4]

0040109А lea edx,[esp+0Ch]

0040109Е push ecx

0040109F push edx

004010А0 push 0

004010А2 push 0F003Fh

004010A7 push 0

004010А9 push 4031A4h

004010АЕ push 0

004010B0 push offset aSoftwareCrack0

004010В5 push 80000001h

00401DBA call ds:RedCreateKeyExA

004010C0 test eax,eax





Дата публикования: 2014-11-18; Прочитано: 275 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...