IPA statik analizi: Info.plist, yetkilendirmeler ve gömülü dosyalar
Bir iPhone uygulama paketini çalıştırmadan incelersin: Info.plist ayarlarını, yetkilendirmeleri, provizyon profilini, gömülü çerçeveleri ve dosyaları okur, sırları ve riskli ayarları bulup raporlarsın.
Seviye 201 · 22 ders · 18 pratik lab
Dersler
Paketi açmak
- IPA'nın yapısı: Payload, .app paketi, çerçeveler
- plist biçimleri: XML ve ikili plist'i okumak
- Info.plist kimlik alanları: paket kimliği, sürüm, en düşük iOS
- Mağaza şifrelemesi: neden eğitim için hazırlanmış paketlerle çalışıyoruz
- Kısa görev: üç IPA'nın paket kimliği, sürüm ve en düşük iOS tablosunu çıkar
Info.plist ayarları
- App Transport Security istisnaları
- İzin açıklama metinleri: istenen izin ile işlev uyuşuyor mu
- URL şemaları, evrensel bağlantılar ve sorgulanan şemalar
- Arka plan modları ve dosya paylaşımı ayarları
- Gizlilik bildirimi dosyasını okumak
- Kısa görev: bir Info.plist'ten beş bulgu çıkar ve önem sırasına koy
İmza ve yetkilendirmeler
- İkiliden yetkilendirmeleri çıkarmak
- Riskli yetkilendirmeler: get-task-allow, geniş anahtar zinciri grupları
- Gömülü provizyon profilini incelemek: dağıtım türü ve son tarih
- Kod imzası klasörü ve imzalanan kaynaklar
- Kısa görev: bir yayın paketinde kalmış geliştirme yetkilendirmesini bul
Gömülü dosyalar ve ikili
- Paketteki sırlar: plist, JSON ve hizmet yapılandırma dosyaları
- Çerçeve ve SDK dökümü
- İkiliye ilk bakış: mimari, bağlı kütüphaneler, dizgiler
- İkili korumaları: PIE, yığın koruması, ARC
- Kısa görev: bir IPA'daki gömülü servis anahtarını ve test sunucusu adresini bul
Bitirme
- Bitirme görevi: bir sigorta uygulamasının IPA statik inceleme raporunu yaz
Pratik lablar
- Bir IPA'yı aç ve .app paketini bul: Payload klasörünün içeriğini listele.
- İkili plist'i okunur biçime çevir: Info.plist'i XML'e çevir ve kimlik alanlarını çıkar.
- Üç IPA için kimlik tablosunu betikle üret: Paket kimliği, sürüm, en düşük iOS ve çerçeve sayısını CSV'ye yazan betiği hazırla.
- Info.plist'te URL şemalarını bul: Uygulamanın kaydettiği şemaları listele.
- İzin açıklamalarını işlevle karşılaştır: Ayçiçeği Gıda sipariş uygulamasının istediği izinleri işlev listesiyle eşle ve fazlasını raporla.
- Info.plist'ten beş bulgu çıkar ve derecelendir: ATS, dosya paylaşımı, arka plan modları ve şemalardan bulgu yaz, önem ve düzeltme ekle.
- Yayın paketinin yetkilendirmelerini çıkar: Yetkilendirme listesini dosyaya yaz.
- Yayında kalmış geliştirme yetkilendirmesini bul: get-task-allow değerinin açık kaldığı paketi kanıtla.
- Gömülü profil ile imza bilgisini çapraz denetle: Profilin dağıtım türünü, son tarihini ve imzalayan kimliği karşılaştır, tutarsızlığı bulgu olarak yaz.
- Paketteki yapılandırma dosyalarını listele: plist ve JSON dosyalarını bul.
- Gömülü servis anahtarını ve test adresini bul: Hizmet yapılandırma dosyasında ve dizgilerde sırları ara.
- Üç sır için platforma uygun düzeltme öner: Her sırrın sunucuya taşınması mı, kısıtlanması mı gerektiğini gerekçesiyle yaz.
- Gömülü çerçeveleri listele: Frameworks klasöründeki kütüphaneleri ve sürümlerini çıkar.
- İkilinin koruma bayraklarını denetle: PIE, yığın koruması ve ARC kullanımını llvm-otool ile doğrula.
- SDK dökümünü gizlilik bildirimiyle karşılaştır: Paketteki SDK'ları bildirim dosyasındaki beyanlarla eşleştir ve beyansız olanı bul.
- Bir bulguyu kanıt, etki, düzeltme biçiminde yaz: ATS istisnasını üç bölümlü bulguya çevir.
- Android ve iOS bulgularını tek tabloda birleştir: Aynı uygulamanın iki paketinden çıkan bulguları ortak ve platforma özel diye ayır.
- Sigorta uygulamasının IPA raporunu yaz: Özet, altı bulgu ve düzeltme sırasını içeren statik inceleme raporunu teslim et.
Kurs hakkında
Bir iPhone uygulama paketini çalıştırmadan incelersin: Info.plist ayarlarını, yetkilendirmeleri, provizyon profilini, gömülü çerçeveleri ve dosyaları okur, sırları ve riskli ayarları bulup raporlarsın.
Ne öğreneceksin
- Paketi açmak
- Info.plist ayarları
- İmza ve yetkilendirmeler
- Gömülü dosyalar ve ikili
- Bitirme
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.