2011-10-23 17 views
5

Wiem, jak rozwijać się w systemie Android i korzystać z biblioteki HTTP Apache, ale chcę obniżyć, zdobyć adapter interfejsu bezprzewodowego i móc wysyłać pakiety bezprzewodowo za pomocą &. Wiem, że jest to możliwe, ponieważ na rynku Android istnieją aplikacje sniffer. Rozglądałem się i często googlowałem, ale nie mogę mieć pomysłów, jak zacząć. Zaskakująco nikt nie zadał tego pytania również na SO.Sieć pakietowa na poziomie Android

Przypuszczam, że nie ma Androida API, który robi to za Ciebie. Proszę zasugerować sposób wysyłania/odbierania pakietów w systemie Android lub publikować odniesienia do takich zasobów.

Dzięki!

Uwaga: Wiem java.net API może być używany w android (choć nie używano go wcześniej), ale to nie daje mi ten rodzaj dostępu chcę.

+0

Jaki jest obecny cel? – EJP

+0

Chcę utworzyć aplikację, która może łączyć się z serwerem BSNL (ISP) za pośrednictwem punktu dostępu, który jest w trybie Bridge. poza tym można zrobić wiele innych interesujących rzeczy. – Rushil

+0

@Rushil, co ma wspólnego tryb mostu? Zwykle, gdy ludzie mówią o "trybie pomostowym", jest to w kontekście posiadania urządzenia, które NIE działa jako punkt dostępowy, którego celem jest zapewnienie dostępu do bezprzewodowej sieci LAN przez Ethernet. Czy mówisz o bezprzewodowej sieci ad-hoc? Jeśli tak, zobacz [to pytanie] (http://stackoverflow.com/questions/1932150/can-android-do-peer-to-peer-ad-hoc-networking). – mpontillo

Odpowiedz

2

Nie można tego zrobić za pomocą standardowego zestawu SDK/NDK.

Na urządzeniu zrootowanym można ewentualnie zadzwonić pod numer tcpdump lub inną aplikację opartą na bibliotece libpcap. Nie ma obsługiwanego sposobu nadawania aplikacjom Java wymaganych uprawnień na produkcyjnym urządzeniu z systemem Android.

Na przykład: this blog post opisuje, jak używać tcpdump do przechwytywania podstawowych pakietów na Androidzie.

+0

Dzięki! To dobry początek! Ale ten post na blogu powiedział, że będziesz musiał mieć urządzenie z Androidem podłączone do komputera. Czy nie jest możliwe stworzenie aplikacji, która jest w stanie przechwytywać i wysyłać pakiety za pomocą libpcap.? Mam na myśli, na zrootowanym telefonie ... blog nie zdawał się mówić wiele: – Rushil

+1

@Rushil, jest kilka powodów, dla których potrzebujesz komputera połączonego. (1) aby wykorzenić urządzenie, jeśli jeszcze nie jest Zrootowany. (2) aby przenieść plik binarny tcpdump do telefonu. (3) aby uruchomić 'powłokę adb', aby uruchomić tcpdump z. Na zrootowanym telefonie, możesz napisać kod Java, aby wywołać niestandardowe wbudowane' libpcap' binarne, które musiałbyś zaprojektować w celu uzyskania danych z powrotem do GUI w formacie, który możesz wyświetlić.) Chodzi o to, że jeśli Twoim jedynym celem jest zobaczenie nadchodzących pakietów, wszystko co musisz zrobić, to wykorzenić telefon, włączyć debugowanie, push tcpdump, uruchom 'shell adb 'jako root i zacznij używać' tcpdump'. – mpontillo

+0

@Rushil, również, jako Wspominałem, że nawet na zrootowanym urządzeniu podanie aplikacji Java nie jest obsługiwane. Jedyną rzeczą w połowie obsługiwaną (przez społeczność, patrz [androidsu] (http://androidsu.com/superuser/)) jest uruchomienie dowolnego natywnego pliku binarnego jako root. Możesz więc skompilować plik binarny ze statycznie połączonym 'libpcap' wewnątrz (podobnie do' tcpdump'), do którego możesz zadzwonić, aby wykonać pracę, którą chciałeś wykonać. Na przykład można zaprojektować program do wyprowadzania wyników w formacie XML na 'stdout' i wydawania poleceń na' stdin'. – mpontillo

1

Czy obejrzałeś NDK? Może możesz robić, co chcesz w C (++).

+0

Tak, słyszałem o tym, ale nie wiem dokładnie, jak go skonfigurować.Wydaje się skomplikowane :-( – Rushil

1

System operacyjny Android 4.0 lub nowszy zapewnia usługę VpnService, za pośrednictwem której można monitorować ruch sieciowy. Aplikacja dostarczona pod numerem http://www.taosoftware.co.jp/en/android/packetcapture/ używa VpnService, która przechwytuje dane.

+0

Dzięki! W rzeczywistości muszę mieć możliwość "tworzenia" takich narzędzi, a nie korzystać z oprogramowania stron trzecich. Nadal spróbuję tego :-) – Rushil

+0

@sandy - Patrzyłem na VpnService, ale nie byłem w stanie monitorować ruchu sieciowego. Wygląda na to, że służy do łączenia się z VPN, a nie do działania jako jeden. Czy miałeś szczęście to zrobić? – brianestey

+0

@brianestey - próbuję, ale nadal nie mogę znaleźć rozwiązania. – saini

Powiązane problemy