ft-online.info tonik@mail.kz Бесплатный электронный оффлайн журнал информационных технологий |
Выпуск № 8 | 19 Сентября 2004 |
|
|
Итак, недавно мне попался популярный 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, будет срабатывать сначала предыдущая точка останова.
crage Digital Daemons ( crage@lowlevel.ru ) |
|
|