Модификация исходного кода android-приложения с использованием apk-файла
Так уж получилось, что приложение для чтения комиксов и манги, которое я использую на своем android-смартфоне, после обновления стало показывать рекламу в конце каждой главы комикса. Данное приложение пару лет назад было доступно на Google Play (платная версия которого и была мной куплена), но было удалено в силу «нарушения авторских прав», после чего ушло в подполье и стало распространятся через сайт разработчика. Увы, достойных альтернатив этому приложению на android и iOS я не нашел, но и смотреть рекламу особо не было желания, тем более я уже покупал версию без рекламы. Сам разработчик почему-то не сделал возможности отключить ее, а на просьбы добавить такую возможность не отозвался. Поэтому пришлось искать альтернативные методы ее отключения. Первое, что пришло в голову, это то, что android-приложения пишутся на java, а значит есть вероятность, что автор не обфусцировал свое приложение и его можно попытаться декомпилировать. Немного подумав, я приступил к работе.
Для начала был загружен сам apk-файл приложения. Затем недолгий поиск по интернету привел меня на сайт http://www.decompileandroid.com/. С его помощью можно было загрузить apk-файл с приложением и на выходе получить набор исходников. Увы, декомпиляция в java-классы происходит не совсем идеально и поэтому восстановить полностью сам проект приложения в IDE(Idea) у меня не получилось, но это позволило проанализировать саму структуру проекта и разобраться как он примерно работает. После проведения анализа, было найдено два перспективных метода в классе BaseReaderFragment.java – placeAdViewIfNeeded и removeAdViewIfNeeded.
Код метода placeAdViewIfNeeded:
if (adViewPlaced || adView == null) < return; >else
Самое простое, что пришло на ум после чтения кода, это убрать все лишнее, и оставить лишь вызов return;
Но, как уже было сказано, даже если бы я изменил в java-классе что-либо, я бы не смог в итоге скомпилировать приложение в IDE. Поэтому пришлось искать альтернативу. Оказалось, что smali-файлы, которые создаются в процессе декомпиляции, позволяют также после внесения нужных изменений, вновь собрать модифицированное приложение. Увы, сайт, что был приведен выше, позволял лишь получать исходники, но не собирать новые. Поэтому пришлось искать способы сделать это самостоятельно.
Была найдена утилита ApkTools, которая позволяла декомпилировать и компилировать apk-файлы. Кроме того, потребовалась утилита aapt.exe, которая была взята мной из стандартного SDK под андроид в папке android-sdk\build-tools\20.0.0.
Для удобства вызова утилиты из под windows был создан скрипт apktool.bat:
@echo off set PATH=%CD%;%PATH%; java -jar "%~dp0\apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9
Для декомпиляции приложения были выполнены команды:
apktool if .apk apktool d .apk
После чего, в полученных исходниках был найден файл BaseReaderFragment.smali и нужные нам методы были изменены следующим образом:
.method protected placeAdViewIfNeeded(Landroid/view/ViewGroup;)V .locals 3 .param p1, "layoutAds" # Landroid/view/ViewGroup; .prologue const/4 v2, -0x2 return-void .end method .method protected removeAdViewIfNeeded(Landroid/view/ViewGroup;)V .locals 1 .param p1, "layoutAds" # Landroid/view/ViewGroup; .prologue .line 149 const/16 v0, 0x8 return-void .end method
Далее пришла очередь сборки apk-файла из исходников.
Сделать это можно cледующей командой:
apktool b
Но это еще не все. Чтобы приложение можно было установить, его нужно было подписать цифровой подписью. Самый простой способ сделать это – это скачать архив в котором находится утилита для подписи приложений и цифровые сертификаты к ней.
Распаковываем архив, выполняем команду:
java -jar signapk.jar certificate.pem key.pk8 .apk .apk
Полученный apk-файл можно загружать на телефон, чтобы проверить наше модифицированное приложение. Однако в процессе тестирования изменений оказалось, что объявления больше не показываются, однако сама страница для их показа создается, что не очень приятно. Снова был проанализирован код приложения, найден класс BaseSeamlessReaderFragment, а в нем метод appendPages.
В нем было видно, что строчка:
addPage(new MangaPage(i - 1, null, chapteritem, true), false);
создает дополнительную страницу, помимо тех, что есть в главе манги, с параметром, отвечающим за показ объявлений. Было решено удалить эту строчку и посмотреть результат. Снова заглядываем в аналогичный smali-файл(BaseSeamlessReaderFragment$4) и удаляем строчку:
invoke-virtual , Lorg/mangawatcher/android/fragments/BaseSeamlessReaderFragment;->addPage(Lorg/mangawatcher/android/fragments/BaseSeamlessReaderFragment$MangaPage;Z)V
Снова проводим сборку apk-файла из исходников и подписываем наше приложение. После установки и тестирования приложения экран с рекламой окончательно исчез, что и было конечной целью.
Данный пример показывает, что в случае необходимости можно довольно просто и быстро модифицировать уже существующие android-приложения, чтобы добавить в них недостающий функционал или наоборот удалить некоторые нежелательные возможности в тех ситуациях, когда доступа к исходникам нет. Надеюсь он поможет людям, которые попали в похожую ситуацию и не хотят мирится с ней, найти решение проблемы.
- android
- декомпиляция
- разработка под android
- reverse engineering
- Информационная безопасность
- Разработка под Android
Использование приложений с устройства Android на компьютере
С помощьюСвязь с телефоном вы можете мгновенно получить доступ к приложениям Android, установленным на мобильном устройстве, прямо на компьютере. При подключении по сети Wi-Fi можно запускать приложения, чтобы просматривать веб-сайты, играть, совершать покупки в интернет-магазинах, беседовать в чате и выполнять другие действия. При этом вы сможете пользоваться большим экраном компьютера и клавиатурой.
Примечание: В настоящее время Связь с телефоном не поддерживает несколько профилей Android или рабочих или учебных учетных записей.
Можно добавлять приложения Android в избранное на компьютере, закреплять их в меню «Пуск» и на панели задач, а также открывать их в отдельных окнах для параллельного использования с приложениями компьютера.
Примечание: Для оптимального взаимодействия рекомендуется использовать устройство с Android и компьютер в одной сети Wi-Fi и в одном диапазоне. В некоторых сетях Wi-Fi доступны разные диапазоны для подключения, например 5 ГГц и 2,4 ГГц. Убедитесь, что оба устройства используют один и тот же частотный диапазон. Подробнее
Как взаимодействовать с приложениями?
Для открытия, ввода, прокручивания и взаимодействия с приложениями можно использовать мышь, сенсорную панель, клавиатуру, перо или сенсорный экран вашего ПК. Советы по использованию мыши и клавиатуры:
- Один щелчок соответствует любому одиночному касанию или нажатию
- Щелчок правой кнопкой мыши в любом месте экрана телефона позволяет перейти на предыдущую страницу
- Щелчок и удерживание соответствует касанию/удерживанию
- Щелкните и удерживайте, чтобы перетащить выделенное содержимое
- Колесико мыши позволяет перемещаться между страницами по вертикали или по горизонтали
Некоторые игры и приложения могут не работать с мышью или клавиатурой. Для работы с ними потребуется ПК с поддержкой сенсорного ввода.
Если при использовании приложений возникают проблемы, воспользуйтесь советами по устранению неполадок.
Как взаимодействовать с недавними приложениями?
Чтобы получить доступ к недавним приложениям с компьютера, сделайте следующее.
- В правом нижнем углу панели задач Windows нажмите кнопку ^.
- Щелкните значокСвязь с телефоном.
- Во появившемся меню выполните одно из следующих действий.
- Щелкните приложение, которое нужно открыть.
- Щелкните правой кнопкой мыши нужное приложение и выберите Открыть.
Чтобы получить доступ к последним приложениям изСвязь с телефоном, выполните следующие действия.
- На устройстве откройтеСвязь с телефоном.
- Перейдите в Приложения.
- В верхней части страницы Приложения найдите раздел Недавно использовавшиеся, в котором отображаются до трех последних использованных приложений.
- Щелкните приложение, чтобы открыть его, или щелкните его правой кнопкой мыши и выберите Открыть.
Как отключить недавние приложения в области уведомлений Windows?
Выполните следующие действия.
- ВСвязь с телефоном перейдите в раздел Параметры >Компоненты.
- В разделе Приложения отключите параметр Показывать последние использованные приложения в области уведомлений Windows.
Известная проблема
В настоящее время существует известная проблема функции «Последняя приложения», препятствующая открытию мобильных приложений Microsoft Office. Мы обновим эту статью, как только эта проблема будет решена.
Как узнать, использую ли я возможность взаимодействия нескольких приложений?
Требования для использования нескольких приложений:
- Компьютер с обновлением Windows 10 за май 2020 г. или более поздней версией. Чтобы добиться оптимальной производительности, рекомендуем иметь не менее 8 ГБ ОЗУ.
- Устройство с Android 11.0.
- На устройстве с Android необходимо приложение «Связь с Windows» (установлено предварительно) версии 2.1.05.6 или более поздней либо приложение «Связь с Windows» (установлено предварительно) версии 1.20104.15.0 или более поздней.
- Связь с телефоном версии 1.20104.20.0 или более поздней.
Как закрепить приложения Android в Windows?
Приложения Android можно закрепить в меню «Пуск» Windows, на панели задач или добавить в избранноеСвязь с телефоном.
Закрепление приложения на компьютере:
- ОткройтеСвязь с телефоном.
- Перейдите в Приложения.
- Щелкните правой кнопкой мыши значок приложения, которое нужно закрепить или добавить в избранное.
Как удалить закрепленное приложение Android из панели задач Windows или из меню «Пуск»?
- Если вы закрепили приложение в панели задач, просто щелкните значок приложения правой кнопкой мыши и выберите Открепить от панели задач.
- Если вы добавили приложение в меню «Пуск» в Windows, нужно удалить это приложение из списка приложений. Перейдите в раздел Параметры >Приложения и компоненты и найдите приложение в списке. Выберите его, а затем нажмите Удалить.
Приложения с устройства Android теперь установлены на компьютере?
Нет. Приложения, которые вы открываете, запускаются на устройстве Android. Связь с телефоном зеркально отображает приложения с устройства Android на компьютере. Это означает, что на компьютере будет отображаться то же самое, что отображается на устройстве Android.
Можно ли получить доступ к приложениям Android, не связывая устройство?
Нет, чтобы использовать этот интерфейс, необходимо подключить устройство Android к компьютеру черезСвязь с телефоном. Подробнее
Можно ли открыть несколько приложений одновременно?
Да, если у вас есть Android 11 и один из них, выберите устройства Samsung или HONOR. На большинстве других устройств с Android нельзя одновременно открыть более одного приложения.
Как выполнять потоковую передачу звука с устройства Android?
Теперь вы можете выполнять потоковую передачу звука с устройства Android во время работы с приложениями или функциями экрана телефона. Чтобы использовать потоковую передачу звука на компьютере, выполните следующие действия:
- Убедитесь, что у вас есть устройство Samsung и обновите ОС до OneUI 5.0 или более поздней версии.
- Требования к версиям приложений:
- Связь с телефоном обновлен до версии 1.22092.214.0 или более поздней.
- Ссылка на Windows обновлена до версии 1.22102.149.0 или более поздней.
Примечание: Honor и Surface Duo в настоящее время не поддерживаются для этой функции.
Как включить потоковую передачу звука на компьютере?
Вам не нужно настраивать эту функцию. При открытии экрана приложений или телефона вам будут запрошены разрешения на звук, чтобы прослушать звук на компьютере. Перейдите на мобильный телефон, чтобы предоставить разрешения как из приложенияСвязывание с Windows, так и из приложения служба . После этого вы все настроены и сможете слышать звук с компьютера.
Как изменить выходные данные звука?
В параметрах Связь с телефоном можно изменить, поступает ли звук с компьютера или телефона.
Откройте Связь с телефоном на компьютере:
- Перейдите в раздел Параметры >Компоненты.
- Прокрутите вниз до пункта Приложения и выберите Компьютер или Телефон в раскрывающемся меню Прослушивание звука из.
Можно ли слушать звук через bluetooth-наушники, подключенные к моему компьютеру?
Да. При подключении внешнего звукового устройства к компьютеру вы услышите звук с внешнего устройства.
Где можно скачать исходники андроид?
По запросу в поисковик «android open source project» находятся следующие ссылки:
- https://source.android.com/
- https://github.com/aosp-mirror
Пожалуй, это то, что нужно. На странице полно документации о том, как все настроить и начать разрабатывать.
Отслеживать
ответ дан 12 окт 2020 в 1:05
3,082 2 2 золотых знака 12 12 серебряных знаков 21 21 бронзовый знак
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.9.3159
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как создать RAT для Android
Термином RAT (Remote Access Tool) принято называть утилиты удаленного администрирования. Они могут использоваться в благих целях по своему прямому назначению, как, например, популярный TeamViewer, а могут устанавливаться хакерами в тайне от пользователя.
- Популярные трояны для слежки
- Скрытый удаленный доступ к телефону с помощью L3MON
В подобных случаях RAT нередко расшифровывают как Remote Access Trojan, и прямой перевод английского слова rat — «крыса» — тут приходится как нельзя кстати.
Как создать RAT для Android
AhMyth RAT (Remote Access Trojan) — это приложение с открытым исходным кодом, в данный момент находится на стадии бета-версии. Инструмент ориентирован на пользователей ОС Windows, но на GitHub можно скачать исходники AhMyth и для Unix-подобных платформ.
Имейте ввиду, что распространение вирусов и вредоносных программ — незаконное действие и влечет за собой уголовную ответственность. Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция сайта www.spy-soft.net, ни автор программы не призывают к использованию полученных знаний в практических целях и не несут ответственности за любой возможный вред, причиненный материалом статьи.
Программа для создания RAT для Android AhMyth состоит из двух компонентов.
- Серверное приложение, с помощью которого можно управлять зараженным устройством и создавать файлы APK с вредоносным кодом. Создано оно на Electron framework — фреймворке, разработанном на площадке GitHub для создания простых графических приложений.
- Клиентский APK, содержащий вредоносный код, который позволяет получить удаленный доступ к зараженному Андроид-устройству. То есть созданный APK-файл будет выполнять функции бэкдора.
Установка AhMyth RAT
Серверная часть устанавливается очень просто, тем более автор RAT-конструктора выложил в свободный доступ бинарники. Но при желании можно скомпилировать ее из исходников. В моем случае тесты проходили на компьютере с Windows 10.
Для работы утилиты необходима уставленная на компьютер виртуальная машина Java. Скачать ее можно с официального сайта Java. После этого надо скачать бинарники самой AhMyth. Их вы можете найти в официальном репозитории проекта на GitHub, вкладка Assets. Во время скачивании рекомендую вырубить антивирус, чтобы его не хватил приступ от происходящего.
Создание зараженного APK
Чтобы создать файл APK для Android, откройте вкладку APK Builder. Внешний вид конструктора для создания RAT для Android показан ниже:
Пользоваться конструктором AhMyth RAT очень легко. В окне Source IP надо ввести IP-адрес атакующей машины (этот адрес потом легко вычисляется \ при криминалистическом анализе вредоноса). В поле Source Port можно указать порт, который будет зарезервирован машиной для прослушивания подключений. По умолчанию используется порт 42 474.
Есть также опция Bind With Another Apk, которая позволяет склеить APK-файл с другим приложением.
Для этого надо отметить флажок Bind With Another Apk, выбрать необходимый APK и указать метод интеграции вредоноса в телефон. Есть два метода: при запуске зараженного APK или при перезагрузке телефона после установки RAT. Авторы программы рекомендуют второй вариант.
Осталось нажать кнопку Build — по умолчанию зараженный файл сохраняется в папку: