

Procedure Lerin Exe İçinde Saptanıp Kullanılması ?
-
Bir exe içindeki fonksiyonları nası bulup kullanırız?
Yani benim exe , farklı bir programdaki fonksiyonları nası kullanır?
Pek fazla debugger bilgim yok, yardimlariniz beklenior.
-
DLL'lere yapabiliyorsun diyebiliyorum çalıştırılabilir dosyalara yapamıyorsun diye biliyorum
-
Fonksiyon bulmak yerine göre kolay yerine görede oldukça zor olabilir. Ona ulaşım yoluna bağlı. Aşama aşama ilerleme kaydedilerek bir şekilde yeri saptanabilir. Buton tıklandıktan sonra gerçekleşen bir fonksiyonsa bulmak fazla zor olmayacaktır. İşletim sistemiyle programın mesajlaştığı bölüm incelenerek fonksiyonun yeri saptanabilir. Çeşitli programlama dillerine göre bunları yerini bulmak çokta basit olabilir. Örneğin delphi ve DeDe. Fonksiyon program açıldığında çalışıyorsa bulmak çok kolay olacaktır. Sadece trace ederek istediğimiz işlemin gerçekleşip gerçekleşmediğini izleyerek bulabiliriz. Yada string arama,system stack,call stack vs yerlere gözatmak...
Fonksiyonun assembly kodlarını taşıyarak farklı bir programda kullanacağını düşünelim. Hiyerarşik bir yapıdaysa. Farklı dosyalardan yararlanıyorsa program içinde farklı bölgelere zıplıyorsa iş uzadıkça uzayacaktır. Ayrıca direk kopyalanarak kullanmasıda mümkün olmaz. Çünkü oradaki adresler o programa göre derleyici tarafından oraya yerleştirilmiştir. Sorunlar baş gösterecektir. Sağlam assembly bilgisi olmalı hatalar,eksikler ve düzenlenmesi gereken yerler düzeltilmedir. Yerine göre çok uğraştırıcı bir iş olabilir.
Farklı bir programın fonksiyonlarını kullanman için o programla mesajlaşma yoluna gidebilirsin. Eğer öyle bir imkan verilmemişse kendin kod enjekte ederek bunu simüle edebilirsin. Şu mesaj gelirse şu fonksiyonun başlangıç adresine zıpla diye kod yazarsan ve kendi programındanda o mesajı yollarsan işin hallolacaktır. Fakat sağlam asm ve çalıştırılabilir dosyalar hakkında bilgi gerektirir. -
FireX bunu yazdı:
-----------------------------Farklı bir programın fonksiyonlarını kullanman için o programla mesajlaşma yoluna gidebilirsin. Eğer öyle bir imkan verilmemişse kendin kod enjekte ederek bunu simüle edebilirsin. Şu mesaj gelirse şu fonksiyonun başlangıç adresine zıpla diye kod yazarsan ve kendi programındanda o mesajı yollarsan işin hallolacaktır. Fakat sağlam asm ve çalıştırılabilir dosyalar hakkında bilgi gerektirir.
-----------------------------Yapmaya çalıştığım şeyi yapanlar var.İncelediğim bi tanesinde dll inject edilmiş mesela.Burda benim sorunum o dll nin ne yaptığı :).
Code injectionla ilgili biraz daha bilgi ve örnek lazım bana.Programa dilleri içinden code injection nasıl yapılır bilgim yok (createremotthread ve writeprocessmemory kullandigini biliorm ama hiç yapmadım * ).
"Şu mesaj gelirse şu fonksiyonun başlangıç adresine zıpla diye kod yazarsan ve kendi programındanda o mesajı yollarsan işin hallolacaktır."
Hoca bu şekilde yaptığın bişi warsa gönderebilrmsn ?
-
Kod enjeksiyonu hakkında yazdığım bir reverse engineering dökümanım vardı. Bunu incelersen kafanda şekillenebilir.
http://www.tahribat.com/doc.asp?docid=122 -
Dökümanı inceledim.
Şimdi benim uğraştığım uygulamada fonksiyonlar , klavyeden bir tuşa basınca gerçekleşiyor.
Ben kendi yazacağım bir programdaki butona basildiginda o tuşa basıldığında aktif olan fonksiyonu kullanmak istiorm.
bu mümkünmü ?
-
Sanırım yapmak istediğin şeyi anladım. Kendi programında A tuşuna basınca o programda A tuşuna basıldığında gerçekleşen fonksiyonu gerçekleştirmek istiyorsun. Sana bu konuda müjde verebilirim. Debugger kullanmaya yada söylediğimiz şeyleri yapmaya ihtiyacın yok. Tek yapacağın şey biraz programcılık o kadar. Yapacağın şey apileri kullanmayı temel olarak biliyorsan o pencerenin handle değerini almak ve klavyeden basılmış gibi işletim sistemine input yollamak olacaktır.
-
FireX bunu yazdı:
-----------------------------Sanırım yapmak istediğin şeyi anladım. Kendi programında A tuşuna basınca o programda A tuşuna basıldığında gerçekleşen fonksiyonu gerçekleştirmek istiyorsun. Sana bu konuda müjde verebilirim. Debugger kullanmaya yada söylediğimiz şeyleri yapmaya ihtiyacın yok. Tek yapacağın şey biraz programcılık o kadar. Yapacağın şey apileri kullanmayı temel olarak biliyorsan o pencerenin handle değerini almak ve klavyeden basılmış gibi işletim sistemine input yollamak olacaktır.
-----------------------------ne gusel konusuosunz :/