Белорусская цифровая библиотека




ft-online.info
tonik@mail.kz

Бесплатный электронный оффлайн журнал информационных технологий
Выпуск № 8 19 Сентября 2004
FERRUM  
 
 
 
CODING  
 
 
SECURITY  
 
 

Исследование защиты программы ZoneAlarm 3.0.018

Итак, недавно мне попался популярный firewall. Действительно крутая вещица, одна из лучших на сегодняшний день. Очень хорошо защищает ваш комп от непрошеных гостей:) Программа имеет триал-период 30 дней. При запуске выскакивает Nag-Screen, где предлагается купить данную прогу, или использовать ее в течение 30 дней. Но мне то 30 дней мало, да и Nag-Screen раздражает. Поэтому исследуем защиту этой программы. Для начала переведем системное время, для того чтобы посмотреть, как реагирует на это программа. Кстати, это не лучший способ, если программа действительно нужная, а где хранится информация о дате запуска ты не знаешь и как построена защита ты не разобрался:), потому что есть перспектива вообще не попользоваться программой, но у меня привычка так делать. Короче, перевожу время на год. Чего на год? Да так просто:) Можно и на 31 день. Все перевели время? Молодцы!! Запускаем программу. Выскакивает Nag-Screen, где предлагается купить программу. Все, программой больше пользоваться невозможно. Ну, дальше я не знаю, что делать, думайте сами. До свидания, до следующего моего тутора.......:)

Шутка:). Ставлю Filemon, Regmon. Смотрю, к чему обращается программа при запуске. Удаление разделов реестра, связанных с программой ни к чему не приводит, программа по-прежнему не запускается. Просматриваю обращение программы к файлам. Одним из файлов является Zllictbl.dat. Расположенный в Windows\System. На системный файл мастадая он никак не смахивает. Удалим его. Запускаем программу, и, о чудо, она думает, что ее запускают первый раз. Можно было конечно удалять каждые 30 дней этот файл, но это не рулез, да и Nag, появляющийся при запуске, раздражает. Попробуем его убрать. Загружаем программу в отладчик, я использую TRW2000, и потрассируем по F10.

Проходя через 0041614B call 00411069 вываливается наш Nag. Жмем на нем кнопку с надписью Cancel и попадаем опять в отладчик. Ставим точку останова на адрес 0041614B.(bpx 0041614B) и по F5 выходим из отладчика. Затем загружаем программу опять в отладчик. Нажимаем F5, вываливаемся и тут же попадаем опять в него. Сработала наша точка останова. Заходим в эту процедуру по F8 и трассируем по F10 дальше. Проходя через

004111B4 call FRAMEWRK.?QueryTrialInterface@ZTrial@@QAEKPAUHWND__@@H@Z, вываливается наш Nag. Нажимаем Cancel и попадаем опять в отладчик. Ставим теперь точку останова на адрес 004111B4, повторяем те же шаги, что и первый раз и вываливаемся в отладчик по адресу 004111B4. Заходим в процедуру, расположенную по этому адресу (F8). И попадаем в файл framewrk.dll. Трассируем дальше по F10. Проходя через

017263E6 call FRAMEWRK.?TrialUnlock@ZTrial@@QAEKPAUHINSTANCE__@@PAUH WN D __@@PAULICENSE_TABLE_ENTRY@@H@Z, появляется знакомый, и успевший надоесть нам Nag-Screen. Поступаем, как и в предыдущих случаях. Заходим в процедуру по адресу 017263E6 и трассируем дальше по F10. Проходя через

01726ADF call FRAMEWRK.?LaunchTrialDialog@ZTrial@@QAEKPAUHINSTANCE__@ @PAUHWND__@@PADKKPAULICENSE_TABLE и опять появляется наш Nag-Screen. Делаем, как и раньше. После захода в процедуру по адресу 01726ADF трассируем по F10. Проходя через

0172670D call dword ptr [eax+00000098] появляется Nag. Повторяем предыдущие шаги. И после захода в функцию по адресу 0172670D доходим до места 01714183 сall USER32! DialogBoxParamA. Ну, наконец то, нашли место, чем изначально был вызван наш Nag-Screen. Покрутим экран в отладчике немного вверх. Никаких прыжков (условных переходов) через эту функцию не видно. Значит, надо было прыгать раньше. Кстати теперь все нужные адреса у нас есть и отладчик можно больше не использовать, а воспользоваться, например, Win32Dasm'ом. Загрузим файл framewrk.dll в него. Посмотрим, есть ли прыжки через предыдущую процедуру. Перейдем на адрес 0172670D и посмотри команды выше этой процедуры. Опять ни чего нет, значит надо вернуться еще на одну процедуру назад, она расположена, как мы помним, по адресу 01726ADF. Посмотрим немного повыше и по адресу 01726AC4 видим прыжок через нашу процедуру.(je 01726AE7). Попробуем поменять его в НIEW'е на противоположный (на jne 01726AE7). Не забудьте, в Hiew загружаем файл framewrk.dll. Меняем джамп. Запускаем ZoneAlarm и нашего Nag-Screen'a как не бывало. Вот собственно и все. Это тот случай, когда разработчики программы не стали отрубать некоторые функции после окончания триального периода, как это часто бывает. Поэтому достаточно поменять условный переход перед вызовом Nag-Screen'a, чтобы его убрать, и тем самым получить работоспособную программу.

З.ы. Да, совсем забыл, перед установкой каждой новой точки останова, желательно убирать предыдущие (команда bc), а то после нажатия F5, будет срабатывать сначала предыдущая точка останова.


Warning!!! Данный материал публикуется исключительно в ознакомительных целях и для указания разработчикам программ на дыры в защитах. Использование данной информации в противозаконных целяхзапрещено.

crage Digital Daemons ( crage@lowlevel.ru )

  SOFT
 
 
 
 
  INTERNET
 
 
  STUFF
 
 
 


@ library.by