Reverse Engineering - Kod Enjeksiyonu

Merhaba arkadaşlar bu yazımda sizlere herhangi bir programa nasıl kod enjekte edebileceğimizi göstereceğim.

Gerekenler

Ollydbg
LordPE
Benim deneme amaçlı yazdığım,sadece formdan oluşan hedef aldığımız programı Tahribat.Com Dosya arşivinden veya buraya tıklayarak indirebilirisiniz.

Programa basit olması açısından mesaj penceresi ekleyeceğiz.Farklı apileri kullanarak daha birçok şey ekleyebilir.Programa birçok şekilde hükmedebilir,yeni fonksiyonlar kazandırabiliriz.İlk olarak messagebox apisini inceleyelim.

int MessageBox(
    HWND hWnd,               // Sahiplenen pencerenin handle değeri
    LPCTSTR lpText,           // Mesaj penceresindeki yazı
    LPCTSTR lpCaption,    // Mesaj penceresinin başlığı  
    UINT uType   // Mesaj penceresinin türü
   );

Gördüğünüz üzere bu şekilde.Aslında soldan sağa doğru işlem yapmamız gerekirken normalde böyledir.Assemblyde stack’a yolladığımız için tersten yapmak zorundayız.Çünkü stack mantığında son giren ilk çıkar.Aşağıya bakınca olay daha net hale gelecek.

push 0 //Mesaj penceresinin türü
push xxxxxx  // Mesaj penceresinin başlığı
push xxxxxx  // Mesaj penceresindeki yazı
push 0 // Sahiplenen pencerenin handle değeri
call xxxx // Messagebox apisini çağır

Gördüğünüz üzere tersten verileri stacka yolladık.Mesaj penceresinin türünü 0 olarak belirledik.Çünkü default olarak  MB_OK değerini alıyor.Yani tek buton var tıklıyoruz kapanıyor.Evet hayırlı versiyonları falanda var vs.Mesaj penceresinin başlığı ve yazısındaki xxxxxler adres oluyor.Oralardan ascii değerleri çağıracağız.Mesaj penceresi bağımsız olacağından handle değerini 0 yapıyoruz ve en sonda messagebox apisini çağıracağız.

Öncelikle ollydbgda programı açıyoruz ve kendimize veri yazabileceğimiz boş yerler arıyoruz.Dosyaların sonunda yeterince alan oluyor.Resimde görebilirsiniz.

Tarih:
Hit: 3944
Yazar: FireX

Taglar: reverse engineering - kod enjeksiyonu


Yorumlar


Siftahı yapan siz olun
Yorum yapabilmek için üye girişi yapmalısınız.