~/sibercrew
Temel Python

Python ile Dosya İşlemleri

Bir Python programının dosya okuması, yazması ve bu bilgiyi güvenlik amaçlı nasıl kullanabileceği.

Gerçek dünyadaki birçok güvenlik görevi, bir şekilde DOSYALARLA çalışmayı gerektirir — bir log dosyasını incelemek, bir sonuç listesini kaydetmek, bir kelime listesini (wordlist) okumak gibi. Bu makalede Python'da temel dosya işlemlerini öğreniyoruz.

Bir Dosyayı Okuma

Python'da bir dosyayı okumanın en temel yolu open() fonksiyonudur:

python
dosya = open("hedefler.txt", "r")  # "r" = read (okuma modu)
içerik = dosya.read()
print(içerik)
dosya.close()  # dosyayı kapatmayı unutma!

Ancak dosyayı close() ile kapatmayı unutmak, yaygın bir hatadır ve kaynak sızıntısına (resource leak) yol açabilir. Bu yüzden Python'da daha güvenli ve önerilen yöntem with ifadesidir:

python
with open("hedefler.txt", "r") as dosya:
    içerik = dosya.read()
    print(içerik)
# dosya, bu blok bittiğinde OTOMATİK olarak kapanır

with kullanmak, dosyanın işin bitince otomatik kapanmasını garanti eder — bunu her zaman tercih etmelisin.

Dosyayı Satır Satır Okuma

Büyük bir dosyayı (örneğin binlerce IP adresi içeren bir liste) tek seferde tüm içeriğini belleğe yüklemek yerine, SATIR SATIR işlemek genelde daha pratiktir:

python
with open("hedefler.txt", "r") as dosya:
    for satir in dosya:
        satir = satir.strip()  # satır sonundaki görünmez boşluk/yeni satır karakterini temizler
        print(f"Hedef bulundu: {satir}")

strip() fonksiyonu önemlidir çünkü bir dosyadaki her satırın sonunda genelde görünmeyen bir "yeni satır" karakteri bulunur — bunu temizlemezsen, karşılaştırma yaparken (örneğin bir IP'nin listede olup olmadığını kontrol ederken) beklenmedik hatalarla karşılaşabilirsin.

Bir Dosyaya Yazma

Bir tarama veya analiz sonucunu kaydetmek istediğinde, dosyaya YAZMA moduna ihtiyacın olur:

python
with open("sonuclar.txt", "w") as dosya:  # "w" = write (yazma modu)
    dosya.write("Port 443: açık\n")
    dosya.write("Port 22: açık\n")

Dikkat: "w" modu, eğer dosya zaten varsa, İÇERİĞİNİ TAMAMEN SİLİP baştan yazar. Eğer mevcut bir dosyanın SONUNA yeni satırlar EKLEMEK istiyorsan (silmeden), "a" (append - ekleme) modunu kullanmalısın:

python
with open("sonuclar.txt", "a") as dosya:
    dosya.write("Port 3389: kapalı\n")  # mevcut içeriğin SONUNA eklenir

Pratik Bir Örnek: Basit Bir Log Analizörü

Bir önceki makalelerde öğrendiklerimizi (döngüler, koşullar, dosya okuma) birleştirerek, basit ama gerçek bir işe yarayan bir örnek yazalım — bir log dosyasında "başarısız giriş" kaydı arayan bir script:

python
basarisiz_giris_sayisi = 0

with open("giris_loglari.txt", "r") as dosya:
    for satir in dosya:
        if "BAŞARISIZ" in satir:
            basarisiz_giris_sayisi += 1
            print(f"Şüpheli kayıt: {satir.strip()}")

print(f"\nToplam başarısız giriş denemesi: {basarisiz_giris_sayisi}")
if basarisiz_giris_sayisi > 10:
    print("UYARI: Çok sayıda başarısız giriş denemesi tespit edildi!")

Bu küçük script, Adli Bilişim kütüphanemizdeki "Log Analizi" makalesinde bahsettiğimiz profesyonel araçların (Plaso gibi) yaptığı işin, çok küçük ve basitleştirilmiş bir versiyonunu gösteriyor — büyük, karmaşık araçlar da temelde bu tür basit mantıkların (dosyayı oku, belirli bir örüntüyü ara, say, uyar) üzerine inşa edilir.

Bu makale, Python'da dosya işlemlerine giriş niteliğinde, başlangıç seviyeli bir özetidir; SiberCrew ekibi tarafından hazırlanmış özgün içeriktir.