Keygen Analizi - Bölüm 2
September 11, 2022 #reversing #turkishGiriş
Lütfen önceki bölümü okumadan bu bölüme geçmeyiniz. Sadece keygeni istiyorsanız: https://codeberg.org/usdogu/httpdebuggerpro-keygen
Bu bölümde önceki bölümde edindiğimiz bilgileri kullanarak keygeni Rust ile baştan yazmaya çalışıcaz. Projeyi açmak ve bağımlılıkları eklemek için;
Koda Dalış
Öncelikle bağımlılıkları kullanalım;
use ;
use RegKey;
use GetVolumeInformation;
Http Debugger Versiyonunu Çekme
Burada çok da bi olay yok aslında öncelikle HKEY_CURRENT_USER altındaki Software\MadeForNet\HTTPDebuggerPro "subkey"inin içindeki AppVer değerini alıyor daha sonra ise boşluk ile ayırıp son değeri alıyor sonra ise buradan son değeri alıyor yani
"HTTP Debugger 9.0.0.12" -> ["HTTP", "Debugger", "9.0.0.12"] -> "9.0.0.12" oluyor. Bir sonraki satırda ise nokta karakteri olmayan karakterleri tutup noktaları siliyor "9.0.0.12" değeri "90012" oluyor.
Kayıt Defteri İsmini Üretme
Burada ise GetVolumeInformation kullanarak C diskinin seri numarasını serial_number değişkenine yazıyoruz daha sonra ise orijinal versiyondaki bit işlemlerini aynen uygulayıp gelen değeri döndürüyoruz.
Lisans Üretme
Burası da orijinal kodun tamamen kopyası, 3 adet 0 ile 255 arası rastgele değer oluşturuyoruz (u8 = unsigned char = 0-255 arası değer) yalnız dikkatli bir okuyucuysanız ~ yerine ! kullandığımı farketmişsinizdir bunun sebebi Rust'da bit bazlı NOT operatörünün ~ yerine ! olması.
Değeri Kayıt Defterine Yazma
Bunda da çok açıklamaya gerek yok argüman olarak kayıt defteri için ismi ve lisans anahtarını alıyor ve Software\MadeForNet\HTTPDebuggerPro içine yazıyor
Main Fonksiyonu
Çıkış
Şimdilik bu kadardı ufak bir GUI eklenmiş halini görmek isterseniz gönderinin başındaki git deposuna bakabilirsiniz, iyi günler dilerim