Giriş Yap Kayıt ol Online Üyeler Aktif Konular Arama Üyeler Forum Kuralları
Tahribat.Com | [Dokuman] - Kendi Windows NT Kernelimizi Derleyelim
Tahribat.Com Forumları
Microsoft Windows Ailesi İşletim Sistemleri
      [Dokuman] - Kendi Windows NT Kernelimizi Derleyelim
Bu Bölümde yeni konu açmak için tıklayın Konuyu cevaplamak için tık...
Konu 27 Ekim 2011 (Persembe) 14:39 tarihinde açıldı. Kısayol | Alıntı yap | Özel Mesaj
Tugberk


Kayıt : 4 Ekim 2009
Erkek Üye
 

Merhaba arkadaşlar, sizlere pek çoğunuzun bilmediği, ve hatta olmasına ihtimal vermediği bir olayı anlatacağım :) Windows NT 5.2 kernelini derleyeceğiz ve kendi kernelimizi test edeceğiz.

Öncelikle hemen açıklığa kavuşturayım, evet Microsoft NT 5.2'nin kaynak kodlarını çoktan açtı, ancak sadece belirli üniversitelere ve akademik amaçlı. Tabi ki internete de düştü :)

NT 5.2 nedir biraz daha açıklığa kavuşturmak adına, NT Kerneli versiyonları ile Windows versiyonlarını karşılaştıralım.

 

Windows 2000 NT 5.0
Windows XP NT 5.1
Windows Server 2003 NT 5.2
Windows XP 64 bit NT 5.2
Windows Vista NT 6.0
Windows 7 
NT 6.1
Windows Server 2008 NT 6.1
Windows 8 NT 6.2

İşte Microsoft'un akademik amaçlarla kaynaklarını açtığı kernel NT 5.2 yani Windows Server 2003 ve XP x64 işletim sistemlerinin çekirdeği.

Dolayısıyla bu kernel'i test etmek için, sanal makinaya server 2003 ya da xp 64 kurmalıyız.  Bunları anlatmadan önce, biraz NT kerneli hakkında bilgi vereyim, böylece elimizde neyin kaynak kodu olduğu daha netleşsin.

Windows NT kerneli aşağıdaki isimlerden birisi olabilir.

Ntoskrnl.exe   : Tek işlemcili bilgisayarlar için

Ntkrnlpa.exe   : Tek işlemcili bilgisayarlar için PAE destekli

Ntkrnlmp.exe  : Çok işlemcili bilgisayarlar için

Ntkrpamp.exe : Çok işlemcili bilgisayarlar için PAE destekli

Sonuncusu sadece 32 bit OS lar için geçerlidir zira 64 bit OS lar için PAE ye ihtiyaç yoktur. PAE nedir derseniz tamamen konu dışı olduğu için anlatmayacağım, sadece şunu söyleyim 32 bit işlemcilerin 64 GB a kadar bellek adresleyebilmesini sağlıyor. Normalde bu sınır 4 GB dır.

Nt kerneli gördüğünüz gibi tek bir exe dosyasından ibarettir ancak exe uzantısına aldanmayın, çift tıklayınca çalıştırabileceğiniz programlardan değil :) bir kaç katman içeren ve tüm kernel fonksiyonlarını export eden bir dosya.

Bu arada 64 bit versiyonlarda kernel ismi değişmez ama kernelin kendisi tamamen değişir. Ayrıca bu isimler özgün isimdir, yani kendi bilgisayarınızdaki kerneli bulup (çok işlemcili pc bile olsa ntoskrnl.exe olabilir) sağ tıklayın, ayrıntılardan özgün dosya ismine bakın, kernelin asıl ismi odur.

Bir de kısaca HAL dan bahsetmek istiyorum. Hardware abstraction layer, yani donanım soyutlama katmanı,  kernel'in farklı donanımlarda bile hiç bir değişiklik yapılmaksızın çalışmasını sağlar, yani donanımı soyutlar. Ancak burda donanımdan işlemci yani mimari anlaşılmasın. Mimari kernel'in işidir, ve her mimariye göre kernel değişir, ancak aynı mimaride (x86 örneğin) farklı anakartlar için farklı kerneller üretilmesini engeller. Yani Mimari dışındaki tüm donanım farklılıkları ile kendisi ilgilenir ve kernele standart bir arabirim sunar.

Özetle, donanıma bağımlı olan windows bileşenleri kernel ve hal'dır. Bunlar sayesinde sistemin gerikalanı değiştirilmeksizin, windows farklı mimarilere ve donanımlara uyarlanabilir.

Hal, kernel gibi system32 dizininde bulunur, dosya adı ise hal.dll dir. Tabi bu dosyada alelade bir dll dosyası değildir, isimler kafanızı karıştırmasın, sistemdeki en aşağı seviye kodlar bu dosyada çalışır.

Derliyoruz...

Peki nerede bu kaynak kodlar, öncelikle iyi haber, bildiğiniz gibi Windows'u linux'dan ayıran en önemli özelliği kolay ve kullanışlı olması.  Göreceksiniz ki, windows'un kernelini derlemek, linux da herhangi bir program kurmaktan bile daha kolay :)

Öncelikle aşağıdaki linkten kernel kodlarını ve derleme araçlarını indirin. Evet 15 mb lık bir zip dosyasında hem kernel hem de compiler, assembler, linker vb araçlar, hemde kernel ile ilgili ayrıntılı dökümanlar mevcut.

Ben olayı basitleştirmek adına bir build_x86.bat dosyası hazırladım,  aşağıdaki zip dosyasının içindeki WRK klasörünü C:\ dizini altına kopyalayın, C:\WRK olacak.

http://www.multiupload.com/QHZL1QQFGA

Dökümandaki herşey özgün olduğu gibi site de bana aittir :) Kaynak kodlara gözucuyla baktıysanız devam edelim.

Derlemek için tek yapmanız gereken, C:\WRK dizinine gelip build_x86.bat ı çalıştırmak, derleme işlemi bir kaç dakika sürecektir, devam etmek için bir tuşa basın'ı gördüğünüzde derleme işlemi tamamlanmıştır.

Derledik, peki kernelimiz nerde? C:\WRK\base\ntos\BUILD\EXE dizinine geliyoruz, wrkx86.exe dosyası bizim kernelimizdir.

İsmi neden ntoskrnl.exe gibi değil diye sormayın, zira bu kernel Windows Research Kernel olarak geçiyor ve closed source değil shared source :)

Kendi Kernelimizi Yaratalım Ve Deneyelim

Bu bölümü bir video olarak hazırladım, 30 dakikalık ayrıntılı bir video, sıfırdan tüm adımları gösteriyor. Video da sırasıyla şunları yapıyorum.

  • Kernel'i C:\ ye çıkar
  • Kodu dökümantasyonu ve derleme araçlarını göster
  • Kernel hakkında bilgi ver
  • Yeni kurulmuş temiz bir Windows Server 2003 aç ve göster
  • Kendi derlediğimiz kernel'i ekle ve o kernelden başlat ve göster
  • Kernel'e kod ekle, bu kod sayesinde yeni kernel, içinde tahribat kelimesi geçen hiç bir dosyayı açmayacak. Sistemi bu tahribat kerneli ile başlat sonuçlarını test et.

Evet arkadaşlar videodaki olay bu, benim kurduğum sanal makinanın linkleri aşağıda. Virtualbox varsa direkt çalıştırabilirsiniz.

Sanal makinamız :

http://www.sendspace.com/file/ieg2ax

http://www.sendspace.com/file/xddi2k

 

Son olarak video'yu koyuyorum, ilgilenenler varsa yardımcı olması dileğiyle.

Video :

http://video.tahribat.com/dokuman/WindowsNtKerneliDerleme.mp4 


 
27 Ekim 2011 (Persembe) 14:44 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
sandman


Kayıt : 1 Eylül 2005
Erkek Üye
 

100 numara olmuş.


Mühendis kahveyi projeye dönüştüren bir insan evladıdır. 
27 Ekim 2011 (Persembe) 14:45 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
Tugberk


Kayıt : 4 Ekim 2009
Erkek Üye
 

sandman bunu yazdı:
-----------------------------

100 numara olmuş.


-----------------------------

Teşekkürler hocam, amaç birilerini sistem programlamaya heveslendirmek :)


 
27 Ekim 2011 (Persembe) 14:48 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
ErotikPanda


Kayıt : 8 Mart 2007
Yandex Tr Sorunlusu
Erkek Üye
 

güzel iş


- = www.isminiunuttum.com = - = www.neredenbulabilirim.net = - 
27 Ekim 2011 (Persembe) 14:50 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
Holyzone
(Rumplestiltskin)


Kayıt : 13 Ekim 2008
Ankara
Erkek Üye
 

Eline, ağzına, emeğine sağlık güzel olmuş hocam :=)


twitter.com/Selimonder 
27 Ekim 2011 (Persembe) 14:52 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
Tugberk


Kayıt : 4 Ekim 2009
Erkek Üye
 

Sağolun arkadaşlar, Windows bu kerneli dağıtmadan önce de windows 2000'in büyük bölümü leak olmuştu, bir de react os vardı reverseciler sıfırdan yazıyordu, MS birnevi mecbur kaldı diyelim :)

Admin arkadaşlardan birisi döküman arşivine ekleyebilir mi ?


 
27 Ekim 2011 (Persembe) 15:05 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
1-618-GR


Kayıt : 29 Haziran 2011
Bay Fakir Bayan Kör
Erkek Üye
 

Güzel iş hocam.

Bir yerden başlamak lazım tabiî.


Bir domino taşıyım yıktığına sevinme.... /// InsanmisinSen.jpg kaldırılsın. 
27 Ekim 2011 (Persembe) 15:24 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
Twitter


Kayıt : 13 Ekim 2007
Finlandiya
Erkek Üye
 

Abi sen sürekli konu aç sabahtan akşama kadar sıkılmadan okuyalım ya 

senin gibileri daha çok görmek istiyoruz buralarda 

emeğine sağlık teşekkür ettik


Eski Nick : DersimliHacker Tbt Dersimliler Derneği Başkanı :) 
27 Ekim 2011 (Persembe) 15:25 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
j4x


Kayıt : 16 Temmuz 2005
Istanbul
Erkek Üye
 

Süper :) döküman arşivine eklenmeli


Eski gVeR. 
27 Ekim 2011 (Persembe) 15:38 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
Tugberk


Kayıt : 4 Ekim 2009
Erkek Üye
 

Teşekkürler, direkt sonucu izlemek isteyenler  26:35 ten itibaren izleyebilirler :)


 
27 Ekim 2011 (Persembe) 15:55 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
omerelili


Kayıt : 8 Temmuz 2007
Azerbaycan / Bakü
Erkek Üye
 

eline salık


VEREM olsaydında VEREN olmasaydın. 

[1] [2] [3] [4] [5] [6]   [»] [»»]


Bu Bölümde yeni konu açmak için dıklayın Konuyu cevaplamak için tık...
Allah'a Havale Et Google Bookmark'a Ekle Yahoo'ya Ekle Stumbleupon'a Ekle Facebook'a Ekle Twitter'a Ekle   Google'da Ara : [Dokuman] - Kendi Windows NT Kernelimizi Derleyelim Favorilerime Ekle Yukarı Çık
Konuda 55 Mesaj Var.
Konu 3723 Sefer Gösterilmiş.
2001-2012 © Tahribat Group - Her Hakkı Saklıdır. - ● Gizlilik İlkeleri ● Kullanım Koşulları ● İletişim