hocam eline sağlık çok kaliteli yazıosun valla... Abra Kadabra

dot netin gülü firex (: T$k yine güsel bir dküman

//Merhaba arkadaşlar bu yazımda. net programlarını üstünde nasıl reverse engineering işlemlerini yapabileceğimiz hemde. net ile program yazan arkadaşların nlemini almazlarsa başlarına neler gelebileceğini gstermek istedim. Aslında bununla ilgili daha nceden video çekmiştim fakat sadece 7 kişinin indirdiğini grdüm. Sanırım biraz üşeniyoruz videolara :) O yüzden biraz daha ayrıntı katıp dküman haline getirdim. Videoyuda assembly/reverse engineering blümünde bulabilirsiniz. Bu dkümanları yazmam saatlerimi alıyor. O yüzden okuyan arkadaşlar yorumlarını eksik etmezlerse sevinirim. Destekleyen arkadaşlara ve dküman arşivine ekleyen reneye teşekkür ederim.//Arkadaşlar bu yazımda. net programları için reverse engineering gstereceğ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 dnüş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 grdüğü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 dnüşebilir. Korunmamış bir programın başına neler geldiğini grmeniz hem de bir. net programının üstünde nasıl reverse engineering yapabileceğimizi gstermek için C#'da basit bir program yazdım. Program sabit bir anahtar kod soruyor. Doğruysa devam ediyoruz değilse hata mesajı grüyoruz. rnek programı buradan indirebilirsiniz. Gerekenler Lutz Roader's. NET ReflectorIDA Pro Advanced 5.1 Flex HEX yada herhangi bir HEX editrPrograma 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. Resimde grdüğü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. Programın bütün kaynak kodları karşımızda. Resimdede grdüğü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 grmüş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ı grü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. Grdüğünüz üzere MSIL kodlarıyla birlikte şematik olarak karşımızda. Kodu incelediğimizde sonuca gre label'a atladığını grüyoruz. Yapmamız gereken o kısmı nop yaparak geçmek. "brtrue. s loc_361" seçiyoruz ve Hex View tabına geçiyoruz. Grdüğünüz üzere opcode'u 06 2D 14 bunu 00 00 00 yapacağız ve orası nop nop nop olacak. Orada 2D 14 seçili fakat soldaki 06'yıda dahil etmeliyiz 0A nceki kodun bitimini gsteriyor. Bu şekilde labela zıplama ihtimali kalmadan geçilecek. Şimdi hex editrümüzü açıp o blgede değişiklik yapalım. Orayı bulmak için oradaki hexadecimal değerlerin olduğu satırın tamamını seçip hex editrümüzde aratalım ve doğru yerdemiyiz kontrol edelim. 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 grüntüleri tamamen -anonimleştirildi- aittir. Copy paste yapanlar emeğe saygı duyarlarsa sevinirim. Saygılarımla..-anonimleştirildi-

Sağolun arkadaşlar yorumlarınız için. Bu veya diğer yazılarım hakkında yada reverse engineering hakkında merak ettiğiniz sormak istediğiniz şeyler varsa sorularınızı alabilirim.

Yazdıklarının hepsini register ediyorum.. ilgi alanım olmasada okuyorum.. eline emegine saglık hjm... Dikkat: Hazine Ceyhan ırmağının kıyısında iki kprü arasında... kuru ağacın Dibinde...

eline sağlık firex hojam. ota boka saol yazanlar buna da birşeyler yazmalı. doğru asm kitabını bitirmiş olsaydım bana da çok faydalı olcakdı ama ilerde inşallah : D. dkmanlar blmne eklenr ordan okrk : )

abi kitap yazmayı düşündün mü bu konuda yazarsan sle askerde okurum :D Her türlü piping işleriniz itina ile yapılır.

eline koluna saglık güzel olmuş hojam sen bi sm dersi evrmeye başlasana burda

Saol hoja sen artık yakında kendini aşcan :D Acıma Yetime Dner Koyar G...

ya bırak boşver napcaklar. net için reverse fln=) almaya çalışcam tüm nlemleri bi toplayabilsk herşeyi,) senin dkünmanların hepsine baştan bi gz atıcam fln iyi olucak inş=) tekrar saolasın hocam =) " ' "

hacım eline koluna sağlıkboş vakit bulursam tüm dkümanlarını okuyacağım Ardından yüz kpek havlamayan kurt, kurt sayılmaz..