Obfuscation & .NET Üzerinde VMProtect Unpack //Phemis | Tersine Mühendislik #4

anonuser23532

Kıdemli Üye
9 Ara 2017
2,602
12
IT23OH.png

Q7cBIz.png


Obfuscation : Kodları tersine mühendisin okumasını zorlaştırmak neredeyse imkansız hale getirmek.
Control%20Flow%20Obfuscation%20Example.png

ig53vq.png

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.

x1BBWJ.png



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.

x1BBWJ.png




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.

x1BBWJ.png


: Kullanılan Programlar :
Detect It Easy (Die)

Process Hacker 2

x1BBWJ.png


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 ?


uF1Ghn.png



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.


mx8wyt.png



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.


eGSEQj.png



Açılan pencereden memory sekmesine geçelim.
Size ' a basıp boyutu büyük olan en üste gelecek şekilde sıralayalım.


FckRkM.png



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.


UiioO9.png

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..


WM6ikd.png



Evet bulduk !
Sağ altta bulunan Save buttonuna basıp program isminin sonuna .exe ekleyip kaydedelim.
Çıkan programı tekrar taratalım.


0w2Ddt.png


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:

cemx42

Katılımcı Üye
30 Haz 2018
315
0
.net uygulama unpack en kolayı zaten
Eline sağlık
Bunun aynisini megadumpper yapmiyormuydu ?
 

cemx42

Katılımcı Üye
30 Haz 2018
315
0
Merhaba ,
Evet , MegaDumper'de memoryden geçen dosyaları kopyalar ve Dumps klasörüne aktarır fakat .NET özelliği false olan programlara karşı MegaDumper'i kullanamazsınız :))

Doru bu programi ben .net saniyordum :trl
Zamanim olirsa cheat engine cracki ben gostermiyi planliyorum
Herkes sadece hile yapmaya yarar saniyor :)
 

Javabex

Üye
29 Eki 2018
223
0
Doru bu programi ben .net saniyordum :trl
Zamanim olirsa cheat engine cracki ben gostermiyi planliyorum
Herkes sadece hile yapmaya yarar saniyor :)

D:QWddsf bende onlara gülüyorum zaten, bence mühenidslik harikası bir yazılım ^^

+ konuun incelemedim ama vmrpotectle c++ falan packliyorsun net yapılıyor fakat megadmpr falan kırılıyor :D C++ olanları kırmak mesele
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.