Давненько у меня под тегом Viruses ans Spam ничего не было.
12.04.2018 в 23:59
Пишет
zHz00:
CDBurnerXP и нежелательное ПО
Предупреждаю, что кликанье по ссылкам в этом посте может быть опасно для вашего компьютера. Делайте это на свой страх и риск. Когда дочитаете, поймёте, почему.
Когда я переезжал на новую систему, я в том числе собрался ставить ПО для прожига жизни дисков. В старой системе у меня для этого стоял CDBurnerXP. В этот раз я решил его же поставить -- программа проверенная.
Пошёл на официальный сайт, указанный на Википедии -- cdburnerxp.se/
И прямо оттуда скачал дистрибутив. Запускаю установщик и вижу следующую картину:
Вроде более-менее стандартно, за исключением того, что галочка не снимается. Да. Галочка не снималась! Нажатие ТАБ также не позволяло переключиться на галочку. Хрен с ним, поставил я Оперу, а потом удалил. Основная программа работала нормально.
Больше чем неснимаяемая галочка меня в свое время удивили только уговоры деинсталлятора не удалять программу ну пожалуйста (zhz00.diary.ru/p175908134.htm ).
Так бы и остался этот случай простым курьёзом, кабы я не захотел добыть доказательства того, что эта галочка -- нарисованная! Мне казалось логичным, что если галочка не снимается, то она просто вшита в картинку. Надо достать из инсталлятора эту картинку -- и дело в шляпе.
(инсталлятор Пандоры)Стал расковыривать инсталлятор. Resource Hacker в ресурсах не нашёл ни одной подходящей картинки. Движком установщика оказался InnoSetup. Вопспользовавшись innoextract.exe, я обнаружил, что в распакованных файлах данной картинки также нету.
Вывод напрашивался сам собой. Картинка качается на ходу из интернета. Проведённые испытания гипотезу подтвердили: при отключении сетевого кабеля экран с рекламой не показывался, а установка сразу переходила к следующему шагу.
Теперь надо бы посмотреть, откуда эта картинка качается! Я знал, что procmon.exe имеет раздел "работа с сетью", хотя никогда им не пользовался. Запустил процмон, запустил установщик.
Однако блок рекламы мне не показали. Сетевой кабель был подключён. Я подумал сначала, что у установщика счётчик стоит. Типа если десять раз установку прервали, перестать показывать рекламу. Потыкал ещё несколько раз -- рекламы не было. Ладно уж, сворачиваю исследования. Закрыл procmon.exe.
А потом зачем-то ещё раз запустил установщик. И реклама появилась. Закрыл установщик. Запустил процмон, запустил установщик -- реклама пропала!
Тогда я сделал копию процмона под именем o.exe и запустил её. При запущенном процмоне с другим именем файла реклама опять появилась.
ТО ЕСТЬ установщик проверял, запущен ли процмон. И если не запущен -- показывал рекламу. Довольно вирусное поведение!
Это меня заинтриговало.
Обращений к сети ни в одном случае не было. Однако я обнаружил обращение к одному графическому файлу под именем bg_test_B[1].png. Он лежал в кэше интернет эксплорера! (т.е. ...AppData\Local\Microsoft\Windows\Temporary Internet Files) Я открыл этот файл и обнаружил там вот что:
Рамочку я специально сделал, чтобы было видно, что снизу присутствует прозрачный прямоугольник. Это, очевидно, было фоновое изображение рекламы. Но галочки там не было, так что моя исходная гипотеза о том, что галочка была впечатана в картинку, не подтвердилась.
Всё оказалось хуже. Т.к. это был кэш интернет эксплорера, было легко определить URL этой картинки. Адреса на самом деле было два:
img.totafofesos1.com/img/Rowabobeso/bg_test_B.p...
img.rudepedexe1.com/img/Rowabobeso/bg_test_B.pn...
Довольно вирусные адреса, надо сказать. Поэтому я скачал DrWeb CureIT! и проверил им компьютер. Система была чистой. Тогда я проверил только один инсталлятор. И там обнаружилось вот это:
E:\backup\downloads\cdbxp_setup_4.5.8.6795.exe\{tmp}\WkoBCrtu.dll - infected with Trojan.InstallCore.3235
Замечу, что инсталлятор имел цирофую подпись изготовителя и был скачан с официального сайта через хттпс. Поэтому 99%, что разработчики знали, что у них находится в инсталляторе.
А вот что по поводу инсталлятора сообщил himself:
Там внутри лежит DLL WkoBCrtu.dll, которая и занимается этой хренью, видимо. Экспортирует кучу явно обфусцированных функций.
en.wikipedia.org/wiki/InstallCore - это вот что. DLL эта встроена при помощи inno setup custom steps. Это на дельфи-подобном языке пишешь скрипт для дополнительных нестандартных страниц инсталлятора. Если ты распаковал установщик, этот скрипт можно найти скомпилированным в embedded/CompiledCode.bin. Если посмотришь, он вызывает все эти обфусцированные функции.
Скорее всего, установщик основной написан на инно, а эти страницы просто загружает из installcore-дллки, а она уже из сети спрашивает.
В общем, по-видимому, галочка умышленно была сделана неснимаемой. А что разработчики знают, что у них что-то нехорошее встроено в установщик, указывает следующий факт.
Если не кликать на их сайте сразу на ссылку для скачивания, а перейти в раздел Downloads, то можно увидеть, что там есть такая незаметная ссылочка -- More download options. И вот если по ней кликнуть, откроется список закачек, где отдельным разделом будет "Default installer (Without installCore)".
Поверхностное гугление показывает, что нежелательное ПО встроено в установщик с 2014 года, но тогда был другой тип.
Короче говоря, дискредитировал себя в моих глаза CDBurnerXP. Если знаете другие бесплатные писалки дисков с поддержкой блюреев с данными, прошу сообщить.
URL записи
@темы:
Этот безумный мир,
Viruses and Spam
Я тоже давненько ничего вирусоподобного не препарировал))
Про кэш IE позабавило. Скорее всего InstallCore использует WinInet API, и с первого раза картинка скэшировалась, а потом уже каждый раз тянулась именно из кэша. Ничего вирусного в этом поведении нет.
Кстати, галочки стоит проверять через Spy++ какой, а не ресурсы потрошить. Хотя, если программа использует гткаку или какой другой Qt, то окажется, что даже рабочие контролы тупо нарисованы.
Да, WinInet очень возможен, поэтому и не были видны признаки работы с сетью -- и файерволл тоже не отработал.
Spy++ никогда не использовал. Спасибо, при случае воспользуюсь. Это установщик, поэтому никакие гтк и кутэ не используются. Вивисекция показала, что установщик сгенерирован при помощи InnoSetup.
Потрошить ресурсы смысла дейтствительно было мало, а вот потрошить при помощи специальных утилит потрошения установщиков -- смысл очень даже был. Они всё показали, что есть.
Не хочет, чтобы копались в коде, блюдёт копирайт. Короче, есть куча объяснений.
не были видны признаки работы с сетью -- и файерволл тоже не отработал.
Я же говорю, файл скэшировался, поэтому работы с сетью быть не могло в принципе.
смысл очень даже был
И всёже я рекомендую сначала начинать изучать живую прогу, а потом уже потрошить её тело.
Держи извращенца!
>>Не хочет, чтобы копались в коде, блюдёт копирайт. Короче, есть куча объяснений.
Объяснений действительно куча, но поведение от это не перестаёт быть вирусоподобным. Да, я считаю, что если, к примеру, система защиты от копирования прежде, чем начать работу, проверяет, что она не под отладчиком, не в виртуальной машине, а только после этого проводит проверку подлинности (чтобы никто не раскрыл, как она работает), то она ведёт себя подобно вирусу.
>>Я же говорю, файл скэшировался, поэтому работы с сетью быть не могло в принципе.
Да, возможно и так. А возможно, что обращения в сеть делались от лица интернет эксплорера. Но проверять мне лень.
>>И всёже я рекомендую сначала начинать изучать живую прогу, а потом уже потрошить её тело.
Кстати, а почему?
А возможно, что обращения в сеть делались от лица интернет эксплорера. Но проверять мне лень.
WinInet – это и есть IE :} Точнее, API, использующееся IE внутрях.
Кстати, а почему?
Потому что быстрее и удобнее. Если видишь галочку, которая не нажимается, запускаешь Spy++ и смотришь, есть ли вообще у окна инсталлера дочернее окно, которое и представляет собой эту галочку. Если есть, смотришь свойства, блокировки там или ещё что. Это гораздо быстрее и информативнее, чем выискивать картинки в ресурсах.
>>WinInet – это и есть IE :} Точнее, API, использующееся IE внутрях.
К сожалению, я не знаю, как эта штука устроена. Работает ли АПИ от лица процесса напрямую? Или он посылает запросы какой-нибудь ерунде, которая сама качает из интернета, а потом возвращает результат? Если второе, то обращения к сети от данной программы не будут фиксироваться ни с кешированием, ни без.
>>Потому что быстрее и удобнее. Если видишь галочку, которая не нажимается, запускаешь Spy++...
Окей, спасибо! Когда представится случай -- испытаю такой метод.
Работает. Весь интерфейс – библиотека WinInet.DLL, которая программой. Все запросы идёт именно из программы, а не сторонней фигни.