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

Тема в разделе "Вирусология", создана пользователем Admin, 10 окт 2016.

  1. Admin

    Admin Голова лаборатории

    Сообщения:
    533
    Симпатии:
    348
    Начинаем второй мини урок или куда прикрутить наше чудо, которое мы написали. Я не буду описывать как написать админку с нуля или как правильно писать сайты. Тут будет чисто теория и методы. Итак приступим. Первое, что нам потребуется это гейт.
    Гейт – это скрипт который будет принимать, отдавать команды. К примеру админка у нас стоит на http://ufolabs.pro/. Создаем скрипт gate.php. И кладём его в корень. Получаем наш гейт http://ufolabs.pro/gate.php. Важно: нельзя использовать слова gate и слова-маячки. Трафик может снифаться.
    Этот скрипт будет принимать и отдавать команды. Самый верный способ – это отправка данных методом post и чтение вывода.
    Получаем простую цепочку:

    1. Определяем гейт.
    2. Шлем отстук.
    3. Забираем задачи, что гейт нам даст в ответ. (Лучше всего задачи забирать по одной, так как нам важно время обработки команд и память которыю мы используем на телефоне. Ведь там не как на компе, гигабайты ее. А java она все таки местами прожорливая.)
    4. Шаг не всегда отрабатывает, так как не всегда нам нужно слать отчет о выполнении команд. Но если все таки надо. То мы это делаем 2м пунктом, но с определенным флагом.
    Почему post? Чтобы в логах не было ничего кроме имени гейта.

    В отстук входят все основные параметры такие как imei, версия os, sdk, различные параметры пользователя. Кстати если вы не знаете как генерировать bot id, то imei будет в самый раз, чтобы различать всех ботов. Так как это уникальный параметр телефона. Все что вы считаете нужным, отсылаете, а ответ обрабатываете.

    Список параметров рекомендуемый для отстука:
    1. imei (id бота)
    2. оператор
    3. версия os
    4. версия sdk(для разграничения функционала, так как до 4.4 и после разные методы работы используются)
    5. модель телефона
    6. серийный номер
    7. есть ли рут (использовать расширенный функционал и консоль устройства)
    8. версия билда (по этому параметру можно обновлять старые версии)
    9. Номер телефона
    10. Другии параметры важные вам

    Формат запросов, самый удобный на мой взгляд это json. Но мы живем в 21м веке и этого мало. Это все надо шифровать еще. Почемуjson? Его очень легко обрабатывать и на стороне сервера и на стороне клиента.Далее мы накладываем алгоритм шифрования. Самый простой это будет RC4, хотя их много, как говорится, на вкус и цвет товарища нет. Но тут мы столкнемся с одной проблемой, у нас могут появитсья всякого рода спец символы, с которыми возникнут сложности при передаче и декодировании. Выходом является обёртка из base64.

    Алгоритм получается следующий:
    1. Составляем json
    2. Шифруем его RC4 или любым другим алгоритмом.
    3. Оформляем в base64
    4. Отправляем
    5. Читаем вывод гейта.
    6. Делаем все в обратном порядке. Снимаем base64 , расшифровываем, разбираем json. Если надо отрабатываем определенные действия.

    Важный момент, что при обработке результата, нужно проверять, а действительно ли это админка. То есть должны быть специфичные сигнатуры ответа. Если их нет. То перестаем туда стучать.
    Так же стоит учитывать, что на телефоне время отстука может чуток отличаться, я имею ввиду интервалы. Все это из-за специфичной работы сервисов на телефоне. Поэтому стоит брать время ожидания с запасом, для определения онлайн бот или нет.

    Если что вспомню, допишу в комментариях. Получилось очень мало, так как написание админок – тема широко освещаемая. Просто механическая работа PHP программиста. Принял , обработал, отдал.
     
  2. DroidSpy

    DroidSpy Пришелец

    Сообщения:
    1
    Симпатии:
    0
    Хорошая статейка... А не подскажешь, как можно склеить два APK приложения в одно для последующей установки, типо ка рат билд....