2011-10-23 26 views
5

Android'de nasıl geliştirileceğini ve Apache HTTP lib'ini nasıl kullanacağımı biliyorum, ancak daha düşük gitmek, kablosuz arabirim adaptörünü ele geçirmek ve & paketlerini kablosuz olarak gönderebilmek istiyorum. Android pazarında sniffer uygulamaları olduğundan bunun mümkün olduğunu biliyorum. Etrafa baktım ve çok googledim, ancak nasıl başlayacağımıza dair bir fikre sahip olamadım. Şaşırtıcı bir şekilde, hiç kimse bu soruyu SO'dan önce de sormamış görünüyor.Android'de Paket Düzeyinde Ağ İletişimi

Sanırım bunu sizin için yapan bir Android API'si yok. Lütfen android'de paket göndermek/göndermek için bir yol önerir veya bu tür kaynaklara referanslar göndermenizi öneririz.

Teşekkürler!

Not Not: Biliyorum java.net api (daha önce kullanmadığım halde) androidde kullanılabilir ama bu bana istediğim erişim türünü vermiyor.

+0

Buradaki asıl amaç nedir? – EJP

+0

BSNL (ISP) sunucusuna Köprü modunda olan bir erişim noktası üzerinden bağlanabilen bir uygulama oluşturmak istiyorum. bunun dışında birçok ilginç şeyler yapılabilir. – Rushil

+0

@Rushil, köprü modunun bir şeyle ne ilgisi var? Genellikle insanlar "köprü modu" hakkında konuştuklarında, amacı bir Ethernet üzerinden kablosuz LAN'a erişim sağlamak olan bir erişim noktası gibi davranmayan bir cihaza sahip olma bağlamındadır. Geçici kablosuz hakkında mı konuşuyorsunuz? Öyleyse, [bu soru] konusuna bakın (http://stackoverflow.com/questions/1932150/can-android-do-peer-to-peer-ad-hoc-networking). – mpontillo

cevap

2

Standart SDK/NDK ile bunu yapmanın bir yolu yoktur.

Köklü bir aygıtta, tcpdump veya başka libpcap tabanlı bir uygulamayı arayabilirsin. Java uygulamalarına, bir üretim Android cihazında gerekli ayrıcalıkları vermek için desteklenen bir yol yoktur. Örneğin, this blog post, tcpdump'un Android'de temel bir paket yakalama işlemi nasıl kullanılacağını açıklar.

+0

Teşekkürler! Bu iyi bir başlangıç! Ama bu blog yazısı, bir bilgisayara bağlı android cihazınızın olması gerektiğini söyledi.Kullanarak paketleri yakalamak ve göndermek mümkün bir uygulama oluşturmak mümkün değil libpcap.? Yani, köklü bir telefonda ... blog yazısı çok fazla görünmüyordu. – Rushil

+1

@Rushil, bağlı bir PC'ye ihtiyacınız olması için birkaç neden var. (1) köklü. (2) tcpdump ikili telefona itmek için. (3) tcpdump çalıştırmak için 'adb shell 'çalıştırmak için. Köklü bir telefonda, özel bir' libpcap' tabanlı tabanlı içine çağırmak için Java kodu yazabilirsiniz Görüntüleyebileceğiniz bir biçimde GUI'nize veriyi geri almak için tasarlamanız gereken ikili. Buradaki tek amaç, karşınıza gelen paketleri görmekse, yapmanız gereken tek şey telefonunuzu hata ayıklama, tcpdump itme, root olarak 'adb shell' komutunu çalıştırma ve tcpdump 'ı kullanmaya başlama. – mpontillo

+0

@Rushil, ayrıca, Köklü bir cihazda bile bir Java uygulaması veren root ayrıcalıklarının desteklenmediğini belirttim. Desteklenen tek şey (topluluk tarafından, bkz. [Androidsu] (http://androidsu.com/superuser/)) kök olarak keyfi bir yerel ikili başlatmaktır. Böylece, yapmak istediğiniz işi yapmak için arayabileceğiniz, statik olarak bağlantılı bir libpcap'ın (tcpdump'a benzer) bir ikili ile çapraz derleme yapabilirsiniz. Örneğin, programı "stdout" üzerinde XML formatı sonuçları elde etmek ve 'stdin' komutları vermek için tasarlayabilirsiniz. – mpontillo

1

NDK'ya bir göz attınız mı? Belki de C (++) 'da istediğini yapabilirsin.

+0

Ya bunu duymuştum ama tam olarak nasıl kurulacağımı bilmiyorum.karmaşık görünüyor :-( – Rushil

1

Android OS 4.0 veya üstü, ağ trafiğini izleyebileceğiniz bir VpnService sağlar. http://www.taosoftware.co.jp/en/android/packetcapture/ adresinde sağlanan uygulama verileri yakalayan VpnService kullanır.

+0

Teşekkürler! Aslında, üçüncü taraf yazılımları kullanmamak için bu tür araçları "yapabilmem gerekiyor". Yine de bunu deneyeceğim :-) – Rushil

+0

@sandy - VpnService'ye bakıyorum ama ağ trafiğini izleyemedim. Bir VPN'ye bağlanmak için kullanılıyormuş gibi gözüküyor. Bunu yaparken hiç şansın oldu mu? – brianestey

+0

@brianestey-Deniyorum ama hala bir çözüm bulamıyorum. – saini