|
 |
 |
|
 |
streamer
Programlama Dilleri Modu.
  

Kayıt Tarihi: 29-09-2005
Mesajlar: 243
Eğitim Durumu: Önlisans Bilgi Sahibi Olduğu Konular: IA32/64 Assembly;Masm32;C/C+
+;C#;.Net;Device Driver Developing;KernelMod
e;Windows Server Family OS's Management;NAS;SAN;L
DAP Architecture;Reverse
Engineering;3D Modelling and sleeping
Oy Ver
Seviye: 32 [?]
Deneyim: 387,200
Sonraki Seviye: 453,790
 |
|
Bugüne kadar hep üzerine çift tıkladığımız ve paşa paşa emre amade çalışan exe'lerimizin nasıl çalıştığını merak ettinizmi? Etmedinizmi? olsun ben ettim ve siz okumasanızda buraya yazıcam
Exe: Namı diğer executable file. Exe'lerin tarihi Osmanlı tarihi kadar eski olmasada pc tarih kitaplarında yerini almaya hak edecek kadar eskidir. Kendisi microsoftun kopyacılık ve başka teknolojiler taklit etme sanatının bir eseridir ki kendisi neredeyse birebir unix'in coff formatı ile aynıdır. Biz işin adli ve vicdani boyutunu kamoyuna bırakıp konumuza dönersek.
Bir exe dosyası; sizin kaynak kodunuzun herhangi bir programlama diline ait compiler dili ile derlenmesi ile oluşur ve hayata gözlerini açar. Exe oluştuğu anda içerisinde genel olarak
1- Kendinin exe olduğunu anlatan bir başlık ki bu MZ dir
2- Yine kendinin Win sistemlerde çalışabilir olduğunu gösteren bir PE başlığı
3- Kullandığı Windows apilerinin hangileri olduğu ve nereden ne yolla ulaşabileceğini belirten adreslerin bulunduğu import table
4- Yine eğer varsa programcının başka programcılar kullansın diye veya yazdığı başka bir program bu programın içerisindeki yeteneklerden faydalansın diye dışarıya hizmet veren export section tanımlamaları.
5- Programın Windows loader'i tarafından hangi adresten başlıyacağını gösteren enrty point'i gibi çok möhüm bilgiler içerir.
Şöyleki siz exe'ye çift tıkladığınızda mesala calc.exe'ye hep beraber tıklıyalım veya bi şekilde çalıştıralım.
Önce win loader calc.exe'yi bi güzel win api fonksiyonları ile ki bunlar
CreateMapFile
MapFileView vb.. isimler yanlış olabilir ezbere yazıyoruz herhalde
apilerdir . Bunlarla hafızaya çeker ve orjinal dosyayı kendi haline bir müddet bırakır. Sonra bakar bu exe'nin başına derki
mov edi, word ptr[00400000]
cmp edi,'ZM' , hafızada işler ters gidiyo olmalı
je short cs:[0040125de]
nop
nop
hophop
Yani derki ilk ofset word değerinde MZ yazıyomu? Yazıyorsa bunun bir 16bitlik bir dos programımı yoksa bir 32bitlik bir executable olup olmadığına bakmak için bu MZ başlığından hemen 24offset sonra biyere bakıyor .Eğer burada yazan değer 40 veya daha büyükse evet bu bir 32bitlik executable dosya demektir diye anlıyor.(Bu kadar ip ucunu banada verseler bende çözerdim zaten)
Evet artık dosyanın bir Çalıştırılabilir dosya olduğuna =MZ, ve 32 bitlik bir dosya olduğuna MZ+024h =040h eminiz.
WinLoader daha sonra bana bu yetmez dostum tamam iyi güzel program yazmışsın ama bu programın kodları nerede dataları nerede içinde image filan varmı? ne bilim belki waw gömdün içine bu nerede? hem belki benim apilerimide kullandın bunlar için adres bilgilerin nerde? hangileriyle çalışıcan,stack için hafızan ne kadar,seni kim derledi,hangi programlama dili ile yazdı ???? yeteeeeer
Evet bunun gibi yüzlerce soru sormak mümkün pe yapısına zaten o yüzden en karmaşık zannedilen yapı budur.
Kaldığımız yerden devam edelim. Win loader pe dosya yapısına bakar bizim kodumuzun entry point'ini bulur ve oradan kodu işlemesi için cpu'ya parça parça gönderir. cpu geldikçe işler, geldikçe işler.Cpu adamın hangi api'yle çalıştığını onu kötüyemi kullanacak iyiyemi kullancak diye bakmaz onun tek anladığı 1 ve 0 'dır . bunla ilgilenmesi gereken win32'dir .
Kodumuz icra edilirken birden
invoke MessageBox,NULL,addr yazi,addr kazi,MB_OK
gibi bir komutla karşılaşınca winloader bakarki bu adam kendi kodu dışında bi yerden hizmet almaya çalışıyor . Hop arkadaş der bi dk bekle bi senin import table na bi bakalım bu MessageBox da neyin nesi der ve import table'a bakar. Eğer orada programlama dilinizin compileri tarafından kodunuzun içinde kullandığınız messagebox apisini içeren ilgili dll'ye bağlantı sağlanmışsa ("ki sağlanmasa zaten compiler uyarır ve derleme işlemini yapmaz") o koda bi near jump (sırıkla atlama
) ) yapar. ve koda oradan icra etmeye devam eder.
Yazacaklarım bu kadar mutlaka unuttuğum salladığım bi yer vardır o yüzden özür dilerim. İmla hatalrımıda affedin . Şimdilik sağlıcakla.
__________________
If I had six hours to chop down a tree, I'd spend the first four of them sharpening my axe.
Abraham Lincoln
|
|
11-12-2005 16:54 |
|
|
 |
|
 |
 |
|
 |
Spawnlar
Codemaster
   

Kayıt Tarihi: 14-10-2005
Mesajlar: 872
Eğitim Durumu: Lisans Meslek: Computer Science Bilgi Sahibi Olduğu Konular: Java(J2SE,J2ME), C, C++, C#,SQL, MySQL, Assembly (MASM,MIPS), PHP, ASP, HTML, Microp, Networking, Wireless Networks, Mobile Computing, LAN, WLAN
Oy Ver
Seviye: 38 [?]
Deneyim: 1,376,409
Sonraki Seviye: 1,460,206
 |
|
|
11-12-2005 18:13 |
|
|
Spawnlar
Codemaster
   

Kayıt Tarihi: 14-10-2005
Mesajlar: 872
Eğitim Durumu: Lisans Meslek: Computer Science Bilgi Sahibi Olduğu Konular: Java(J2SE,J2ME), C, C++, C#,SQL, MySQL, Assembly (MASM,MIPS), PHP, ASP, HTML, Microp, Networking, Wireless Networks, Mobile Computing, LAN, WLAN
Oy Ver
Seviye: 38 [?]
Deneyim: 1,376,409
Sonraki Seviye: 1,460,206
 |
|
|
12-12-2005 09:29 |
|
|
tontong
Kırmızı Kartlı / Banned Üye
Kayıt Tarihi: 20-11-2005
Mesajlar: 1,657
Eğitim Durumu: Ortaokul Meslek: Spammer Bilgi Sahibi Olduğu Konular: ı Yazarım Ama Table Bozulur
Oy Ver
Seviye: 42 [?]
Deneyim: 2,554,358
Sonraki Seviye: 3,025,107
 |
|
mz = micheal zibbirrum
şaka şaka
valla güzel yazı eğer sen yazdıysan çok iyi windows un en can alıcı uzantısını açıklamışsın tebrikler
|
|
15-12-2005 14:29 |
|
|
 |
|
 |
 |
|
 |
IBOWARE
Moderator
  

Kayıt Tarihi: 11-09-2005
Mesajlar: 93
Eğitim Durumu: Önlisans Meslek: Programcı Bilgi Sahibi Olduğu Konular: Linux, C#, C, Asp.Net, Java, Oracle, SQL, Php, Mono
Oy Ver
Seviye: 27 [?]
Deneyim: 149,874
Sonraki Seviye: 157,092
 |
|
hazır exelerden bahsediliyorken bende bir soru sorayım dün akşam win hidrag isimli benim bilerek pc de tutuğum hain bir virüs antivirüsü 5 dk lığına devre dışı bıraktığım bir anda bütün exe lere bulaştı
ve sonra tarama yapıp dosyaları dezenfekte ettiğimde 1-2 tanesinin dışında bütün exelerin nin çalışmadığını görüm ve nerdeyse 100 gb ye yakın indirdiğim program gitti
tabi sadece exeleri bide sadece exe olan programlarda var en çok üzüldüğüm onlar bunları onarmanın bi yolu yokmu ?
__________________ Coldplay Türkiye
|
|
21-03-2006 23:08 |
|
|
|
|
|
 |
|