пятница, декабря 26, 2014

Игрушечка-9 или Sharing-2

В последнее время основным способом эксплуатации программки LastFM Writer стало распознавание треков при прослушивании радио. Интернетное радио слушаю на планшете/десктопе при помощи турецкой программы RADYO, данные из которой через Sharing подаются в LastFM Writer и отправляются на сервис Last.fm. При прослушивании эфирного радио (в основном, “Радио джаз”) для распознавания треков использую программу Shazam на телефоне или планшете, результаты работы которой тем же путём отправляются на сервис Last.fm. Музыка с YouTube слушается примерно так же.
И всё бы шло своим чередом, но на ребят из Shazam напал зуд рационализаторства. Программка, может, и лучше стала работать (как они сами говорят), но формат данных для обмена они поменяли. Раньше обычным текстом писали типа “Я только что прослушал «С чего начинается родина» от Кобзона” на разных языках, теперь же выдают нечто вроде вот этого, без всякой локализации. Как из этого получить данные трека, неясно. Не парсить же страницу… Обращение в суппорт Shazam сделать как было принесло радостный ответ с уверениями, что как только разгребут завалы писем, так сразу моё и прочитают. Неделя прошла – пока не прочитали.
Так и пришлось (другой-то такой программки и нет) парсить страницу по адресу, благо, страница оказалась небольшой и данные не закопаны глубоко (хотя, резервы есть и любители подковать блоху не переводятся не только на Руси).
Но основной-то подвох заключался в другом – изменили не только состав информации на обмене, но и тип объектов, которые программка отдаёт по шарингу.  И никому, как водится, об этом не сказали. И самому об этом узнать непонятно как.
Сделать обмен в эмуляторе телефона под отладчиком не получается – на эмулятор нельзя поставить программу из магазина. Сделать обмен на настоящем телефоне тоже не получается – программка использует SQLite, вследствие чего компилится под платформу x86, а Студия не представляет, как такую конструкцию в телефон засунуть. Так и пришлось писать специальное «универсальное приложение» для изучения шаринга. Попутно выяснилось, что на телефоне отладчик студии бесполезен – после запуска обмена с приложением отладчик от него отцепляется. На десктопе, правда, ничего не отцепляется, но и Shazam здесь ещё не обновили…
В итоге пригодились старые верные способы “отладка методом пристального взгляда” и “исследования протоколов работы”. Получилось достаточно универсально, чтоб и других умников-рационализаторов охватить по возможности.
В общем, слушаем радио дальше…

четверг, октября 16, 2014

Игрушечка-8 или Windows 10

Как всё прогрессивное человечество, скачал и установил на виртуалку то, что все давно ждали – очень универсальную ОС Windows 10. Поудивлялся, что не “9”, но не долго (хозяин – барин, мой рояль, куда хочу, туда и ставлю). Установил из магазина свою программку и решил посмотреть, как использующиеся в ней разные технологии работать будут.
На втором же шаге выяснилось, что одна из SettingsFlyout, использующихся для настроек программы, не желает работать - другие вполне себе работают, а эта молча не показывается вовсе.
После запуска программки на windows 10  под отладчиком на проблемной страничке прямо в конструкторе получаю ошибку с сообщением "XAML parsing failed.". Вот и здрасьте...
Бля!!! Дело оказалось в задании значений для комбобокса:
<x:Int32>50</x:Int32>
<x:Int32>100</x:Int32>
Заменил целые на строки, и всё стало работать:
 <x:String>50</x:String>
<x:String>100</x:String>
Пришёл к выводу, что в дальнейшем такие вещи надёжней делать в коде, хоть в конструкторе XAML и удобней иногда. Мало ли, какие ещё глюки в XAML-парсер добавят. И как оно там будет, когда эту “универсальную” ОСь на телефон поставят…

Игрушечка-7 или Локализация-2

Предыдущая “Локализация” была про нехватку стандартных средств XAML для локализации. Нынешняя – про то, что не всегда можно делать так, как кажется логичным.
У элементов интерфейса есть два атрибута – x:Name="MyControl" и x:Uid="MyControl". Первый используется в коде как имя переменной, обозначающей этот элемент, второй – в ресурсах со строками для локализации как префикс имени нужной строки (напр., MyControl.Text и т.д.). Нигде значения этих атрибутов не пересекаются и, по логике, вполне могут иметь одинаковые значения – удобно же, особенно, когда контролов много, оперировать с одинаковыми именами.
Но у изобретателей XAML-парсеров своя логика… До некоторого уровня сложности (количества нагромождений элементов разметки, методов и свойств объектов в программе) она совпадает с моей – всё компилировалось, загружалось на телефон и десктоп, запускалось, локализовалось и работало. С какого-то момента, запустив программку на эмуляторе телефона, получил сообщение о необработанном исключении при парсинге XAML в методе InitializeComponent(). При этом, естественно (метод-то не мой, хоть и можно Студией залезть) внутри него толком ничего узнать не получается. Сообщается, что ошибка в такой-то позиции такой-то строки. И поди догадайся, что строку надо искать в файле, который генерит препроцессор XAML… Вот тут-то, при разглядывании этого файла, и рождаются подозрения, что атрибутам x:Name и x:Uid нужно обязательно задавать разные значения… И действительно, после изменения одного из них XAML начал успешно парситься.
Где это говорилось про одну ОС на всех устройствах? Пускай бы парcер XAML одинаковый был, это, вроде, попроще…

среда, июля 30, 2014

Как у всех…

Давно с прискорбием констатирую, что качество программного обеспечения (ПО) постоянно снижается (говоря “толерантно” - не улучшается). Добавят в программу (операционную систему, инструмент управления и т.д.) новое средство, свойство и т.п. – и с ними новые ошибки. А старые исправлять – недосуг, надо вперёд мчаться, как маркетинг и экономическая модель велят.

В итоге может случиться всё, что угодно. Например, самая супер-распупер ОС Windows 8.1 на моём десктопе временами может вывести из себя и не пустить обратно… Загрузка из выключенного состояния до рабочей обстановки (запустить ФАР, Студию, браузеры с 15-20 окнами, OneNote и некоторые мелочи) занимает минуты полторы или две. Та же обстановка из состояния “сна” получается через 5 минут или больше. Ну, не переносят многие программы этого сна, трудно просыпаются, как с похмелья или после тяжёлых наркотиков. И ладно бы это были подозрительные примочки типа Punto Switcher, но это и MS-мышка, VS 2013, и ИЕ 11, и Ёксель 2013, и Хром. Их всех приходится, как правило, перезапускать. И такое не только после “сна”, но и после 30-40 минут простоя. Эти ребята, похоже, думают, что кроме планшетов и телефонов других компьютеров не осталось. Остались ещё десктопы, и не надо на них экономить без моей просьбы, засовывая “нормальные” программы в состояние Suspending, как метрошные игрушки.
Большой Брат, фиг ли…Палец вниз

Равняются на него, Большого, и братья поменьше. Например, есть такая программка μTorrent – всегда считал её в некотором роде образцом: маленькая, ресурсы почти не жрёт, сколько заданий ей ни подкинь, как бы плохо ни работала сеть – программка методично исполняет свою работу и рано или поздно – иногда и через месяц-два - файлы у тебя будут. Постепенно, с добавлением новых фич, типа рекламы всякой дряни, “встроенного” проигрывателя и много чего ещё не менее полезного, ресурсы стали пожираться весьма заметно. “Усовершенствовали” также алгоритмы работы с полученными данными – запись на диск, кеширование (может, ещё чего-то, но эти видны невооружённым глазом).

В итоге все эти “доработки” – сейчас версия 3.4.2 (может, также во взаимодействии с “восьмёркой”) - приводят к зависанию на заданиях сложнее, чем скачивание одиночного файла размером 50 Мб. Начало это проявляться на планшете (там можно ещё списывать на общую слабосильность и медленные “диски”), но вот вчера программка сумела подвесить мне десктоп с 4-ядерным i7, 15 Гб памяти и SATA-диском.  А всего-то попросил скачать сериал Клиника (около 200 файлов общим объёмом 49 Гб). И не то, чтобы висит ОС насовсем, но и не качается ничего, только программа место под файлы занимает (100% загрузки диска, за 1.5 часа разместила 10 Гб), и выгрузить программку цивилизованно нельзя, только кувалдой. [На планшете в таком состоянии и кувалдой не получается, приходится hard reset применять…].

То ли это такая “борьба с пиратством”, то ли полная деквалификация разработчиков… Надеюсь, что, всё же, второе – косорукие они, но не самоубийцы же… Может, садисты, правда. Схожу с ума от злости

А выручает в торрент-делах, как ни забавно, метрошная программка Torrex. На планшете работает совсем без сбоев (там простые задания), на десктопе же несколько раз останавливалась с сообщением о недостатке памяти (!?) и пару раз завалилась с сообщениями о конфликтах блокировок. С кем она там конфликтует, понять не удалось, но программка сразу возобновляла работу после перезапуска. Палец вверх

суббота, июля 26, 2014

Игрушечка-6 или Списки значений

В программку добавил поддержку работы с базой данных. SQLite, конечно, других-то для “универсальных программ” и нет (что, конечно, весьма удивительно – всегда же был SQL Server compact edition). Цель, собственно, была простая – при отсутствии связи с сервисом Last.fm сохранить на время информацию о треке, чтоб потом её отправить повторно. Так, собственно, известные мне клиенты сервисов и делают. Рефлексы не позволили делать ненормализованную таблицу треков, в результате появились таблицы-справочники названий треков и альбомов, а также имён исполнителей. Ну, и чтобы добро не пропадало, сделал пополнение этих справочников при каждой отправке данных на сервис.
Хорошо, но мало: справочники растут, а пользы от  этого никакой. Первая мысль – сделать на их основе автодополнение для ввода в форме программы. Ура! Одна малость – подходящих под эту задачу контролов как-то не наблюдается ни среди стандартных, ни среди розданных на халяву фирмой Terlerik. Пришлось сооружать такой контрол самостоятельно. Контрол получил гордое имя “TextBoxWithList”:
image
После ввода с клавиатуры нескольких символов список заполняется подходящими значениями из справочника и выводится на дисплей:
Windows 8.1. WinPhone 8.1
more-artists more-albums
В основной форме пришлось помещать элементы в Canvas, без чего получалась мешанина:
image
Собственно, всего этого достаточно, если бы не одна малость – на телефонах работает как задумано только на 6” устройствах. На меньших экранах с третьим полем формы случается неувязка: выпадающий список практически полностью перекрывается находящейся в этот момент на экране клавиатурой. Для других полей список перекрывается частично и это не мешает им воспользоваться:
more-tracks
Сразу же возникает мысль использовать suggestions клавиатуры, однако обращение к собратьям эту мысль на время похоронило. Не придумал ничего лучшего, как при появлении списка сдвигать все элементы вверх, для чего пришлось прикрутить к контролу событие VisibilityListChanged, в обработчике которого и двигаются элементы формы:
more-artists
Вариант с рисованием списка выше поля ввода мне не нравится – и сам контрол надо переделывать, и основная форма ещё больше станет станет различаться в вариантах Windows/WinPhone, от чего Студия свихнётся окончательно...

Игрушечка-5 или Локализация

Представляется естественным каждое приложение делать двуязычным – на русском и английском языках. Собственно, это и, в некотором смысле, хорошо как для собственного развития, так и полезно для дела – представляю обалдевшие физиономии тестеров из “Магазина приложений” при виде программы, поддерживающей только русский (казахский, украинский, санскрит и т.д.).
XAML, который используется для разработки нашей программки, имеет собственные средства для локализации элементов интерфейса. Но не всех, для которых приходится выдумывать собственные средства. Например, вот такой класс пришлось сочинить:
image
Второй интересный вопрос – где брать локализованные строки. В смысле, чем переводить…Если с русско-английским переводом сильно больших проблем не возникает – программка Babylon Translator (переводчики Google и Bing переводят гораздо смешнее) помогает вполне пристойно, то с переводом на украинский хуже. Babylon делает очень смешно – переводит русские строки на английский, результат уже переводит на украинский. В итоге получаем смесь украинских и английских слов. Хорошо, что существует специальный ресурс pereklad.online.ua, который умеет переводить напрямую, без английского.
На результаты, поставленные рядом (по жизни их рядом нигде не видно, даже в магазине)  смотреть довольно забавно:
3-2.testTrack 3-2.testTrack form-2-green-2
Страница с описаниями -  здесь, программы можно взять в магазинах:
   

воскресенье, июня 01, 2014

Игрушечка-4 или Sharing

В программке для отправки данных на сервис Last.fm использовал приём и обработку информации от других программ. Использовал тексты, которые парсятся при помощи регулярных выражений.
Достаточно случайно заметил, что некоторые программы могут делиться не только текстами и скриншотами, но и выделенными в них файлами:
image
Пришлось сделать обработку этих файлов – извлекать из них, если есть, медиа-информацию, и отправлять её на сервис. Благо, такая функция в программе уже была, только применялась для файлов, выбранных File Picker’ом.
При более внимательном рассмотрении выяснилось, что подобный фокус можно проделать также и с использованием “традиционных” файловых менеджеров – Explorer, Far – лишь бы они умели выполнять операцию копирования в clipboard. Для взаимодействия с моей программкой используется переходник – программа Clipboard (“Буфер обмена”):
image
В обоих случаях запускается обработка группы файлов:
image

среда, мая 28, 2014

Ничего нового…

Возился с “живыми плитками” в “универсальном приложении”, по ходу дела пришлось немного переделывать картинки, использующиеся для тайлов и прочих эмблем-заставок.

Всё шло хорошо до момента сборки пакета для телефонного магазина (пакет для магазина Windows собрался без приключений). Телефонная сборка не удалась с сообщением "Ошибка 20: манифест приложения ссылается на изображение …, которое не имеет кандидата в главном пакете приложения." или  "APPX3210: App manifest references the image … which does not have a candidate in main app package.". Выяснилось, что к такому приводит использование “визуального редактора” манифеста, который “помогает” выбрать файл для графического ресурса. При этом файл переименовывается и иногда может записываться в папку телефонного приложения. Если же путь к файлу написать руками, никаких переименований-перемещений не будет, а работать программка будет и так.

image

 В проекте для Windows такого прикола нет, в итоге общая папка картинок для тайлов выглядит так (файлы с суффиксом .wp телефонные, остальные для windows):

image

Собственно, ничего необычного: здесь переименовали, там об этом позабыли, а тут - рыбу заворачивали (©).

 Если всё же удалось в передрягу с телефонными файлами попасть, надо переименовать файлы взад (убрать .scale-100), удалить папки \bin и \obj, переименованные файлы включить в разделяемый проект. Не болтай

воскресенье, мая 25, 2014

Игрушечка-3 или Универсальные приложения.

Модное направление - как бы из одного кода получать приложения как для Windows 8.1 - десктоп, планшет – так и для смартфонов под Winphone 8.1.

clip_image001

Что называется, уговорили, черти красноречивые… Пришлось запустить вторую версию программки, теперь в технике “универсального” приложения. 

Microsoft для изготовления таких приложений выпустила специальное обновление для Студии 2013, которое, в общем-то, нормально в работе помогает - шаблоны проектов, ссылки на общие файлы, конвертация предыдущих проектов и т.п.

Самое большое, что пришлось переделывать – это вызов страниц типа “About program”, “Settings” и т.п. В предыдущей версии (для Windows) программы для этого использовались страницы типа SettingsFlyout с вызовом через системные средства:

2.settings

В телефонном API таких средств не находится, поэтому пришлось делать отдельные страницы типа Page и запускать их через системное меню:

form-2-green-2

Самое крупное, до чего не додумались почему-то в Microsoft – это условная компиляция XAML, наподобие #if … #endif в C#. Очень скоро выяснилось, что без этого жить сильно сложно - внешний вид в win- и wp-приложениях может (иногда и должен) сильно различаться: расположение и оформление контролов, даже разный их набор… Можно, конечно, разрулить кодом, но тогда зачем XAML?

Хорошие ребята, всё же, до нужного решения додумались - XAML Conditional Compilation. C этим решением возможны конструкции наподобие такой:

clip_image001

Студия, правда, не сильно это понимает, талдычит об ошибках там и сям и неправильно рисует внешний вид страниц в конструкторе. Иногда приходится по-разному называть контролы - по мнению Студии, имена используются дважды… Увеличивается количество строк в ресурсах для локализации… При сборке приходится дополнительно запускать очистку решения - но эти неудобства перекрываются тем, что не нужно писать массу "художественного" - для отрисовки - кода (которого и без этого хватает).
Выяснились некоторые другие проблемы отрисовки на телефоне некоторых элементов – AppBarButton, ComboBox.

Ещё выяснилось, что “просто так” шрифт для разных телефонов не масштабируется. Иногда на большом –  шестидюймовом - телефоне можно некоторые надписи и не рассмотреть.

В случае надписей “при полях ввода” достаточно установить стандартный стиль:

 

clip_image001

 

Для “заголовков”, которые хочется видеть “пожирнее”, стили нужны разные:

 

clip_image002

 

В итоге получается достаточно пристойно на разных устройствах. Становится хуже, если начать крутить в настройках телефона размер шрифта - можно на максимуме получить наползающие друг на друга строки и т.п. Как с этим бороться - ХЗ. Скорей всего, и не стоит: которые крутят на максимум - ССЗБ.

 

В связи с малыми размерами телефонов пришлось добавить ещё один способ ввода регулярных выражений – загрузку из текстового файла (попытка набить с клавиатуры закончилась на втором переключении на спецсимволы…). Файл со всеми актуальными - известными мне на сегодня - выражениями повесил на сайт с описанием программы. И с планшета, и с телефона получилось этот файл загрузить на устройство и прочитать текст.

 

Гораздо смешнее оказалась ситуация с получением данных о проигрываемой музыке от других программ. Этот режим стал для меня лично основным режимом использования программы: слушаю на планшете, например, калифорнийское джазовое радио через турецкую программу RADYO,  периодически нажимаю кнопку шаринга и отправляю данные на Last.fm. Буквально 4 движения-нажатия. Набралось несколько и других программ, через которые иногда слушаю музыку.

Во второй, универсальной, версии, расширил перечень принимаемых при обмене форматов в попытке получить дополнительную информацию. Получилось извлечь нужную информацию из данных от программ  jamendo и 22tracks, в которых тоже есть неплохая музыка. Но всё это в Windows-окружении.

В телефонном магазине, как оказалось, музыкальных программ, которые обмениваются по стандартному протоколу, практически и нет.

Те программы, аналоги которых на Windows работают как требуется, для телефонов либо отсутствуют, либо обмениваются только “текстом” с адресом страницы. Обмен в "нормальном" виде, с информацией о треке - только с Твиттером и Фейсбуком, чистый хардкод.

В принципе, для телефонов есть пара клиентов Last.fm, передающих информацию о проигрываемых треках, однако не все проигрыватели пользуются стандартными средствами и скробблеры их не понимают. Так что, для статистики на last.fm они потеряны.

 

Из функций программки, в итоге, телефону достаются только ручная набивка данных в форме и скробблинг по файлам на диске. До появления программ, разработанных под WinPhone 8.1, вовсе не обязательно “универсальных”.

 

Страница с описаниями -  https://sites.google.com/site/dyakovkm/lastfmuniwrite

 

Программы можно взять в магазинах:

 

  

пятница, апреля 18, 2014

Игрушечка-2 или LastFM Writer

Некоторое время назад начал делать программку для ручного скробблинга под Windows 8.1.

За прошедшие 3-4 месяца ничего, по большому счёту, в этой области не изменилось (если не считать появления плеера Duet with Last.Fm, который сам играет, сам и скробблит), то программка получила несколько дополнительных функций, надобность в которых возникла у меня самого.

Во-первых, добавил возможность извлекать информацию непосредственно из аудиофайлов. Использую в сценарии, когда запускаю проигрыватель на папке с аудиофайлами, а скробблинга по какой-либо причине не происходит. Обрабатываются, правда, только mp3- и wma-файлы – других WinRT не знает (или хорошо знания скрывает).

Во-вторых, добавил возможность принимать от других программ (по стандартному механизму “шаринга”) текстовые строки и выделять из них информацию по аудио-треку при помощи регулярных выражений. Использую в сценарии, когда какая-то мелодия, например, в радиоприёмнике, распознаётся программой Shazam, а результат передаётся в мою программку:

shazShar

На случай, если появится какая-то другая программа распознавания аудио или если потребуется обмен данными ещё по какой-то причине, добавил возможность ввести и хранить любое количество собственных регулярных выражений, выделяющих из строк нужную информацию.

Как для любой порядочной программы, пришлось завести сайт с описанием, на который понаставил ссылок в самой программе Winking smile.

Чуть ли не самое смешное в процессе разработки и публикации программы – тестирование перед отправкой и в магазине. При запуске тестов после сборки (Студия 2013 имеет соответствующую примочку) на рабочем десктопе регулярно получал отрицательный результат при тестировании перехода в suspend. Все остальные проходят, при самостоятельном запуске программки suspend на месте, а вот в тестах – хоть убейся. Водрузил на планшет express-версию Студии, делал сборку и тестирование там – тест проходил успешно. По прошествии некоторого времени, правда, глюк прошёл – и на Windows ставились обновления, и на Студию – что-то исправило ситуацию…

При прохождении тестов в магазине труднопреодолимым местом оказалась любовь тестеров к запуску программы на расхлябанной системе – в частности, с неверно выставленным временем. И даже не сам этот тест труден (нужно, конечно, и в такой ситуации вменяемо работать), а оказалось очень непросто обратить внимание тестеров на то, что программа в сообщении призывает поменять время на правильное. И даже сочинить раздел “Системные требования” на сайте программы.

Второй камень преткновения – любовь тестеров к переносу пароля из описание в поле логина могучим методом copy/paste, который часто делает не то, на что надеялся тестер. В результате программа возвращается на доработку в сопровождении рекомендации проверить, не закончился ли срок действия пароля на сервисе и прочей чепухи. Кончилось тем, что завёл на сервисе специальную тестовую учётку, а в программке подставляю для неё правильный пароль. В итоге тестер может переносить пароль любым самым бессмысленным способом - аутентификация на сервисе проходит нормально.

Собственно, на этом в развитии программки решил остановиться. Появятся потребности – начну версию 2.

WinStor

четверг, апреля 17, 2014

Update-юмор не иссякает…

Только-только порадовались новым супер-пупер изменениям в Windows 8.1 (и в сервере), как сегодня система под угрозой репрессий (сам не поставишь, насильно поставим чуть позже) стала требовать установить патч KB2919355 (в котором, собственно, и были те самые супер-нововведения). Только нынешний, в отличие от того, который ставился меньше двух недель назад, имеет размер всего в 2.5 Мб.

Стал присматриваться в надежде понять, в чём хохма-то – никакой разницы не видно: описание одинаковое, ссылаются на одну и ту же KB2919355. Похоже, накосячили с основным патчем, решили по-быстрому и втихаря выпустить заплатку на патч… Естественно, без перезагрузки дело никак не обходится…Steaming mad

При дальнейшем рассмотрении выяснилось, что патч зачем-то по-разному называется в разных ОС:

На сервере – вот так (не очень понятно, правда, кто там “обновлённая”) : 

image

 

На планшете с x86-версией – не менее гордое название:

 

image

 

На десктопе с x64-версией – длинно и буднично:

 

clip_image002

 

Такое разнообразие, наверное, чтоб админам скучно не было при поисках в списках установленных исправлений…Smile with tongue out

среда, января 29, 2014

Игрушечка.

Была у меня всегда (думаю, лет 8 уже) программка для "ручной" отправки данных на сервис Last.fm – если, например, хочется добавить к своей статистике трек, услышанный по радио, на youtube и т.п. Нашлась где-то библиотека под .NET с открытыми исходниками, и между делом соорудил такую программку (тем более, там и делать-то особо нечего…).
Конечно, основной способ пополнения музыкальной статистики – “скробблеры” для медиаплееров и до появления планшета под Windows 8 их вполне хватало и программкой пользоваться приходилось довольно редко. Но при попытке найти скробблер для metro-приложений был весьма озадачен их полным отсутствием. На WP8 есть, а на Win8 – нету… Даже популярная Shazam для распознавания мелодий функции отправки данных на сервис не предлагает. Смешно…
Пришлось поупражняться немного в сооружении “магазинных” приложений для Win8.1 и с какой-то попытки адаптированную под metro-интерфейс программку приняли в магазин Windows под гордым названием LastFM Writer. Ну, приняли – и хорошо, может, кому пригодится…
Сегодня получаю письмо, что программка-то - практически супер-пупер:
Your app "LastFM Writer" has been tested and rated by the BestWindows8Apps.net. Feel free to use Editor's pick award on your web page to show your visitors how highly we value your app.

Ну вот, так и придётся какие-то усовершенствования вносить…Turtle

четверг, января 23, 2014

И снова про ЭТО.

Нет, не про то, что вспомнилось, а про антивирусы.
Включил сегодня компьютер и обнаружил, что процессор используется на 60% процессом с гордым именем explorer_3.exe. ProcessExplorer рассказал, что в параметрах процесса есть УРЛ какого-то сайта. При внимательном рассмотрении в папке C:\Windows обнаружились ещё 2 эксплорера – “_1” и “_2” вместе с bat_start.exe (эта оказалась кривой и при запуске упала с сообщением о несловленном исключении в .NET, чем, собственно, себя и выдала). Все имеют одну дату создания и ни одного опознавательного знака типа копирайта или ещё чего-то. Вспомнил, что вчера “устанавливал” гаджет для мониторинга батареи из файла BatteryMonitor__2348_i281263245_il16641.exe. Правда, никакой гаджет в итоге не установился (остался zip-файл с ним на рабочем столе), зато установилась кучка какой-то хрени:
image
При этом установщик использовал новый способ маскировки сообщения об установке “подарков” (для меня, по крайней мере – обычно на каждый “подарок” бывает своя страничка - да и станешь разве ожидать на Windows 8 установку какой-то андроидной развлекухи?):
image
Папки этих программ в C:\Users\...\AppData\Local\ имеют ровно такую же дату создания, что и “эксплореры”, и больше папок/файлов с такой датой на дисках не обнаруживается. Значит, отсюда троянец и заполз… Какого-то вреда от троянца не находится, сильно похоже, что на халяву пользуются процессором – в одной из папок троянца есть подпапка data7 с файлами, в которых есть строка “http://upload.voga360.com/mu3/…”. Bitcoin’ы добывают, что ли?
Интереснее другое: на компьютере имеется как встроенная “антивирусная” программа “Защитник Windows”, так и “антитроянская” программа
image
И ни одна блядь сволочь не обратила внимания на то, что в c:\Windows не просто исполняемые файлы суют, а пытаются системную программу подменить… Спасибо, сама “восьмёрка” подменить не позволила. Вот тут и спрашивается – а на хрена? В смысле, зафиг нам такие “защитники”, за один из которых ещё и деньги требуют? Второй, хоть и бесплатный, бесполезный – вернее, даже вредный: постоянно система орёт на предмет зайти и установить очень важные обновления, которыми оказываются базы “защитника”.
Похоже, дело кончится выбрасыванием всей этой пафосной “защитной” хрени и использованием парочки ClamWin + ClamSentinel. Там, по крайней мере, есть соответствующие настройки.