DnSpy ile Disassemble (CrackMe)

xKemikkiran

Senior Hunter
22 Haz 2020
470
227
Zararlı yerlerde - Aydın


Bölümler:

1-) Dosya Analizi

2-)İçeriği İnceleme

3-)Kodlara erişme ve gerekli kod parçasını bulma

4-)Kodu Çözme



1-) Dosya Analizi

Öncelikle dosya herhangi bir packer ile paketlenip paketlenmediğine bakıyoruz. Eğer paketlenmiş olsaydı bu dosyayı “Disassebler” programlar ile açamazdık. Açsak bile anlamsız, okuyamayacağımız değerler karşımıza çıkacaktı. Bu durumda genellikle “Unpack” işlemine tabi tutulur (Yazının en altında Unpack işleminin ne olduğu yazmaktadır.) ardından “Disasseble” edilir.



soo27rt.png




Eğer protector ile şifrelenmiş olsaydı şu şekilde gözükecekti:



khtzc8q.png




Şifrelenmediğini tespit ettiğimize göre disassemble işlemine başlayabiliriz.

2-)İçeriği İnceleme



Öncelikle programımızı biraz inceleyelim.



t89fbew.png




Öncelikle bir Username ve Password verisi istiyor bizden. Buralara rastgele (yanlış) değerler girdiğimiz zaman ise “Invalid username/password” mesajını alıyorum.


3-)Kodlara erişme ve gerekli kod parçasını bulma

Bu değer beynimizin bir ucunda kalsın. Artık “dnspy” uygulamamızı açabiliriz.



34hmspe.png




Öncelikle bu hata mesajını vermesine sebep olan kodu bulmamız gerekli ki doğru cevaba ulaşalım.

Üst tarafta bulunan büyüteç simgesine tıklayarak arama menüsünü açıyoruz. String değerinde bir veri arayacağımız için sağ altta bulunan yeri “Number/String” olarak değiştiriyoruz ve “Search” bölümüne önceden bulduğumuz hata mesajını yazıyoruz.

Tarama bittiğinde çıkan sonuca çift tıklayarak bulunduğu metodu inceliyoruz.


4-)Kodu Çözme

bc861y8.png




Gördüğümüz gibi
button1_Click fonskiyonu içerisinde bulunmaktadır. Fonksiyon adı “Click” içerdiği için button1’e basıldığında gerçekleşmektedir. İf yapısı içerisinde bulunan “usernameBox” ve “passwordBox” içinde bulunan değerlere göre hareket etmektedir. Eğer “usernameBox” değeri “GodworthDestroyor1822”, ayrıca “passwordBox” değeri ise “lopecart192password12356#6969” olduğu zaman bize “Successfully logged in!” mesajını MessageBox içerisinde gösterecektir.



Sözlük:


Packer nedir?

Packerler dosyaları okunmayacak hale getiren ancak bilgisayarın okuyabileceği değerleri değiştirmeyen uygulamalardır. Ücretli ve ücretsiz alternatifleri bulunmaktadır. Bu programlardan birkaçı: “The Enigma Protector”, “VMProtect”…


“Detect It Easy” programı ile bu packerlardan birinin bulunup bulunmadığını kontrol edeceğim. Eğer bulunuyor ise bunları çözmeyi, bulunmuyor ise de direkt olarak kodlarına erişmeye çalışacağım. Bu işlemi “PEiD” uygulaması ile veya başka bir scanner programı ile tarayabilirsiniz.


Disassembler Nedir?

Disassembler makine dilini (derlenmiş kodlar vb.) biz insanların anlayabileceği anlamlı kelime ve kelime guruplarına dönüştüren programlardır. En yaygın olarak kullanılanları: “IDA”, “DnSpy”, “.net Reflector” vb..



Unpack Nedir?

Unpack işlemi şifrelenmiş (Protect edilmiş) bir dosyanın derlenmiş haline dönüştürülmesidir. Bu şekilde Disassebler programlar tarafından okunabilir hale getirilebilir. Her şifreleme programı için FARKLI algoritma kullanılmaktadır. Bu işlem Unpacker programlar ile yapılır, başlıcaları: “de4dot”, “Enigma”, “Armadillo”, “Epx”, “Obsidium”dur…



j6nvp0d.png
 

JohnWick51

Uzman üye
20 Mar 2022
1,867
770
28
Bölümler:

1-) Dosya Analizi

2-)İçeriği İnceleme

3-)Kodlara erişme ve gerekli kod parçasını bulma


4-)Kodu Çözme




1-) Dosya Analizi

Öncelikle dosya herhangi bir packer ile paketlenip paketlenmediğine bakıyoruz. Eğer paketlenmiş olsaydı bu dosyayı “Disassebler” programlar ile açamazdık. Açsak bile anlamsız, okuyamayacağımız değerler karşımıza çıkacaktı. Bu durumda genellikle “Unpack” işlemine tabi tutulur (Yazının en altında Unpack işleminin ne olduğu yazmaktadır.) ardından “Disasseble” edilir.



soo27rt.png




Eğer protector ile şifrelenmiş olsaydı şu şekilde gözükecekti:



khtzc8q.png




Şifrelenmediğini tespit ettiğimize göre disassemble işlemine başlayabiliriz.


2-)İçeriği İnceleme



Öncelikle programımızı biraz inceleyelim.




t89fbew.png




Öncelikle bir Username ve Password verisi istiyor bizden. Buralara rastgele (yanlış) değerler girdiğimiz zaman ise “Invalid username/password” mesajını alıyorum.


3-)Kodlara erişme ve gerekli kod parçasını bulma

Bu değer beynimizin bir ucunda kalsın. Artık “dnspy” uygulamamızı açabiliriz.



34hmspe.png




Öncelikle bu hata mesajını vermesine sebep olan kodu bulmamız gerekli ki doğru cevaba ulaşalım.

Üst tarafta bulunan büyüteç simgesine tıklayarak arama menüsünü açıyoruz. String değerinde bir veri arayacağımız için sağ altta bulunan yeri “Number/String” olarak değiştiriyoruz ve “Search” bölümüne önceden bulduğumuz hata mesajını yazıyoruz.

Tarama bittiğinde çıkan sonuca çift tıklayarak bulunduğu metodu inceliyoruz.


4-)Kodu Çözme

bc861y8.png




Gördüğümüz gibi button1_Click fonskiyonu içerisinde bulunmaktadır. Fonksiyon adı “Click” içerdiği için button1’e basıldığında gerçekleşmektedir. İf yapısı içerisinde bulunan “usernameBox” ve “passwordBox” içinde bulunan değerlere göre hareket etmektedir. Eğer “usernameBox” değeri “GodworthDestroyor1822”, ayrıca “passwordBox” değeri ise “lopecart192password12356#6969” olduğu zaman bize “Successfully logged in!” mesajını MessageBox içerisinde gösterecektir.



Sözlük:


Packer nedir?

Packerler dosyaları okunmayacak hale getiren ancak bilgisayarın okuyabileceği değerleri değiştirmeyen uygulamalardır. Ücretli ve ücretsiz alternatifleri bulunmaktadır. Bu programlardan birkaçı: “The Enigma Protector”, “VMProtect”…


“Detect It Easy” programı ile bu packerlardan birinin bulunup bulunmadığını kontrol edeceğim. Eğer bulunuyor ise bunları çözmeyi, bulunmuyor ise de direkt olarak kodlarına erişmeye çalışacağım. Bu işlemi “PEiD” uygulaması ile veya başka bir scanner programı ile tarayabilirsiniz.



Disassembler Nedir?

Disassembler makine dilini (derlenmiş kodlar vb.) biz insanların anlayabileceği anlamlı kelime ve kelime guruplarına dönüştüren programlardır. En yaygın olarak kullanılanları: “IDA”, “DnSpy”, “.net Reflector” vb..


Unpack Nedir?


Unpack işlemi şifrelenmiş (Protect edilmiş) bir dosyanın derlenmiş haline dönüştürülmesidir. Bu şekilde Disassebler programlar tarafından okunabilir hale getirilebilir. Her şifreleme programı için FARKLI algoritma kullanılmaktadır. Bu işlem Unpacker programlar ile yapılır, başlıcaları: “de4dot”, “Enigma”, “Armadillo”, “Epx”, “Obsidium”dur…



j6nvp0d.png
Ellerine saglik
 
Ü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.