надеюсь, ты сможешь указать мне правильное направление.
Я создаю библиотеку Android (без использования VPNService), которая при интеграции в приложение будет направлять весь трафик tcp / udp этого приложения на мой прокси-сервер. Библиотека также должна работать на некорневых устройствах, что означает, что использование iptables недопустимо.
Поскольку вариант использования предназначен для прозрачного шлюза в приложении, библиотеке не нужно перенаправлять трафик приложения, отличного от того, с которым она интегрирована.
Я исследовал, и обычное решение, которое я нахожу, использует VPNService, что также не является вариантом. Также нашел mitmproxy.org, но я не уверен, с чего начать.
Таким образом, без изменения приложения, как я могу перенаправить трафик на свой прокси-сервер и все же ... 1. не использовать VPN 2. не использовать iptables и не требовать root-доступ
Большое спасибо!
In summary, without modifying the app, how can I re-route traffic to my proxy server
Это невозможно, извините. Приложения используют широкий спектр средств для доступа к сетям, в том числе:
HttpUrlConnection
)Socket
прямо на Java / KotlinWebView
У вас нет средств прозрачно перехватить большую часть этого, не говоря уже о перенаправлении их для прохождения через ваш прокси.
Вы может предлагает API-интерфейсы, позволяющие разработчикам настраивать свои приложения для использования прокси в некоторых ситуациях. NetCipher делает это, чтобы помочь разработчикам интегрироваться, например, с прокси-сервером Orbot.
С чего начать, если я просто ограничиваю то, что хочу перехватить, следующим? HTTP / HTTPS-вызовы, сокеты и веб-просмотр
@schumi: «Я мог использовать такую библиотеку в прошлом проекте» - назовите это. «С чего начать, если я просто ограничу то, что хочу перехватить, следующим?» - не существует документированного и поддерживаемого способа прозрачного перехвата сообщений с помощью любого из этих подходов.
Я не могу раскрыть публично, так как это проприетарная технология. Я написал тебе в Твиттере несколько часов назад
Спасибо за ответ! Я был уверен, что найду решение, потому что смог использовать такую библиотеку в прошлом проекте. К сожалению, у библиотеки нет открытого исходного кода, но использовать ее для перенаправления трафика было довольно просто. Мне просто нужно было инициализировать библиотеку при запуске приложения, а затем он позаботился о маршрутизации всего трафика на прокси-сервер. Я попытался декомпилировать JAR, но, поскольку он скомпилирован с помощью proguard, подсказок не так много. Я действительно видел, что он использовал ServerSockets и ServerSocketChannels. Я не уверен, что он пошел на такой низкий уровень, как NDK