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.
Hit: 5468
Yazar: anonim6918524