Bilginin Adresi Ana Sayfa
Forum Anasayfası Forum Anasayfası > Bilgisayar Güvenliği / Computer Security > Güvenlik / Security Makaleleri
  Aktif Konular Aktif Konular RSS - Windows Platformu Nasıl İşler?
  SSS SSS  Forumu Ara   Events   Kayıt Ol Kayıt Ol  GiriÅŸ GiriÅŸ

Windows Platformu Nasıl İşler?

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
megabros Açılır Kutu Gör
Security Professional
Security Professional
Simge

Kayıt Tarihi: 08-06-2009
Konum: Turkey
Status: Aktif DeÄŸil
Points: 752
Mesaj Seçenekleri Mesaj Seçenekleri   Thanks (0) Thanks(0)   Alıntı megabros Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Windows Platformu Nasıl İşler?
    Gönderim Zamanı: 08-04-2010 Saat 00:41

Esasında Windows'un yapısı gayet basit bir temele; nesne yapısına ve hazır kod bloklarına dayanır. Programcı yazdığı programda hangi objeler olduğu ve bunların nerede konuşlandığını bildirir. Windows program çalıştığında bu kısma göre görüntüyü ve diğer objeleri oturtur. Programcı program yazdığında ise bunun çoğunluğunu Windows bırakır. Bir Windows programının yazılışı herkesin bildiği gibi şöyledir.

Örneğin Visual BASIC ile bir program yazalım. Yeni bir standart exe deklare edelim. Ve görünen formun üzerine bir button koyalım. Şimdi betonun caption özelliğini "TIKLA" yapalım. Butonumuza tıklayalım ve açılan pencereye şu olayı düzenleyelim.

Private Sub Button_1 Click()

Msgbox "Naber"

End Sub

Programı bir güzel renkli yazdık. Her neyse Şimdi bir F5 yapalım. Bizim form gözüktü, düğmeye bastık mesaj kutusu gözüktü ama esasında ne oldu?

Windows’u artık çözebiliriz. Esasında biz programı yazarken İlk önce standart exe tanımladık. Bu bir form dur. Form bir Active-X tir. yani çeşitli olayları vardır. Bir active-x temel olarak bir *.ocx dosyasıdır. Bazı active-x ler ise *.dll veya *.exe içine gömülü olabilir. Bunu sonra anlatacağız. Active X çalıştığında gerekli objeyi yükler başta tanımlı olan özellikleri bu active-x e sanki bir alt programa değer gönderir gibi gönderir. Tabii bunu bellekte yapar. Öreğin formun genişliği,zemin rengi hepsi birer özelliktir. Bazı aktive-x'ler genel özellik gösterir yani üzerinde başka active-x leri barındırır. Form objesi üst düzey bir aktive-x topluluğudur. Kendi başına üzerinde kapat butonu. küçült butonu gibi kendi alt active-xleri vardır. Form objesine başka active-xler de yüklene bilir. Bizim command button objesi bu türdendir.

Bir Windows exenin baş hısımında bir obje taplosu bulunur. Ayrıca bir de Windowssun programları yönetmek için kullandığı bir bellek alanı mevcuttur. Program çalıştırıldığında. Windows hemen bu tabloya bakar ve bahsi gecen active-xler bellekte yüklü değilse bunları belleye atar. Sonra her bir active-x e bir numara verir. Bu numaraya HWND adı erişmektedir. Sonra Windows bekler. Siz bir active-x i çalıştırınca veya bir active-x program gidişine göre otomatik çalışınca Windows bunu şu şekilde anlar. HWND yani çağrılan hwnd yi alır. Bunu nasıl mı yapar. Tüm görünür active-x lerin ekrandaki konumunu alır. Tama diyelim ki bizim deminki programda düğmeye basacağız. Mouse'u tutuk ve sürükledik. Butonun üzerine geldir. Tada.. hemen Windows diyor ki bizim şu hwnd li active-x in üzerine Mouse ile gelindi. Sonra gidiyor hwnd tablosuna bizim active-x in fonksiyonlarının konumuna bakıyor. Sonra programı bu noktaya devrediyor. Tabii bizim sadece click olayı var. Yani kod gelen değerde karşılaştırma yaparak clik değeri ile aynı mı diyor. Sonuç negatif. active-x komut bloğu sonlanıyor. Sonra bir mouseyi biran kıpırdatıyoruz. hala aynı objedeysek bu alay tekrar oluyor. Sonra aklımıza esiyor ve tıklıyoruz. Windows bu sefer active-x imizin komut bloğuna (active-x e değil o başka yerde sadece komutlarına.) click değerini gönderiyor. Program clikc karşılaşması pozitif çıktığı için bizim kodları işliyor.

Yani kısacası Windows sürekli hangi hwnd li obje aktif diye sürekli kontrol yapıyor. Bizim active-x kodlarının olduğu yerde bir de tablo var bunda ise active-x in özellikleri var örneğin kodumuz formun başlığını değiştiriyor olsun. Çalışınca ilk önce özellik değişimi var diyor. Gidiyor ve programın ilk yüklenen tablosuna bakıyor. Form1 e diyor şu şu hwnd verilmiş sonra hwnd tablosuna bakıyor. Bizim diyor şu hwnd li objenin kodlarının önündeki tablo şu adreste bunu bir bellekte sakla. Sonra form active-x inin (active-x programının kendinin) tabloyu nasıl işlediğini bu programa soruyor. O da diyor ki ben diyor tablonun falanca sırasında caption özelliğini tutarım. Hemen gidiyor bu özelliği değiştiriyor. Sonra active-x in kendisine (bellekteki active-x e) Bu tablonun tamamını yolluyor ve özellik değişti diyor. Hemen active-x artık görüntüyü mü değiştirecek başka bir şey mi yapacak? Her neyse onu yapıyor.

Daha mesaj kutusunu anlatmadık. Windows yapılacak standart işleri *.dll diye önceden paketlemiş. Gerçi programcı da kendi paketlerini oluşturabilir. Ama her neyse. Windows’un başta oluşturduğu bu *.dll ler içlerinde bazı hazır fonksiyonları bulundurur. Örneğin; registeriye kayıt ekle, ekranın şurasına şu harfi koy. Bana bir çizgi çiz gibi. Windowsçun bu hazır programcıklarına API denir. Ve her Windows platformunda program yazan kişi bilir. Programcı bir api çağırdığı taktirde hemen ilgili dll nin fonksiyonu bellekten çağrılır. Tabii ki Windows tüm dll leri bellekte tutmaz. Programın başında olan tablo hangi dlllerin kullanılacağını baştan belirtir. ve program sonlanılana ve dll kullanılmaz olana kadar bu dll bellekte kalır. Temel çalışma mantığı ile verilen numaralar ile gerçekleşir. Bir active-x temelde bir program olduğu için onlar da dll leri kullanır. hatta dlller de bir iş yapmak isterse active-xleri kullanır. MsgBox gibi.

Windows exelerinin yapısı hakkında ayrıntılı bilgiyi virüslerin bulaştığı dosyaları anlatan linkle bulabilirsiniz. Bunun için ana sayfaya geçmelisiniz.

Windows'un geçmişi

Windows bir dos emilasyonu olarak piyasaya çıkmış bir işletim sistemidir. Kara ekrana komut yazmanın sıkıcılığını fark eden Microsoft yetkililerinin yarı dahiyane yarı Macintosh çalıntısı işletim sistemidir. Dos hemen hemen az iş görür kabul edildiği yıllarda çıkmıştır. Bir tarafta daha kundaktayken grafik kullanan machintoshlar vardı diğer taraftan ise Internet'in çekirdeğini oluşturacak network yapılarını. Komplex erişimleri barındıran Unix. Microsoft Unix'in altında epey bir ezilince XeniX işletim sistemini çıkartmıştır. Ma a bu da istenen başarıyı gösterememiş.

 
Dosun rijit yapısında ezilmiştir. Zamanında yazılara tıklanarak bilgisayar kullanabileceğiniz NC gibi üçüncü parti çözümler kullanıcıyı cazip gelmiştir. Çünkü başka alternatif te bakmamıştır. Microsoft yetkilileri de bu komut editörlerine daha iyi bir alternatif için ilk Windows öncülerini yazdı. Sonra da bu protformun altında özel çalışabilecek özel bir iki program. Sonuç çok iyi idi. Bir kere grafik kartlarına çok iyi bir hakimiyet oluştu. O zamana kadar oyunlar bile Dos4Dvg.exe gibi baştan elleye yüklemesi gereken uygulamalara mahkumdu. Bunu fırsat bilen oyun üreticileri, muhasebe programları yazarları hemen bu platforma sıçradı. Bu PC nin devrimi idi.

Microsoft yetkilileri toparlayıp piyasaya 3.0-3.1 varyantlarını sürdü. Ve buna kendi başlı başına bir işletim sistemi dediler. Gerçi ilk başta komut satırından çalıştırmak gerekiyordu. Konfigre edilemiyordu. Hatta masa üzeri bile siline biliyordu ama olsun. Tabii profesyonel kullanıcıların büyük bir kısmı bunun yalan olduğunu biliyordu. Daha fazlasını istediler. Microsoft yetkilileri bunu lisans ücreti karşılığı yaptı. Win95 geldi. Bu gerçek bir işletim sistemi idi. Microsoft bu sürümü o denli iç içe geçmiş ama tümleşik ve iyi tasarlanmış biçimde yaptı ki Windows-xp ye kadar win95 yapısı esas kaldı.

Win95-Win98-WİnME temel olarak dos çekirdeğini sık kullanır. Gerçi Win-XP de böyledir ama bu durum iyi saklanmıştır. Microsoft XeniX, çekirdeği Windows'a da taşıdı. Buna WinNT dedi. zamanın en popüler işletim sistemi olan Win-NT belki Unix-Linux ten sonra çağın en büyük kurucusu oldu. NT karnel WinME den sonraki Windowsların çekirdeğidir aynı zamanda. Zira insanlar daha çok network ve Internet işi istiyor. Microsoft ta bunu veriyor.

Linux Tuvacks ise bir text olarak yazdığı karnel ile dünyanın boyutunu değiştirdi. Linux.. Yeni çağın evlere bile giren Unix'i. Her ne kadar bir Unix olmadığını söyleyenler varsa da inanmayın o Unix'tir. Bu işletim sistemi ilk önce C++ ile uğraşanların sonra Hackerların evi oldu. Basit bir editör ile yazabileceğiniz kodları make edip yeniden çekirdek kısmını yazabilirsiniz. Socket programlamaya işletim sistemi olarak o denli açık tır ki her aygıtı bir dosya olarak bulabilirsiniz. Bu da daha çok Internet~Network demek. PHP,PERL gibi bir çok dilin oluşturduğu yerdir. Standardlar bu platformda oluştu ve oluşuyor. Linux programcıları Windows'un grafik yapısından pek tabii ki etkilendi ve X-Windows'u yazdı. Tabii ki Linux yapısı gereği her sonucu teker teker dosyalarda saklar ve gizler. Ama buna rağmen Linux Microsoft'un uykusunu kaçırmaya yetti de arttı.

Saygılar.
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu Gör



Bu Sayfa 0.156 Saniyede Yüklendi.