Crack Hazırlama - Part2
Programımızı unpack ettiğimize göre artık decompile işlemine geçebiliriz.
Decompile nedir?
Decompile, herhangi bir programın yazıldığı dilin kaynak koduna geri çevrilmesi işlemine denir.
Ben burada "DeDe" adlı decompiler programını kullanacağım.Siz istediğiniz bir decompiler programını kullanabilirsiniz.Şimdi önceden unpack ettiğimiz programımızı sürükle bırak yöntemi ile decompiler programımızda açalım:
Görüldüğü üzere belli Class'lar gelmeye başladı.Buradan "Procedures" adlı bölüme gelelim:
Geldikten sonra burada "TAboutBox" yazan yere tıklıyoruz.Buraya tıklamamızın sebebi hatırlarsanız ilk başta ücret karşılığında tam sürüm kullanmamızı söyleyen bir kutucuk vardı.O kutucuğun başlığı "About" olduğu için bizde "TAboutBox" adlı class'ı seçtik.Masaüstü program geliştiricileri dediğim hususu daha iyi anlayacaklardır.
"TAboutBox" class'ını seçtikten hemen sonra altında belli fonksiyonlar var.Burada "FormCreate" fonksiyonunun bellek adresini seçmemiz gerekiyor çünkü programımızı açtığımızda karşımıza "About" başlığı altında bir kutucuk açılıyor ve bu kutucuğun açılmasını da "FormCreate" adlı fonksiyon tetikliyor.Burada bulunan "RVA" başlığı altında gösterilmiş birçok fonksiyonun bellek adresleri var.Burada biz "FormCreate" fonksiyonunun bellek adresini kopyalıyoruz.Bellek adresini kopyaladıktan sonra "ollydbg" adlı aracımıza geçiyoruz.
Ollydbg nedir?
Tersine mühendislik, cracking veya zararlı yazılım analizlerinde kullanılan, ikili kod analizini vurgulayan gelişmiş bir araçtır.
İlk olarak unpack ettiğimiz dosyamızı ollydbg ile açıyoruz:
Açtıktan sonra assembly kodlarının bulunduğu bölümün üzerine mouse ile gelip "CTRL+G" kısayol tuşları ile önceden kopyaladığımız "FormCreate" fonksiyonunun bellek adresini ok tuşuna basıp aratıyoruz:
Bellek adresimize karşılık gelen assembly kodu şöyle:"PUSH EBP".Bu assembly kodu ile stack alanına EBP registerı atanmış.Burada arattığımız bellek adresine "F2" kısayol tuşu ile bir tane breakpoint koyuyorum:
Koyduğumuz breakpoint sayesinde program her çalıştığında artık o bellek adresinin bulunduğu konumdan başlayacaktır.Yani her açılışta about başlığı altında bulunan kutucuğun açıldığı yerden başlayacaktır.Şimdi "F9" ile programımızı run ediyoruz:
Run ettikten sonra mavi ile işaretlediğim yerin üzerine mouse ile gelerek enter tuşuna basıyorum:
Enter tuşuna bastıktan sonra bizi assembly kodlarının bulunduğu bölüme atacaktır.Burada mavi ile işaretlediğim yerde bize "XOR EAX, EAX" diye bir assembly kodu vermiş.Burada "EAX" register'ının içerisi sıfırlanmış.Herhangi bir register'ı XOR kapısına 2 defa sokarsanız, soktuğunuz register'ın içi sıfırlanır.Şimdi bizim birtane atlama değeri bulmamız gerekiyor.Kaydırma çubuğumu yukarı doğru çektiğimde bir tane atlama değeri görüyorum:
"JE" komutu zero bayrağının aktifleşmesi ile yani zero bayrağının 1 olması ile atlayacağı anlamına geliyor.Yani programımız açıldığı esnada o kutucuğun açılmasınıda bu assembly kodu tetikliyor.Kodun üzerine gelip mouse ile iki kere sağ tık yapıyorum:
"JE" yazan yeri "JMP" olarak değiştiriyorum ve koşullu atlamayı kaldırıyorum.Assemble butonuna basarak kodu kaydediyorum.Ve görüldüğü üzere kodumuz kaydedilmiş oldu:
Şimdi ise kodun üzerine gelip "Copy to executable" > "Selection" diyerek assembly kodlarının bulunduğu bölümü seçiyorum.Ve artık crack dosyamız hazır.Sadece kaydetmemiz gerekiyor.Mouse ile tekrardan sağ tık yapıp, "Save file" diyorum:
Dosyamın ismini "CrackFıle" olarak isimlendirip, masaüstüne oluşturmasını seçtim.Son olarak "Kaydet" butonuna basarak crack'li dosyayı kaydediyorum.Dosyayı çalıştırdığımızda ise mutlu son ile bitirmiş oluyoruz:
Artık programı beleş olarak kullanabilirsiniz
Part1:
Crack Hazırlama - Part1
Crack Hazırlama - Part1 Crack Nedir? Herhangi bir yazılımın istenmeyen koruma özelliklerini, nag ekranlarını veya adware gibi yazılım sıkıntılarını ortadan kaldırmaya Crack denir.Crack hazırlayan kişilere ise Cracker denir. Crack Nasıl Hazırlarlanır? Ben "Absolute GIF Optimizer" adlı gif...
turkhackteam.org