Android statik analiz temelleri: apktool, jadx ve aapt2
Bir APK'yı çalıştırmadan incelemeyi öğrenirsin: paketi açar, manifesti ve kaynakları okur, jadx ile kodu gezer, gömülü sırları ve riskli ayarları bulup düzgün bir bulgu notuna çevirirsin.
Seviye 201 · 22 ders · 18 pratik lab
Dersler
Paketi açmak
- Statik analiz iş akışı: önce ne, sonra ne
- unzip ile apktool farkı: ikili XML ve kaynak tablosu
- apktool ile çözmek: klasör yapısı ve apktool.yml
- aapt2 dump: badging, izinler ve kaynaklar
- Kısa görev: üç APK'yı çöz ve paket adı, sürüm, min ve hedef SDK tablosu çıkar
Manifest ve yapılandırma
- Manifestteki güvenlik bayrakları: debuggable, allowBackup, usesCleartextTraffic
- İzin incelemesi: istenen izin ile işlev uyuşuyor mu
- Manifestten dışa açık yüzeyi çıkarmak
- Ağ güvenliği yapılandırmasını okumak
- Kısa görev: bir manifestten beş güvenlik bulgusu çıkar ve önem sırasına koy
Kodu okumak
- jadx komut satırı: çıktı klasörü ve hata veren sınıflar
- Giriş noktalarını bulmak: Application, başlatıcı activity, dışa açık bileşenler
- Kodda desenle arama: URL, anahtar, kripto ve günlük çağrıları
- Karartılmış adlarla kod okumak: a.b.c ne demek
- Veri akışını izlemek: girdiden riskli çağrıya
- Kısa görev: oturum belirtecinin nerede saklandığını koddan izleyerek bul
Sırlar, kaynaklar ve imza
- strings.xml, assets ve raw klasöründe sır aramak
- Üçüncü taraf SDK dökümü: paket adlarından kütüphane tanımak
- İmza ve sertifika denetimi: hata ayıklama sertifikası, şema sürümleri
- Statik bulgu yazmak: kanıt, etki, düzeltme
- Kısa görev: bir APK'daki gömülü üç sırrı bul ve her biri için düzeltme öner
Bitirme
- Bitirme görevi: bir kargo takip uygulamasının statik inceleme raporunu yaz
Pratik lablar
- apktool ile bir APK'yı çöz: Bir APK'yı çöz ve çıkan klasörde manifestin, smali'nin ve kaynakların yerini göster.
- unzip ile apktool çıktısını karşılaştır: Aynı APK'yı iki yolla aç ve manifestin neden yalnızca birinde okunabildiğini açıkla.
- Üç APK için kimlik tablosunu betikle üret: aapt2 çıktısını işleyen bir betikle paket adı, sürüm, SDK ve izin sayısını tabloya dök.
- Manifestte hata ayıklama ve yedekleme bayrağını bul: Çözülmüş manifestte debuggable ve allowBackup değerlerini bul ve risklerini yaz.
- İzinleri işlevle karşılaştır: Mercanköşk Otelcilik rezervasyon uygulamasının izinlerini işlev listesiyle eşle ve fazla olanları raporla.
- Manifestten beş bulgu çıkar ve derecelendir: Bayraklar, dışa açık bileşenler ve ağ yapılandırmasından beş bulgu yaz, her birine önem derecesi ve düzeltme ekle.
- jadx ile başlatıcı activity'yi bul: APK'yı jadx ile çöz ve uygulamanın açılış sınıfını göster.
- Giriş isteğini gönderen sınıfı bul: Kodda giriş uç noktasını çağıran sınıfı ve gönderilen alanları çıkar.
- Karartılmış kodda belirtecin yolunu izle: Adları karartılmış bir APK'da belirtecin alındığı yerden saklandığı yere kadar çağrı zincirini belgeleyerek çıkar.
- Koddaki bütün adresleri listele: ripgrep ile çözülmüş kodda geçen adresleri çıkar ve test sunucusunu işaretle.
- Kripto ve günlük çağrılarını desenle bul: Şifreleme kipi ve günlük çağrılarını arayan desenler yaz, riskli olan üç sonucu ayır.
- Arama desenlerini yeniden kullanılabilir denetim listesine çevir: On desenlik bir arama dosyası hazırla, iki farklı APK'da çalıştır ve yanlış alarmları ayıklayarak sonuçları raporla.
- assets klasöründe yapılandırma dosyasındaki sırrı bul: Çözülmüş APK'nın assets klasöründe servis parolası içeren dosyayı bul.
- Üçüncü taraf SDK dökümü çıkar: Paket adlarından uygulamadaki SDK'ları tanı ve analitik, reklam, ödeme diye sınıflandır.
- Üç gömülü sır için düzeltme önerisi yaz: Bir APK'daki üç sırrı bul, hangisinin sunucuya taşınması, hangisinin kısıtlanması gerektiğini gerekçesiyle yaz.
- Bir bulguyu kanıt, etki, düzeltme biçiminde yaz: Düz metin trafik iznini üç bölümlü bir bulgu notuna çevir.
- İmza denetimini bulguya çevir: Hata ayıklama sertifikasıyla imzalanmış APK için kanıt çıktısıyla birlikte bulgu yaz.
- Kargo takip uygulamasının statik raporunu yaz: Kuzeyyıldızı Kargo uygulamasını incele; özet, altı bulgu ve düzeltme sırasını içeren raporu teslim et.
Kurs hakkında
Bir APK'yı çalıştırmadan incelemeyi öğrenirsin: paketi açar, manifesti ve kaynakları okur, jadx ile kodu gezer, gömülü sırları ve riskli ayarları bulup düzgün bir bulgu notuna çevirirsin.
Ne öğreneceksin
- Paketi açmak
- Manifest ve yapılandırma
- Kodu okumak
- Sırlar, kaynaklar ve imza
- 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.