anonuser23532
Kıdemli Üye
- 9 Ara 2017
- 2,602
- 12
Obfuscation : Kodları tersine mühendisin okumasını zorlaştırmak neredeyse imkansız hale getirmek.
Bu örnekte de gördüğümüz üzere kodlar obfuscate edilmiş.
**Hiçbir koruma kırılması imkansız hale getirilemez böyle bir şey imkansızdır.
Obfuscationun teknikleri vardır.
1 ) Asıl programı memory üzerinde çalıştırarak kodlar önüne guard olarak.
2 ) Program kodları üzerinde direkt olarak değişiklik yaparak.
Bugün , forum üzerinde paylaşılan bir crackMe olan bazr09'un crackmesinde kullanılan VMProtect'i nasıl çözebiliriz buna bakacağız.
VMProtect'in o sürümünde obfuscationun birinci tekniği kullanılmış.
Asıl program memory üzerinde çalıştırılıyor ve önüne bir koruma getiriliyor dolayısıyla program direkt olarak okunulamıyor.
İlgili CrackMe İçin Buraya Tıklayabilirsiniz..
Burada amacımız memory'de araştırma yaparak okunulabilir kodlara ulaşmak.
: Kullanılan Programlar :
Detect It Easy (Die)
Process Hacker 2
Bu işlem için Process Hacker en ideal araçtır bence.
Programımızı taratalım bakalım bizi hangi koruma(lar) bekliyor ?
Evet VMProtect ama bu gözümüzü korkutmasın.
Çünkü hedefimizdeki native dillerden herhangi birisi ile yazılmış bir program değil.
Bunu nereden mi anlıyoruz ?
Programı açalım.
Programı açtığımızda arkasında gardiyan gibi bir koruma modülünün beklediğini görüyoruz.
Programa baktığımızda ise bize "Ben .NET'im" diye bağırıyor zaten.
İnternette araştırdınız baktınız nasıl unpack edeceğim nasıl unpack edeceğim ve karşılaştınız ki hepsi debuggerlar ile çözülüyor.(Script ile çözülenler dahil)
Registers vb. yapıları bilmeyen biri debugger kullanamaz , kullansa da verimli olmaz.
Program açık haldeyken Process Hacker programımızı çalıştıralım.
Sağ üstte bulunan Search bölümüne programımızın ismini yazarak aratalım ve programımızı bulduktan sonra iki kere tıklayalım.
Açılan pencereden memory sekmesine geçelim.
Size ' a basıp boyutu büyük olan en üste gelecek şekilde sıralayalım.
Evet şimdi görüyoruz ki bu sekmede programın Memory üzerinde çalıştırdığı ve memory üzerinde eriştiği dll ve exe dosyaları mevcut.
Bu sekmede hedefimiz Use kısmı boş olan dosyalar.
Use kısmı boş demek memory de çalıştırılıyor demek yani program üzerinde kendi kendine çalıştırıyor.
Burada boş olan hepsini denemeliyiz arkadaşlar başka yolu yok bunun.
Sadece boş olanlara iki kere tıklyoruz ve açılan ekran göreceksiniz ki hex editor ekranı.
Burada başta MZ olmasına dikkat ediyorsunuz ve MZ olanı alıyorsunuz.
Bunu farklı bir örnekle gösterecek olursak herhangi bir (Şifrelenmemiş) .NET dosyayı hex editor aracılığı ile açarsanız bu görüntüye ulaşırsınız..
Evet bulduk !
Sağ altta bulunan Save buttonuna basıp program isminin sonuna .exe ekleyip kaydedelim.
Çıkan programı tekrar taratalım.
Uygulamalı Video :
[ame="https://www.youtube.com/watch?v=kJuJ0gwfgGI"] [/ame][ame="https://www.youtube.com/watch?v=ubVqh8jtda8"]https://www.youtube.com/watch?v=ubVqh8jtda8[/ame]
Mutlu Son )
Son düzenleme: