HACKER - Reverse Engineering - .Net Programları
  Ana Sayfa
  Ziyaretçi defteri
  HACKER OLAMAK İSTİYENLER
  Başkaların Bilgisayarını Haclemek istiyenler
  Hackerlerin Kullandığı Programlar
  HABERLER
  Hack-Güvenlik
  => Kişisel Güvenlik ve Korunma Yöntemleri
  => Wireless Şifresi Kırma
  => Domain Adınızı Güncellemeyi Unutursanız...
  => Bir Rootkit Hikayesi...
  => RootKit Nedir ve Sistemden Nasıl Temizlenir?
  => Bruteforce Yöntemi İle Şifre Kırma Hesaplaması
  => Sosyal Mühendislik ve Senaryolar
  => Detaylarıyla Denial Of Service
  => N-Keylogger v1.3 ve Kullanımı
  => Access, Mssql ve Mysql ile Sql Injection
  => Soru-Cevap ile Hack Nedir, Nasıl Yapılır?
  => CSRF nedir, Nasıl yapılır?
  => Sql Server Şifreleri Nasıl Saklar?
  => PGP ye Pratik Giriş, PGP Kullanımı ve E-mail Güvenliği
  => Sanal Mağazacılık Ve Sanal Alışveriş
  => Veritabanı Saldırıları
  => Reverse Engineering - Visual Basic P-Code
  => Efkan Forum 2 - Database Yolu ile Hackleme Yöntemi 2
  => Efkan Forum - Database Yolu ile Hackleme Yöntemi
  => Kredi Kartları Güvenliği ve Carding Hakkında
  => Sosyal Mühendislik Hakkında
  => İnternet Bankacılığı ve Güvenliği
  => Reverse Engineering - Self Modifying
  => Reverse Engineering - Hedef Bölge
  => Reverse Engineering - Keygenler
  => Reverse Engineering - .Net Programları
  => Reverse Engineering - DeDe & VBDecompiler
  => Telnet ile Mailbox Temizlemek
  => Port Listesi
  => Virüs Çeşitleri
  => Proxy, Firewall ve kurulumu
  => Kredi Kartlarının Onaylanması ve Check Digit Algoritması
  => Exploit Nedir, Sistemlere Sızma Yolları
  => Exploitler Nedir, Nereden Bulunur ve Nasıl Kullanılır?
  => Advanced Coding / Buffer Overflow Exploit -3
  => Advanced Coding / Buffer Overflow Exploit -2
  => Advanced Coding / Buffer Overflow Exploit -1
  Windows Püfleri
  Arşiv
  İletişim

Reverse Engineering - .Net Programları

 

Arkadaşlar bu yazımda .net programları için reverse engineering göstereceğim. .Net programlarının yapısı farklı olduğu için diğer programlar gibi OllyDbg ile açıp Reverse Engineering ortamı sağlayamayız.Çünkü tüm .net uygulamaları derlendiklerinde MSIL  adı verilen ara dile dönüştürülürler.Bu da başka başka platformlara framework yükleyince programlarımızın sorunsuz çalışabilmesi anlamına gelir.MSIL kodlarını incelemek için ILDASM kullanabiliriz.

Günümüzde özellikle .Net dillerinden C# diline yoğun ilgi bulunmaktadır.Bir sürü ticari amaçlı veya bedava dağıtılan programlar vs. Fakat piyasada gördüğüm kadarıyla ticari program satanlar dahil çoğu kişi .Net dilleriyle yazılmış uygulamaları bekleyen tehlikeden habersiz.MSIL isimli ara dilden bahsetmiştim.Bu ara dil avantajlı olabilir.Fakat çok büyük bir zaafı vardır.Eğer yazdığımız program için özel önlemler almadıysak üst seviye dil koduna kadar programımız açılabilir.Önlem alınmazsa programcı için bir felakete dönüşebilir.

Korunmamış bir programın başına neler geldiğini görmeniz hem de bir .net programının üstünde nasıl reverse engineering yapabileceğimizi göstermek için C#’da basit bir program yazdım.Program sabit bir anahtar kod soruyor.Doğruysa devam ediyoruz değilse hata mesajı görüyoruz.

Örnek programı buradan indirebilirsiniz.

Gerekenler

Lutz
Roader's .NET Reflector
IDA Pro Advanced 5.1 (Full sürüm bulun Trial sürümde .Net programları için destek verilmiyor)
Flex HEX yada herhangi bir HEX editör


Programa bir ön bakış atalım.Program unlock code istiyor.Yanlışsa hata mesajını veriyor.



Şimdi “Lutz Roader's .NET Reflector” isimli programımızı açalım ve yukarıdaki menüden C#’ı seçtikten sonra File->Open’dan programımızı seçelim.Programımız listenin en altına eklenecek.

Reverse Engineering - .Net Programları





Resimde gördüğünüz üzere programımız listeye eklendi ve ağacı açtık.Şimdi daha alt ağaçları açarak programdaki  fonksiyonların isimlerine bakarak bize gerekli olan yeri bulalım.Burada bir sürü fonksiyon var.Programda unclock code’u giriyoruz ve butona basıyoruz.Doğru girdiysek devam ediyor yanlış girdiysek hata mesajı alıyoruz.Kısacası herşey butona tıkladığımızda gerçekleşiyor.Bu yüzden button click fonksiyonunu arayacağız.

Kısa bir araştırmadan sonra bulup üstüne çift tıklıyoruz ve korkunç manzara ile karşılaşıyoruz.

Reverse Engineering - .Net Programları



Programın bütün kaynak kodları karşımızda.Resimdede gördüğünüz üzere textbox’daki değer “FireX” string’i ile karşılaştırılmış.Doğru ise “Unlocked!” mesaj penceresi çıkıyor ve program kapanıyor.Yanlış ise hata mesajı veriyor.

“FireX” stringin’i aldıktan sonra yapılacak iş kalmıyor zaten.Bunun yerine programın seri numarasının doğru olup olmadığını kontrol eden bir fonksiyon düşünebiliriz.Buradaki kodları kopyalayıp kolayca bir keygen yapabiliriz.

Şimdiki amacımız program üstünde reverse engineering yapmak.Butona bastığımız zaman sadece “FireX” stringinin değil, girdiğimiz tüm değerlerin kabul olmasını sağlayacağız.Bunun için IDA isimli programımızı açarak işe başlıyoruz.

Yapacağımız adımlar karşımıza gelen mesaj penceresinde New butonuna tıklama ve karşımızdaki pencereden .Net tabını seçtikten sonra .Net Executable’ı seçmek.Oradanda dosyamızı seçiyoruz ve işlemlere devam ediyoruz.



Programımız analiz edildikten sonra functions tabını seçip button1_Click fonksiyonuna tıklıyoruz.Hatırlarsanız .Net Reflectorde bu fonksiyon ismini görmüştük.Burası önemli.Örneğin programı .Net Reflectorde açtığımızda ve yaptığımız incelemeler sonucunda “regcode” fonksiyonu içerisinde programın seri nosunun hesaplandığını görürsek daha sonra düzenleme yapabilmek için IDA’da açacağımız için bu fonksiyon ismini hatırlamalıyız.

button1_Click fonksiyonunu bulmuştuk şimdi fonksiyonu inceleyelim.Gördüğünüz üzere MSIL kodlarıyla birlikte şematik olarak karşımızda.

Reverse Engineering - .Net Programları



Kodu incelediğimizde sonuca göre label’a atladığını görüyoruz. Yapmamız gereken o kısmı nop (hiçbirşey yapmadan geç) yaparak  geçmek.  “brtrue.s loc_361” seçiyoruz ve Hex View tabına geçiyoruz.



Gördüğünüz üzere opcode’u 06 2D 14 bunu 00 00 00 yapacağız ve orası nop nop nop (üç byte yer kapladığı için) olacak.Orada 2D 14 seçili fakat soldaki 06’yıda dahil etmeliyiz 0A önceki kodun bitimini gösteriyor. Bu şekilde labela zıplama ihtimali kalmadan geçilecek.Şimdi hex editörümüzü açıp o bölgede değişiklik yapalım.



Orayı bulmak için oradaki hexadecimal değerlerin olduğu satırın tamamını seçip hex editörümüzde aratalım ve doğru yerdemiyiz kontrol edelim.

Reverse Engineering - .Net Programları





Oraya ulaştıktan sonra  ve kontrol ettikten sonra değişiklikleri yapıyoruz ve kaydediyoruz.Doğru yaptıysak ne girersek girelim “Unlocked!” yazacak.

Bu konu hakkında anlatacaklarım bu kadar.Bu yazı,kullanılan örnek program,ekran görüntüleri tamamen FireX’e aittir.Copy paste yapanlar emeğe saygı duyarlarsa sevinirim.Saygılarımla..

FireX

Bugün 42 ziyaretçi (44 klik) kişi burdaydı!
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol