2016-10-08 41 views
7

Witam Chcę przechwycić każdą aktywność sieciową występującą w urządzeniu z Androidem. Załóżmy na przykład, że przeglądarka otwiera połączenie http z jakąś witryną lub interfejsem API.Wykryj połączenie sieciowe z systemu Android Java/JNI

Jeśli nie jest to możliwe, to przynajmniej chcę przechwycić adres URL przeglądarki, powiedzmy firefox chrome lub opera.

Zawsze, gdy użytkownik otwiera dowolny adres URL w przeglądarce, muszę odebrać połączenie. Już wiem o zapewnieniu filtrów intencji dla aktywności i przechwytywania. Ale wszystko to dzieje się, jeśli żądanie trafi do zamiaru, który w przeglądarce nie ma miejsca.

Podobne pytanie zostało otwarte tutaj intercepting internet calls android , ale nie było żadnej odpowiedzi w tej sprawie.

Jeśli ktoś ma jakieś rozwiązanie lub ma podobne wymagania, omówmy to.

Inne zasoby https://gist.github.com/madeye/2297083 Proxy to także jedno rozwiązanie, ale nie mam pojęcia o jego implementacji.

+0

Wiesz o bekać-suite? Jest w nim API, które nazywa się [extender burp] (https://portswigger.net/burp/extender/). – danny

Odpowiedz

1

musisz użyć czegoś takiego jak VPN lub proxy, aby to zrobić. istnieje związek z google i pełny projekt na linki poniżej:

próbki: https://android.googlesource.com/platform/development/+/master/samples/ToyVpn/src/com/example/android/toyvpn/ToyVpnService.java

pełny projekt roboczy: https://github.com/hexene/LocalVPN

+0

wniosek zostanie przekazany przez lokalny serwer proxy, czy jest inny sposób niż proxy? – sector11

+1

Tak, ale musisz mieć uprawnienia roota na swoim urządzeniu z Androidem. Następnie możesz robić wiele rzeczy za pomocą komend linuksowych, ponieważ android jest bazą dla systemu Linux. Thisbis to jedyny sposób na przechwycenie całego ruchu sieciowego bez bycia użytkownikiem root. –