ERSOYULUBEY
Uzman Üye
- Katılım
- 29 Eyl 2024
- Mesajlar
- 508
- Beğeniler
- 50
hocam bu yararlı konudan THEMİDA/ VMPROTECT ile korunan dosyalarada unpack gelır mı=================================================== === =======Merhaba
Lütfen konuya yorum yapmadan önce aşşagıdaki metni okuyun.
Bunun, makalemin başka bir forumdan yeniden yüklenmesi olduğunu hemen söyleyeceğim, bu nedenle, bu makalede kendiniz için keşfettiğiniz bilgilerin alakasız olmaktan öteye gitme olasılığı çok yüksektir. (İstisna: CrâckMe)
Bu daha çok kendinize bir hatırlatmadır, çünkü...işinize yarayabilicek bilgileri cheatglobal sitesinde toplamak amacım dışında başka bir amacım yoktur polemik vesaire yapmazsanız sevinirim
=================================================== === =======
Uzun zaman önce crackmes.one'da bir çatlakla karşılaştım, şifre karşılaştırması ve yeni başlayanların hata ayıklamasını engelleyecek iki ters önleme tekniği içeren oldukça ilkel bir çatlaktı. Şifre karşılaştırmasının ilkelliğiyle ilgili noktayı unutmayın, sonuçta bu çatlağın yazarı 6 üzerinden 3 (Orta) puan verdi.
Savunmanın analiziyle başlayalım çünkü yukarıda da söylediğim gibi yeni başlayanlar için büyük sıkıntı yaratacaktır. Öncelikle size hangi hata ayıklama önleme işlevlerini kullandığını anlatacağım.
IsDebuggerPresent - PEB yapısını okuyan bir BOOL işlevi, Crâck'te sürekli olarak doğru olup olmadığını kontrol eden sonsuz bir döngüde durur.
CreateToolhelp32Snapshot -Belirtilen işlemlerin yanı sıra bu işlemler tarafından kullanılan yığınların, modüllerin ve iş parçacıklarının anlık görüntüsünü alır.
Process32Next - Sistem anlık görüntüsüne kaydedilen bir sonraki işlem hakkındaki bilgileri alır.
Process32First - Sistem anlık görüntüsünde bulunan ilk işlem hakkındaki bilgileri alır.
Zaten anlayabileceğiniz gibi program, sonsuz bir döngüde çalışan süreçlerin varlığını kontrol eder.
Şu süreçleri arıyor:
Linkleri görebilmek için kayıt olmanız gerekmektedir
Interium yükleyici ayrıca bu işlevler aracılığıyla çalışan işlemleri de kontrol eder =)
Bu hileleri aşmaya başlayalım. IsDebuggerPresent aptalca 0x1 (doğru) için CMP aracılığıyla kontrol yaptığından, kontrolü 0x55 (upd: hiçbir şey sizi tüm bunları yapmaktan alıkoyamaz veya mov eax, 0x1; koy)
gibi başka herhangi bir sayıyla (1 ve 0 hariç) değiştirebilirsiniz.
Fonksiyonun başlangıcına geri dönelim, ancak yazarken bunun komik bir şey olduğunu düşündüm ve bu şekilde yaptım )
Linkleri görebilmek için kayıt olmanız gerekmektedir
İlk numara atlandı. Devam edelim.
Burada aynı işlem adı kontrolü zaten yapılıyor. İlk bakışta buradaki atlamaları yamalamak çok kanamalı olacak gibi görünüyor, çünkü çok fazla atlama var =)
Aslında burada fonksiyonun başlangıcında PUSH EBP'yi RET'e yeniden yazmak yeterli, böylece tüm kontrolleri kestik. tek talimatla işlem adları.
Şimdi fonksiyon şuna benziyor:Kod:C++: void CheckProcessName() { return; // Original code }
Linkleri görebilmek için kayıt olmanız gerekmektedir
Linkleri görebilmek için kayıt olmanız gerekmektedir
Ve böylece hata ayıklayıcıya karşı iki hileyi atladık. Sonra bir şifremiz var, yine de süpürgeden daha kolay. Üçüncü seviye çatlaklar için bu oldukça ciddi bir sorundur ve şifreyi bulmayı çok kolaylaştırır.
Linkleri görebilmek için kayıt olmanız gerekmektedir
Kayıttan gelen değerin ve belirli bir değişkenin karşılaştırıldığı talimata bir kesme noktası koymanız gerekir, kesme noktasına geçtikten sonra şifrenin kendisi görüntülenecektir.
Linkleri görebilmek için kayıt olmanız gerekmektedir
Şifre: 0111011101111000011000110111000001110111011100100110010101111000010011000101100001101000011010110111010101110000100110 0
FINISH
Linkleri görebilmek için kayıt olmanız gerekmektedir