- Регистрация
- 09.07.2015
- Сообщения
- 358
- Реакции
- 571
- Баллы
- 93
Привет, друзья.

Я подготовил вам новую порцию информации об Android для того, чтобы вы переварили её и сделали exxxtraCash$$$$$.
Для удобства вторая часть будет содержать несколько пунктов:
- Подмена запросов
- Работа со смартфонами в многопотоке
- Бонус
Подмена запросов
У ZennoPoster есть прекрасный метод для подмены запросов. С помощью него вы можете заменить в запросе те параметры, которые не удалось заменить штатным методом и, например, обойти защиту какого-либо сайта. Также имеется отличный метод для получения запросов в переменную.
Но что делать, если речь идёт об Android? Как подменить и вытащить запросы из эмулятора?
Для этого мы можем использовать библиотеку FiddlerCore.
Наверное кто-то из вас пользовался или активно пользуется Fiddler, так вот у них есть ещё и библиотека, которую вы можете внедрить в свой шаблон и делать с трафиком всё что вам вздумается.
Для вас я написал удобный код для работы с библиотекой. Рассмотрим принцип его работы.
Скачивайте шаблон, устанавливайте adb и софт, закидывайте dll в ExternalAssemblies.
В предыдущей статье есть инструкция и пояснения к шаблону.
В шаблоне вы найдете 2 новых кубика:
Start Fiddler - запускает сервер и асинхронный код для работы с трафиком,
Stop Fiddler - закрывает сервер и останавливает асинхронный код.
В общем коде вы можете найти класс Fid с методами:
Start:
Start:
public void Start(){
FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest; //Выполнение кода до запроса
FiddlerApplication.BeforeResponse += FiddlerApplication_BeforeResponse; //Выполнение кода после запроса
FiddlerApplication.AfterSessionComplete += FiddlerApplication_AfterSessionComplete; //Выполнение по завершению сессии (сессия это когда запрос полностью был получен)
try {
FiddlerApplication.Startup(8888, false, true, true); //запуск Fiddler сервера с настройками (порт, установить сервер в системные настройки, включить дешифровку ssl трафика, принимать удаленные подключения)
} catch (Exception e) {}
}
Stop:
Stop:
public void Stop(bool server_deactivate){
FiddlerApplication.BeforeRequest -= FiddlerApplication_BeforeRequest; //Отключение асинхронного кода до запроса
FiddlerApplication.BeforeResponse -= FiddlerApplication_BeforeResponse; //Отключение асинхронного кода после запроса
FiddlerApplication.AfterSessionComplete -= FiddlerApplication_AfterSessionComplete; //Отключение асинхронного кода по завершению сессии
if (FiddlerApplication.IsStarted() && server_deactivate == true) // Отключение
FiddlerApplication.Shutdown(); // Fiddler Server
}
B внутри методы, в которых вам нужно писать свой код:
Method:
void FiddlerApplication_BeforeRequest(Session oSession){
}
void FiddlerApplication_BeforeResponse(Session oSession){
}
void FiddlerApplication_AfterSessionComplete(Session oSession){
}
}
Для примера я сделал и оставил замену некоторых значений для приложения TikTok:
- замена названия модели (FiddlerApplication_BeforeRequest)
- подмена в теле запроса (FiddlerApplication_BeforeRequest)
- парсинг ссылок картинок (FiddlerApplication_AfterSessionComplete)
Для того чтобы писать код вам потребуется небольшие знания C# и для удобного тестинга можно использовать Fiddler и Fiddler ScriptEditor (см. Видео).
К сожалению, некоторые приложения шифруют тела запросов и вам придется поковыряться в прилке, чтобы удалить шифрование, либо использовать Frida для подмены функций.
Работа со смартфонами в многопотоке
В шаблоне я оставил несколько новых кубиков для работы со смартфонами.
Но чтобы всё нормально работало вам нужно закомментировать и раскомментировать указанные части кода в общем коде.
Смысл работы абсолютно такой же как и в версии для эмуляторов:
- Алгоритм получает список всех девайсов через adb
- По порядку проверяет свободные серийники для взятия в работу. Если их нет в глобальной переменной, то берёт.
- Отправляет значение серийника в переменную, чтобы подключить телефон по adb
Бонус
В прошлой статье многие жаловались, что невозможно работать с русскоязычными прилками.
Я немного подредактировал SharpAdbClient.dll для того, чтобы это работало.
Также добавил блок с установкой Clipper. Он нужен для того, чтобы вытаскивать значения из буфера обмена и вносить в переменную.
В кубике есть пример установки приложения через специальный кубик, если PacketManager не работает на вашем смартфоне.
Видео
Если вам понравилась моя статья, то буду безмерно рад вашим лайкам и голосам!

- Номер конкурса статей
- Пятнадцатый конкурс статей
- Тема статьи
- Другое
Вложения
Последнее редактирование:




Из прошлой части много полезного взял.