Python ile ikili dosya analizi: capstone, lief ve pwntools
Derlenmiş programları Python ile söker, yamalar ve laboratuvardaki eğitim programlarında bellek hatalarının nasıl oluştuğunu ve nasıl önlendiğini kanıtlarsın.
Seviye 501 · 14 ders · 12 pratik lab
Dersler
Sökmek ve okumak
- capstone ile makine kodunu sökmek
- lief ile bölümler, semboller ve içe aktarımlar
- Dizgileri ve onlara başvuran kodu bulmak
- Kısa görev: eğitim programında doğrulama işlevini bul
Bellek hatalarını anlamak
- pwntools ile süreçle konuşmak ve girdiyi otomatikleştirmek
- Yığın taşmasını laboratuvar programında gözlemlemek
- Korumalar: NX, ASLR, PIE, kanarya ve checksec
- Çökme dökümlerini sınıflandırıp istismar edilebilirliği değerlendirmek
- Kısa görev: açıklı programı korumalarla yeniden derle ve farkı kanıtla
Otomasyon
- lief ile ikili dosyayı yamalamak
- unicorn ile kod parçasını öykünmek
- Gizlenmiş dizgileri çözen betik yazmak
- Kısa görev: zararlı örneğin gömülü ayarlarını çıkar
Kapanış
- Bitirme görevi: bilinmeyen bir programın davranış ve risk raporu
Pratik lablar
- Programın içe aktardıkları: lief ile verilen eğitim programının bölümlerini, sembollerini ve içe aktardığı işlevleri listeleyen ve ağ ile dosya işlevlerini ayrıca işaretleyen bir betik yaz.
- Bu dizgiyi hangi kod kullanıyor: Eğitim programındaki hata mesajı dizgisinin adresini bul, capstone ile söktüğün kodda bu adrese başvuran yönergeleri tespit et ve ait olduğu işlevi göster.
- Doğrulama işlevini bul: Sembolleri silinmiş eğitim programında lisans doğrulamasını yapan işlevi dizgi başvuruları ve çağrı yapısından bul, mantığını sözde kodla açıkla ve betiğinle doğrula.
- Korumaların envanteri: Bir klasördeki ELF dosyalarında NX, PIE, kanarya ve RELRO durumunu Python ile denetleyip tablo hâlinde raporlayan ve korumasız derlenenleri işaretleyen bir betik yaz.
- Korumalarla yeniden derle: Kaynak kodu verilen hatalı eğitim programını korumalar kapalı ve açık olarak derle, aynı uzun girdiyle iki davranış arasındaki farkı pwntools betiğiyle göster.
- Çökme dökümlerini sınıflandır: Demirhan Makine test ekibinin biriktirdiği çökme girdilerini pwntools ile yeniden çalıştırıp çökme yerine göre grupla, her grubun türünü belirle ve düzeltme önceliğini gerekçeli sırala.
- Menülü programı betikle sür: Etkileşimli menüyle çalışan lab programına pwntools ile bağlanıp kayıt ekleyen, listeleyen ve çıkan bir betik yaz ve çıktıları doğru ayrıştırdığını göster.
- Taşmanın tam yerini ölç: Eğitim programına artan uzunlukta girdi gönderip çökmenin başladığı uzunluğu bulan bir pwntools betiği yaz ve kaynak koddaki hatalı tampon boyutuyla eşleştirip düzeltmeyi öner.
- Bilinmeyen programın risk raporu: Brightfield Labs sunucusunda bulunan bilinmeyen eğitim programı için içe aktarımlar, dizgiler, korumalar ve gömülü verilerden davranış tahmini çıkaran betikler yaz ve kanıta dayalı kısa bir risk raporu üret.
- Gizlenmiş dizgileri çöz: Eğitim örneğinde tek baytlık anahtarla gizlenmiş dizgileri bulan ve çözen bir betik yaz, ortaya çıkan alan adlarını ve dosya yollarını listele.
- Çözme rutinini öykün: Eğitim örneğindeki dizgi çözme işlevini unicorn ile programı çalıştırmadan öykün ve çözülen tüm dizgileri adresleriyle birlikte üret.
- Gömülü ayarları çıkar: Lab’daki eğitim amaçlı zararlı benzetiminin veri bölümüne gömülü, kodlanmış ayar bloğunu bulup çözen bir betik yaz ve sunucu adresi ile aralık değerini savunma ekibi için IOC olarak raporla.
Kurs hakkında
Derlenmiş programları Python ile söker, yamalar ve laboratuvardaki eğitim programlarında bellek hatalarının nasıl oluştuğunu ve nasıl önlendiğini kanıtlarsın.
Ne öğreneceksin
- Sökmek ve okumak
- Bellek hatalarını anlamak
- Otomasyon
- Kapanış
Ön koşullar
Aynı yolun 401 düzeyine kadar olan konularında deneyimli olmalısın.
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 501 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.