Исследование ShadowSecurityScanner 3.09.
Программу можно слить отсюда.
Использованные инструменты:
1) Win32Dasm;
2) Любой HEX-редактор.
Цель:
Пойдём самым лёгким и коротким путём, не будем влазить в дебри кода (программа написана на Делфях) и заниматься поиском валидой регистрационной информации, самым лёгким и коротким будет ликвидация нага при старте и 30-дневное ограничение. Остальные функции незарегистрированной копии программы не ограничены.
Исследование.
Первое, что я сделал это натравил на жертву WinDasm, получив листинг я просмотрел String References, но ничего интересного там не обнаружил:(. Поэтому я загрузил отладчик и запустил его, тут меня ожидал сюрприз:), программа показала загрузочный экран и затем завершилась одновременно закрыв и отладчик:). Автор применил антиотладочный приём!, надо-бы его ликвидировать:).Давайте посмотрим насколько это сложно реализовать. Загрузим вновь жертву в Windasm и потрассируем немного в пошаговом режиме, как только вы окажитесь в таком месте: :00577C20 E9EBBCE8FF jmp 00403910
:00577C25 EBEC jmp 00577C13
:00577C27 E88CE5FFFF call 005761B8 -мы здесь
зайдите в эту прцедуру, потому что именно в ней расположен код, выключающий отладчик. Дальше трассируем до такого места:
:005761EF E81CE7FFFF call 00574910
:005761F4 807B1800 cmp byte ptr [ebx+18], 00
:005761F8 7556 jne 00576250 -1 если переход (1) не будет выполнен, то программа завершится, закрыв отладчик, поэтому дойдя до этого перехода меням значение флага Z на противоположное и совершаем переход, дальше жмём в отладчике F9 и видим что программа загрузилась без наг-скрина. Давайте проверим, как это будет работать без отладчика. Откроем сканер любым HEX-редактором, перейдем на адрес 1755f8 (offset) и поменяем значение 7556 на eb56 - это опкод безусловного перехода jmp , сохраним сделанные изменения и запустим программу, всё работает. Так, теперь проверим будет ли программа работать после окончания триального периода в 15 дней, переведём часы на месяц вперёд и запустим сканер, как это ни странно всё работает;).
By GoKs 9.05.01
<= Вернуться к статьям
|