Начиная с 3-й ветки в µTorrent была добавлена назойливая реклама, которая мне совсем не нравится, и хотя её можно отключить, я решил немного поэксперементировать и посмотреть на это с другой стороны. Инструментарий: 0) PeID для просмотра упаковщика файла. 1) OllyDbg (можно и без него). 2) Любой редактор позволяющий просматривать hex, я предпочитаю WinHEX. 3) Любой хостинг, включая бесплатные. 4) Анализатор трафика. Первым делом нужно рассмотреть жертву. На помощь приходит PeID. Как видно файл запакован распространенным пакером Upx, который можно распаковать любым анпакером, к примеру UpxUnpacker. Просто перетаскиваем наш файл в окно программы. Готово, бэкап файла создан, размер увеличился, файл запускается без ошибок. Следующим шагом рассмотрим откуда µTorrent просит рекламу, для этого можно воспользоваться любым анализатором трафика, в данном случае заюзаю HTTP Analyzer. После запуска анализатора и "подопытного" становится видно, что рекламу он тащит с адреса http://offers.bittorent.com/params... Что ж, рассмотрим под отладчиком, может есть что в открытом виде... Действительно адреса расположены в секции данных. Скопировав последовательность байт адреса, идем в HEX редактор. После поиска шестнадцатеричных значений видим такую картину: И меняем байты адреса на свой, я буду использовать свой тестовый хост http://stackoff.ru/test.php В результате получается: Если ваш адрес длиннее, начального затираем остатки нулями до символа "j". Пол дела сделано, теперь нужно подсунуть свои данные и рассмотреть что к чему. Судя по данным анализатора, в результате обращения мюторрента к серверу рекламы, он ждёт данных в формате "json". Дадим их ему. Примерная структура ответа такова: PHP: {"ads": { "version": 1, "count": 1, "ad": [ { "adunitid":0, "adunitgroup":0, "adid":0, "type":"image", "html":"", "is_fallback":0, "creative":[ { "width":"188", "height":"250", "alt":"{\"loc\":1,\"clickUrlType\":1}", "mime":"image/png", "media": "ссылка на изображение", "tracking":{ "impression":"", "inview":"", "click":"адрес" } } ] } ] } } Поэксперементировав, было выяснено, что данный набор необходим в полном составе, иначе парсер программы не может работать корректно. За внешний вид рекламы отвечает секция "creative", в которую мы и подсунем свои данные. Нам интересны: "type", "alt", "mime", "media" и "click". Как можно понять "type" - тип, во всех запросах мне кроме "image" ничего не встречалось, но видимо можно работать с video и flash. "alt" - довольно важный блок, в его состав входят "loc" - он отвечает за расположение блока рекламы, поддерживает два значения - это 1 и 0. 0 - означает верхний баннер, 1 - левый блок. Для наглядности: http://makescreen.ru/i/8445a558339aee5cdf71b03a2cde9d.jpg - 0, http://makescreen.ru/i/556484795be6e60a5cae60f4c5b608.jpg - 1. "clickUrlType" - интересная опция, в случае, если выставлена единица, то при клике страница откроется прямо в окне µTorrent'а с использовнием штатных средств IE, в случае двойки - откровется в браузере установленном по умолчанию, у меня это Firefox. "mime" - контент-тип. "media" - адрес ресурса, в данном случае изображения. "click" - адрес перехода по клику на баннер. Вроде всё. Попробуем выдать результат. в файле test.php у меня такое содержание: PHP: <? header("Content-type: application/json; charset=utf8"); ?> {"ads": { "version": 1, "count": 1, "ad": [ { "adunitid":0, "adunitgroup":0, "adid":0, "type":"image", "html":"", "is_fallback":0, "creative":[ { "width":"188", "height":"250", "alt":"{\"loc\":1,\"clickUrlType\":1}", "mime":"image/png", "media": "http://stackoff.ru/images/VY_CMa.jpg", "tracking":{ "impression":"", "inview":"", "click":"http://antichat.net/" } } ] } ] } } Можно конечно генерировать содержание и выдавать, предварительно обработав результат в json_encode, но в данном случае для примера это голый html. Результат нашей работы... В случае если "clickUrlType" = 1, после клика на рекламу получим следующее: Для чего это. Проделав данную работу и пошевелив веществом в черепной коробке можно придумать массу способов для монетизации. Первое что приходит в голову - это оплата за клики на различных партнерках, реклама своего продукта, либо оплата за показы, ну тут уже решает фантазия. Раздав данный файл паре друзей можно собрать неплохое количество трафика, ведь кто сейчас не пользуется торрент-клиентами? Автор не несет ответственность за действия граждан вставших на черный путь и использующих данный материал в корыстных целях, все вышеизложенное только для ознакомления.
Ждём статью как подменить оригинальный файл на оф. сайте своим. P.S. Пара друзей как бы некатит. P.P.S. Второй вариант: самообновление на модифицированный нами клиент. За статью +
Оригинальный файл подменять не нужно, не берите на себя грех, довольно много товарищей качают uTorrent с левых варезников, а также с локальных ресурсов стоит только дать нужную рекламу.
Клиент обновился и писец нашей рекламке P.S. Поснифай тогда откуда обновляется и подсовывай свеженькую модифицированную версию.
Вообще можно отключить обновления, они не нужны В каждой новой версии ничего не менятеся только рекламу пихают Старый был лучше и удобней каким именно отладчиком пользовались?
Я не преследовал цели более глубокой модификации. Это лишь простой пример. Все адреса лежат в открытом виде и их модификация думаю не вызовет трудностей. jyjy, отладчик указан в начале. Инструментарий:
Можно ещё в host заглушку поставить на ихние URL адреса с офферов, так удобней и проще, чтобы жертве пихнуть..
Мне кажется там кроются куда большие возможности, по ходу просмотра файла, пару раз обращал внимание на execute функцию, которая судя по всему дает возможность запуска сторонних программ, а это уже большая дыра.
Щас поколдую... АП: https://apps.skype.com/home/index.php вот сюда заглушку надо ставить, щас ещё гляну
Мда... Зачем пляски с анпакерами, отладчиками и редакторами, когда можно проснифать трафф и повесить заглушку на hosts? Если речь идет о "монетизации", то все ясно, хотя это бред полный. Мне кажется, ты сильно преувеличиваешь. Что нужно будет, чтоб заюзать эту execute-функцию? Заставить юзера скачать патченный клиент? Запустить стороннее приложение? Понимаешь, к чему я клоню?
Да + возможность подмены обновлений типа такого: в сеть выкладывается патченый клиент и раскидывается по самым разным софт-ресам, по уровню спокойно потянет на бонет, притом весьма мощным, если копия широко разойдется