Tekil Mesaj gösterimi
Alt 17-04-2019 20:11  
  • Phemis
  • Analiz Ekibi
  • Üye Bilgileri
Üyelik tarihi
12/2017
Mesajlar
Konular

Teşekkür (Etti):
Teşekkür (Aldı):


Unpacking Modded ConfuserEx // Phemis | Tersine Mühendislik #3





Unpack : Hedef dosyanın kodlarında karşılaştığımız korumanın kırılması
Modded ConfuserEx : ConfuserEx adlı obfuscate yazılımının saf kodlarını değiştirerek otomatik unpack yazılımlarından kaçırabilir hale getirilmiş ConfuserEx




: Kullanılan Programlar :
Debugger / dnSpy-x86
Scanner / Detect It Easy (die)





Bakalım burda ne vaar





hmm hiç koruması yokmuş
Kodlarına bakalım emin olalım derkeeeen...





Arkadaşlar işin püf noktası anti tamperi kaldırarak gchandle.Free() kod satırına bp koymak daha sonrasında çalıştırmak ve içeriden geçen modülü almak.


Şimdi yukarıdaki resimde gördüğünüz gibi kodlarda Anti Tamper var.
x0rz'un modladığı ConfuserEx 'lerde (denedim) otomatik araçlar ile anti tamper kalkmıyor.
O yüzden şimdi manuel bir şekilde kaldıracağız.






Bu şekilde yaparak module.cctor ' a gidelim.



Evet burada göreceğiz ki for döngüsü içerisinde sadece bir işlem çalıştırılıyor.
Bu işlem de tahmin ettiğimiz üzere Anti Tamper işlemi.





O noktaya BreakPoint (bp) koyarak programı debuglayalım.






Çalıştırdığımız zaman bp koyduğumuz noktada sarılaşma olacak ve program duracak.
Modules sekmesinde (Eğer sizde yoksa Üst taraftan Debug > Windows > Modules)
Bir modül olduğunu göreceğiz.


O modülü memory de açalım.





Evet program solda açılacak gördüğünüz üzere.


Debug'ı durdurabiliriz.
Solda sadece bizim memoryde açtığımız modül kalacak şekilde diğerlerini silelim de temiz olsun
Şimdi tekrar module.cctor'a gidip aşağı indiğiniz vakit göreceksiniz ki anti tamper kalkmış yani bu ne demek oluyor ?
Tabiki de artık gchandle.Free() ' ye gidebiliriz demek oluyor.


module.cctor'dayken CTRL + F kombinasyonu ile gchandle.Free() ' yi aratalım.





Gideceğimiz sonuçta gchandle.Free() ' ye bp koyalım.
Programı tekrar debuglayalım.






Evet aşağıda görüyoruz ki uğraştığımız program dışında yeni bir modül gelmiş "xywz"
Şimdi bu modülü Sağ tık > Save Module diyerek kaydedelim.


Şimdi artık işimiz xywz modülü ile.


xywz modülüdnSpy üzerinde açalım bakalım onda ne varmış ?






Haydaa e yine aynı koruma ?
Evet yine aynı koruma fakat artık işimiz daha kolay.

Module içerisindeki kodlara baktığınızda tekrardan bir anti tamper olduğunu göreceksiniz.
yine module.cctor ' a gidelim.





for döngüsü içerisindeki case lerin ilkinde çalıştırılan modüle bp koyalım.
debuglayıp modules penceresinde çıkan xywz modülümemoryde açtığımız zaman göreceğiz ki anti tamper kalkmış.
modules penceresindeki xywz modülünü ismini değiştirerek kaydedebiliriz artık işimiz var onunla




Fakat arkadaşlar şimdi gchandle.Free() aramamıza gerek yok çünkü ulaşmak istediğimiz modüle zaten ulaştık.
Şimdi farklı bir şey yapıcaz.
xywz-Tamped diye çıkardığımız uygulamanın kodlarına bakacak olursanız göreceksiniz ki yine karma karışık kodlar var.
Şimdi onların icabına bakmak için programı de4dot ile çalıştırıyoruz.
de4dot işleminden çıkan dosyayı "xywz-Tamped-cleaned" dnSpy'a attığımızda manzara güzel olacak :


Bu crackme'nin gerisinde patch işlemi ile çözüm var fakat amacı konuma aykırı olduğu için buraya yazmama gerek yok







Konu Phemis tarafından ( 4 Hafta önce Saat 17:52 ) değiştirilmiştir..
 Offline  
 
Alıntı ile Cevapla
 

wau