И снова баннеры - Download Accelerator 5.3.0.0
Оформил: DeeCo
Автор: http://www.cracklab.narod.ru
Page: http://www.downloadaccelerator.com/
[Вступление:]
Мне захотелось чего-нибудь поломать, я зашёл на download.com.com и
нашел там это чудо. Программа очень странная, потому как вся
документация, все хелпы и readme находятся в ... Интернете! Так что я
не смог прочитать ни сколько стоит прога, ни как её зарегить.
Наверное, американосы уже привыкли, что у каждого должна быть
выделенка, а диал-ап с поминутной оплатой - это для них то же самое,
что для нас чунгачкук с луком :)
[Беглый осмотр:]
Я запустил прогу и первое что я увидел - это большой баннер с
рекламой. Ну вот, опять баннеры, а с другой стороны вспомню как эту
хрень убирать :)
[Начинаем:]
В борьбе с баннерами есть 2 ключевых момента:
1) Отключить механизм загрузки самих баннеров из Инета, т.к. это
занимает и без того небольшую скорость моего модема.
2) Найти процедуру создания окошка с баннером и сделать так, чтобы
размер баннера в высоту стал равен 0, и подтянуть все остальные
окошки вверх до упора под главное меню.
[Приступим к пункту 1:]
Для начала я дизассемблировал программу в W32Dasm'е и защел в String
Reference. Там было дохрена всяких строк, но я искал пока неизвестно
что и...нашел строку:
* Possible StringData Ref from Data Obj ->"http://ads.downloadaccelerator.com/cgi-bin/ads"
ОООчень похоже на адрес, откуда прога тянет картинки баннеров, это
видно по "ads", что очень часто расшифровывается как ADultSystem :)
вот и отлично, можно прямо щас затереть в программе этот адрес и
больше прога никуда не сунется. Этот вариант лучше, чем искать
таймер, затирать вызовы функции, потому как такие затирания могут
нарушить работу проги, а нам это не надо, так что обойдёмся малой
кровью. Затираем.
[Приступим к пункту 2:]
Это уже посложнее, потому как единого подхода к этой проблеме нет и
каждый раз чего-то новенькое приходится выдумывать. Для начала я взял
утилиту Spy и выяснил, что баннерное окно - это (как обычно в таких
ситуациях) два окна: одно родительское (617x80) другое - сам баннер
(468x60) размеры баннерного окна говорят уже о том, что он - баннер.
Теперь мне нужно найти функцию создания этого окна, а в функцию
параметры чаще всего передаются через стек, т.е. командой push.
Значит мне нужно найти команду: push 00000050
т.к. высота окна 80 = 50h
Я открываю DAP.exe в HView, перехожу в режим ассемблера и нажимаю два раза F7
это поиск по ассемблерной команде, ввожу туда push 50 и начинаю искать.
Такая команда встречается 7 раз. Теперь я методом тыка по очереди в каждом из
семи раз меняю push 50 на push 00, т.е. чтобы размер окна был равен 0, и
проверяю. На четвертой попытке у меня получилось:
.00461F2D: 6A02 push 002
.00461F2F: 6A50 push 050
.00461F31: 50 push eax
.00461F32: 6A00 push 000
.00461F34: 6A00 push 000
.00461F36: 6A00 push 000
.00461F38: 8BCE mov ecx,esi
.00461F3A: E8737F0400 call MFC42.6197
Очень похоже на вызов функции создания окна. Меняем по адресу 00461F2F:
push 50 на push 00 и запускаем программу:
Окна с баннером больше нет, а все остальные окна подтянуты под главное меню.
УрА!
Исследовал и наваял туториал:
vallkor //PTDS
E-mail: vallkor@chat.ru (vallkor@etel.dn.ua)
Page: http://vallkor.chat.ru
|