İOS Simulator'dan yapılan ağ çağrılarını izleme


113

Firebug'ın yaptığı gibi bir uygulamadan sunucuma gelen aramaları izlemeye çalışıyorum. Bunu iOS Simulator veya xCode'da görmenin bir yolunu bulamadım.

Tüm trafiği koklamadan bunu yapmanın bir yolu var mı? Hayır ise, hangi aracı önerirsiniz?

Yanıtlar:


85

Şahsen ben Charles'ı bu tür şeyler için kullanıyorum.
Etkinleştirildiğinde, her ağ talebini izler, SSL desteği ve JSON gibi çeşitli istek / yanıt formatı dahil olmak üzere genişletilmiş istek ayrıntılarını görüntüler.

Ayrıca, trafiğin tamamını değil, yalnızca belirli sunuculara yönelik istekleri koklamak için yapılandırabilirsiniz.

Ticari bir yazılım, ancak bir deneme var ve IMHO kesinlikle harika bir araç.


1
Kullanımı ve yapılandırması gerçekten çok kolay ve tam olarak istediğimi yapıyor, teşekkürler!
Mad Echet

4
Sunucunuz olması gerektiği gibi TLS ile korunduğunda kolayca çalışmaz.
karbokatyon

Charles'ı denedim ama giden trafiği çok iyi izleyemedim. Örneğin, POST isteğimin biçimini JSON olarak değiştirmemeliyim
Jesus Rodriguez

24

Diğer yanıtların önerdiği gibi ortadaki adam proxy'si, yalnızca HTTP / HTTPS trafiğini görmek istiyorsanız iyi bir çözümdür. Burp Suite oldukça iyidir. Yine de yapılandırmak bir acı olabilir. Simülatörü onunla konuşmaya nasıl ikna edeceğinden emin değilim. Simülatör yerel Mac ortamınızı kullanacağından, yerel Mac'inizdeki proxy sunucusunu, araya girmesi için bir proxy sunucusu örneğinize ayarlamanız gerekebilir.

Paket koklama için en iyi çözüm ( simülatör için değil, yalnızca gerçek iOS cihazları için çalışıyor olsa da ) kullanmaktır rvictl. Bu blog gönderisinin güzel bir yazımı var. Temelde yaparsınız:

rvictl -s <iphone-uid-from-xcode-organizer>

Ardından Wireshark (veya en sevdiğiniz araç) ile oluşturduğu arayüzü koklarsınız ve işiniz bittiğinde arayüzü şu şekilde kapatırsınız:

rvictl -x <iphone-uid-from-xcode-organizer>

Bu güzel çünkü simülatörü paket koklamak istiyorsanız, yerel Mac'inize giden trafiği de gözden geçirmek zorunda kalıyorsunuz, ancak rvictlUSB'nize taktığınız iOS cihazından gelen trafiği gösteren sanal bir arayüz oluşturuyorsunuz. Liman.


1
Burp Suite için +1, ve onu yapılandırmak için sorun yok: engadget.com/2011/02/21/… 10 dakikadan az sürüyor
Vladimir,

20

Mac'te kolayca çalışan ücretsiz ve açık kaynaklı bir proxy aracı mitmproxy'dir .

Web sitesi, bir Mac ikili programına bağlantılar ve Github'daki kaynak kodu içerir.

Dokümanlar, HTTPS trafiğini görüntülemek için test cihazınıza bir sertifika yüklemeye yönelik çok yararlı bir giriş içerir.

Charles kadar GUI-tastic değil, ama ihtiyacım olan her şeyi yapıyor ve ücretsiz ve bakımı yapılıyor. İyi şeyler ve daha önce bazı komut satırı araçlarını kullandıysanız oldukça basit.

GÜNCELLEME: Web sitesinde mitmproxy'nin homebrew kurulumu olarak mevcut olduğunu fark ettim. Daha kolay olamazdı.


İOS simülatörü için mitm kullanma şansınız oldu mu? Kurdum ancak bilgisayarımdan simülatörün dışındaki trafik de yakalandı, bu en iyisi değil. Bunu gerçek bir cihazda kullanmak harika. Bunu yıllardır yapıyorum.
atreat

mitmweb, mitmproxy'nin HTTP trafiğinin etkileşimli incelenmesine ve değiştirilmesine izin veren web tabanlı kullanıcı arabirimidir. Mitmproxy gibi, mitmdump'tan farklıdır, çünkü tüm akışlar bellekte tutulur, bu da küçük boyutlu örnekleri almak ve işlemek için tasarlandığı anlamına gelir mitmproxy.readthedocs.io/en/v2.0.2/mitmweb.html
Raunak

15

Son zamanlarda bunu kolaylaştıran bir git deposu buldum .

Deneyebilirsin.

Bu bir uygulamanın ekran görüntüsüdür: görüntü açıklamasını buraya girin

Saygılarımla.


Bagel harika ve basit olsa da, son zamanlarda önbelleğe alınmış istekleri de göstereceğini fark ettim. Dolayısıyla, örneğin aktarılan gerçek baytları bilmek istiyorsanız, bu yardımcı olmaz.
BlackWolf

10

Xcode, CFNetwork Tanılama Günlüğü sağlar. Apple doc

Etkinleştirmek CFNETWORK_DIAGNOSTICS=3için Ortam Değişkeni bölümüne ekleyin :

görüntü açıklamasını buraya girin

Bu, Başlıkları ve gövdesiyle Uygulamadan gelen istekleri gösterecektir. Gösterildiği gibi OS_ACTIVITY_MODEayarlanması gerektiğini unutmayın enable. Aksi takdirde, Konsolda hiçbir çıktı gösterilmeyecektir.


4

Wireshark it

Arayüzünüzü seçin

görüntü açıklamasını buraya girin

Ekle filterbaşlacapture

görüntü açıklamasını buraya girin


Test yapmak

GET / POST / PUT / DELETE isteğini tetikleyecek herhangi bir eylem veya düğmeye tıklayın

Wireshark'ta listelendiğini göreceksiniz

görüntü açıklamasını buraya girin

Belirli bir paket hakkında daha fazla ayrıntı öğrenmek istiyorsanız, sadece onu seçin ve İzle> HTTP Akışı .

görüntü açıklamasını buraya girin

umarım bu başkalarına yardım eder !!


3

Kablo bağlantınız ve Mac'iniz varsa, basit ve güçlü bir yöntem vardır:

  1. ücretsiz Wireshark yükleyin, cihazları yakalayabildiğinden emin olun (ve bunu her bilgisayar yeniden başlatıldıktan sonra yapmanız gerekir !):

    sudo chmod 644 / dev / bpf *

  2. Şimdi ağınızı wifi ile paylaşın. Sistem tercihleri> Paylaşım> İnternet Paylaşımı. "Bağlantılarınızı Ethernet üzerinden paylaşın" ve Wi-Fi bağlantınız olduğunu kontrol edin. Ayrıca bazı wifi güvenliğini yapılandırmak isteyebilirsiniz, veri izlemenizi bozmaz.

  3. Telefonunuzu yeni oluşturulan ağınıza bağlayın. Burada oldukça sık birkaç denemeye ihtiyacım var. Telefon bağlanmak istemiyorsa, Mac'in kablosuz ağını kapatın, ardından yukarıdaki 2. adımı tekrarlayın ve sabırlı olun.

  4. Wireshark'ı başlatın, Wireshark ile kablosuz arayüzünüzü yakalayın, muhtemelen "en1" dir. İhtiyaç duyduğunuz IP adreslerini ve / veya bağlantı noktalarını filtreleyin. İlginç bir paket bulduğunuzda, onu seçin, Sağ tıklayın (bağlam menüsü)> TCP Akışını İzle ve isteklerin ve cevapların güzel metin temsilini görürsünüz.

Ve en iyisi nedir: tam olarak aynı numara Android için de geçerlidir!


Bunu simülatörünüzle kullanabilir misiniz? Henüz telefonumda uygulama yok.
Joshua Dance

@Joshua Dance, harici ağ talebi yapıyorsa emülatör ile kullanabilirsiniz. "Kabloyu" (ağ kartı)
geçmediklerinden

1

Bu bir OSX makinesinde nasıl çalışacak? Etiketlerin ikisinin xcode ve ios-simulator olduğunu düşünürsek.
Kevin R.

@KevinR, 1. Telerik, OS X 2 için Fiddler'in beta sürümüne sahip. Sorunun hiçbir yerinde seçimin OS X telerik.com/blogs/using-fiddler-with-apple-ios-devices
Konstantin Salavatov

2
@KonstantinSalavatov, Orijinal gönderinin konusu "iOS Simülatöründen yapılan ağ çağrıları nasıl izlenir".
İOS

1
+1 Bence bunu şimdi yükseltmelisiniz, çünkü artık Mac OS X için destek var! : D telerik.com/fiddler#SupportedTechnologies ve burada telerik.com/download/fiddler/fiddler-osx-beta
David Noreña

1
  1. WireShark'ı yükleyin
  2. xcode ağ monitöründen ip adresi alın
  3. wifi arayüzünü dinle
  4. WireShark'ta filtre ip.addr == 192.168.1.122 ayarla

0

Krom denetleme araçlarına alışkınsanız iyi bir çözüm Pony hata ayıklayıcıdır: https://github.com/square/PonyDebugger

Kurulum biraz acı verici, ancak bir kez yaptığınızda iyi çalışıyor. Yine de kullanmak için Chrome yerine Safari kullandığınızdan emin olun.


0

Netfox kullanıyorum. Kullanımı ve entegrasyonu çok kolaydır. Simülatörde ve cihazda kullanabilirsiniz. Tüm istek ve yanıtları gösterir. JSON, XML, HTML, Görüntü ve Diğer yanıt türlerini destekler. IOS varsayılan paylaşım biçimleriyle (Gmail, WhatsApp, e-posta, slack, sms vb.) İstekleri, yanıtları ve tam günlüğü paylaşabilirsiniz.

GitHub'da kontrol edebilirsiniz: https://github.com/kasketis/netfox

Netfox, iOS veya OSX uygulamanız tarafından gerçekleştirilen tüm yürütülen ağ isteklerine hızlı bir bakış sağlar. Tüm istekleri alır - tabii ki sizinkiler, 3. taraf kitaplıklarından (AFNetworking, Alamofire veya başka gibi), UIWebViews ve daha fazlasından gelen istekler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.