Aracılığıyla paylaş


[Bülten Arşivi ^] [< Birim 1, Sayı 4] [Birim 2, Sayı 1 >]

The Systems Internals Newsletter Volume 1, Number 5

http://www.sysinternals.com
Telif Hakkı 1999 Mark Russinovich


12 Ekim 1999 - Bu sorunda:

  1. SISTEM IÇLERINDEKI YENILIKLER

    • Windows 98/NTFSDOS Professional için NTFS
    • DebugView v3.21
    • Filemon ve Regmon v4.21
    • Diskmon v1.1
    • sistem iç www.microsoft.com
    • Ekim "NT Internals"
    • Pek De Yeni Olmayan Şeyler
  2. İÇ HABERLER

    • Win2K RC2 DDK Yayınlandı
    • Yeni Win2K RC Çekirdek API'leri
    • Yazılım Geliştirme '99 Doğu
    • DiskEdit kullanma
  3. YAKLAŞANLAR

    • Win2K API'sinde Patlama

SPONSOR: WINTERNALS SOFTWARE

Systems Internals Newsletter, Winternals Software sponsorluğunda, web'de http://www.winternals.com. Winternals Software, Windows NT/2K için gelişmiş sistem araçlarının önde gelen geliştiricisi ve sağlayıcısıdır. Winternals Software ürünleri Windows NT 4.0 için FAT32, ERD Commander (Windows NT için önyükleme diski özelliği) ve NTRecover'ı içerir.

Winternals Software'in Uzaktan Kurtarma özelliği, önyüklemesi kaldırılamayan bir bilgisayarın sürücülerine kuruluşunuzun herhangi bir yerinden TCP/IP aracılığıyla erişmenizi sağlar. NT veya Win9x sistemlerini devre dışı tutan sürücü, dosya sistemi ve yapılandırma sorunlarını uzaktan düzelterek zaman kazanın ve dolar desteği sağlayın. Uzaktan Kurtarma'yı kullanarak uzak chkdsk veya bölümleme işlemleri bile gerçekleştirebilirsiniz; bu da onu çok yönlü bir olağanüstü durum kurtarma aracı yapar. adresinden http://www.sysinternals.com/rrecover.htmücretsiz bir salt okunur deneme sürümü indirin ve adresinden okuma/yazma sürümünü satın alın http://www.winternals.com.

Herkese merhaba,

Systems Internals bültenine hoş geldiniz. Bültenin şu anda 10.000 abonesi var.

Windows 2000 'in (Win2K) sürümü, yakın hale gelme ve geri gönderme desenini takip etmiş gibi görünüyor. En son söylentiler şubat ayında kullanıma sunulacağı yönünde. Ve Win2K gemi tarihi hakkındaki tek bilgi söylentilerdir, çünkü Microsoft OEM'lere veya iş ortaklarına ne zaman gönderileceğini bile söylemiyor. Şey, onlar: "hazır olduğunda sevk edilecek" (burada size şarap satmakla ilgili tarih söylemini zorlamayacağım).

Microsoft ile ilgili rahatsız edici olan şey, ürünleri hakkında oluşturdukları basın, ürünler buharlı yazılım olsa bile her zaman sevkiyatın eşiğindeymiş gibi görünmesini sağlar. En son örnek, Windows 98'in ardılı olan Millennium'dır. Microsoft çok uzun zaman önce, tüm ev aletlerinizi akıllı cihazlara dönüştürmeye hazır, bitmiş bir ürün gibi basında büyük bir baskı yaptı. İşin ironisi, makalelerin kısa bir süre sonra Microsoft'un ürünü henüz tam olarak tanımlamadığını ve mağaza raflarında görmeden önce muhtemelen bir yıl veya daha fazla olacağını ortaya çıkarmış olmasıdır.

Bu düzen yeni değil ve bu konuda ilk yazan ben değilim. Ancak bu durum, see-sawing'in ne kadarının dikkatle düzenlenen bir plan olduğu ve yazılım mühendisliği sorumlularının toplam eksikliğinin ne kadarının sonucu olduğu konusunda tahminde bulunmamı engellemez. Komplo teorisyenlerinin yaptığı gibi eski açıya satın alırsanız Microsoft, müşterileri bu inanılmaz ürünle birleştirerek rekabeti harika bir şekilde bastırır. Bu ürün, biraz daha beklerlerse beklemeye değer hale getirir ve Microsoft dışı bir ürüne dönme gereksinimini ortadan kaldıracaktır. İkinci açı, Microsoft'un yazılım geliştirme sürecini asla öğrenmeyeceğini ve mühendislik çabasını sürekli olarak hafife aldığını ve beta kodun kalitesini abarttığını söylüyor.

Çitin üzerinde hangi teoriye atfedildiğim konusunda oturuyorum. Aslında düzenin ikisinin de bir kısmından kaynak olduğunu düşünüyorum. Bunun, Microsoft'un Active Directory neredeyse iki yıldır hazırmış gibi davranmasına yardımcı olduğunu düşünüyorum. Win2K için ne kadar beklemeleri gerekeceğini önceden bilseydim, çok uzun zaman önce Novell Dizin Hizmetleri'ne dönecek müşteriler vardır. Öte yandan Microsoft, ürün teslimini umut etme ve sonra gecikmeden basında yinelenen siyah gözler aldı. Bence Microsoft yönetimi hataların son %5'ini yeniden oluşturmanın, yalıtmanın ve düzeltmenin ne kadar zor olduğunu anlamıyor.

Microsoft'un geliştirme uygulamalarından bahsetmişken, yayın öncesi adlandırma düzenleri gördüğüm en şaşırtıcı programlardan biridir. Beta'ları gerçekten Alfa, Sürüm Adayları ise beta. Bu tanımları kullanmak bile bir esnetmedir: Microsoft, bir Sürüm Adayı'ndan diğerine geçmek ve hatta yenilerini eklemek için özellikleri yazılımlarından çıkarmada sorun yoktur. Bunu NT 4.0 ile yaptılar ve Win2K ile yapıyorlar. Bu uygulama kesinlikle bir yayın döngüsünü hızlandırmaz.

Win2K Şubat'ta gelecek mi? Sanırım tünelin sonundaki ışığı görüyoruz. Ne de olsa RC2'de yalnızca birkaç yeni API var...

Microsoft'ta kısaltma karışıklığından bahsettiğim son bültenin devamı olarak okuyucu George Janczuk başka bir örnek buldu. "Ana Bilgisayar İşlem Dünyasına Genişletme" başlıklı bölümde, 'deki http://msdn.microsoft.com/library/backgrnd/html/msdn_windnapps.htm makale CISC - Karmaşık Yönerge Kümesi Bilgi İşlemini ifade eder. Ana bilgisayar uygulamaları hakkında bilgi sahibi olan herkes için amaçlanan kısaltmanın CICS - Müşteri Bilgileri Denetim Sistemi olduğu açıktır. Tersine çevrilmiş bir harf dizisi ve tamamen farklı bir teknoloji alanındasınız.

Her zamanki gibi, lütfen bülteni ilginizi çekebileceğini düşündüğünüz arkadaşlarınıza iletin.

Teşekkürler!

-İşaret

SISTEM IÇLERINDEKI YENILIKLER

WINDOWS 98/NTFSDOS PROFESSIONAL IÇIN NTFS

Sonunda yaptık. Bryce ve ben NTFSDOS 1.0'ı 1996 baharında kullanıma sunduğumuzdan beri, Windows dosya sistemi uyumluluğunun kutsal kasesini arıyoruz: Windows 9x ve DOS'tan NTFS için okuma/yazma erişimi. Uzun zaman önce NTFS biçimini tersine mühendislik işleminin ve bu karmaşık günlük dosyası sistemi için bir sürücü yazmanın zor ve riskli bir teklif olacağını belirledik. Biçimin her nüansını kesin olarak belirlese bile, Win2K'nin NTFS v5.0'ı gibi bir biçim güncelleştirmesi tamamen yeni bir tersine mühendislik ve geliştirme çalışması gerektirir. Ayrıca, NTFS'de olduğu gibi karmaşık bir biçim için dosya sistemi sürücüsünün doğruluğunu doğrulamak göz korkutucu bir tekliftir.

Biz de hile yaptık.

Windows 98 için NTFS, Windows 95 veya Windows 98'den NTFS sürücülerine tam okuma/yazma erişimi, NTFSDOS Professional ise DOS'tan tam NTFS okuma/yazma erişimi sağlar. Windows 98 için NTFS veya NTFSDOS Professional'ın NTFS dosya sistemi biçimi hakkında bilgisi yok. Bunun yerine, bu bilgiyi uygulamak için bir Windows NT veya Windows 2000 yüklemesinden NTFS sürücüsüne güvenirler. Her iki yardımcı program da NTFS dosya sistemi sürücüsü için ortam sarmalayıcı olarak hizmet veren aynı kod tabanını kullanır. Windows 98 için NTFS, NTFS'nin üzerindeki Windows 9x dosya sistemi API'sine ve NTFS'nin altındaki Windows 9x disk hizmetlerine bir arabirim sağlar. Windows 98 için NTFS'nin NTFS'ye sunduğu arabirim, NTFS'nin yerel Windows NT/2K ortamına benzer; IRP'ler, G/Ç Yöneticisi, Önbellek Yöneticisi, NT stili disk cihazları ve NTFS'nin etkileşimde bulunduğu diğer NT/2K alt sistemleriyle birlikte.

NTFSDOS Professional, NTFS'yi yukarıdaki DOS hizmetlerine ve bios Kesme 13 disk hizmetlerine arabirim eklemesi dışında, Windows 98 için NTFS ile aynı şekilde çalışır. NT/2K benzeri bir ortam oluşturmaya yardımcı olmak için NTOSKRNL,NT/2K çekirdek dosyası içinde birçok işleve güveniriz. Her iki yardımcı program da NTOSKRNL'yi NTFS ile birlikte yükler, böylece NTFS doğrudan çekirdeğin yerel hizmetlerini kullanabilir.

NTFS ortamını oluştururken o kadar eğlendik ki bir adım ileri gittik: AYNı şeyi NT'nin önyükleme zamanı chkdsk yardımcı programı Autochk ile yaptık. Windows 98 için NTFSDOS Professional ve NTFS, NTFSCHK adlı bir NTFS chkdsk yardımcı programıyla birlikte gelir. NTFSCHK, Autochk'in Windows 95/98 ve DOS altında çalışması için Autochk programı için NT benzeri bir ortam oluşturduğu NTFS dosya sistemi sarmalayıcısıyla aynı sorumlu üzerinde çalışır. Bu hilenin sonucu, Windows 95/98 ve DOS için tam NTFS okuma/yazma desteğidir.

Windows 98 http://www.sysinternals.com/ntfs98.htm için NTFS'nin ücretsiz salt okunur sürümünü ve NTFSDOS Professional'ın ücretsiz salt okunur sürümünü adresinden indirebilirsiniz http://www.sysinternalscom/ntfspro.htm. Her iki aracının tam okuma/yazma sürümlerini Winternals Software adresinden satın alabilirsiniz. http://www.winternals.com.

DEBUGVIEW V3.21

DebugView, Windows 95, Windows 98, NT 4.0 ve Windows 2000 altında hem çekirdeği hem de Win32 hata ayıklama çıkışını yakalayan bir hata ayıklama çıktısı izleyicisidir. Gelişmiş filtreleme, vurgulama ve günlüğe kaydetme özelliklerine sahiptir ve hatta ağ üzerinden bir sistemden hata ayıklama çıkışı yakalayabilir. En son sürümü olan 3.21, Windows 95 ve Windows 98 altında 16 bit OutputDebugString çıkışını izleme özelliğini tanıtır.

DebugView v3.21 sürümünü şu konumdan indirebilirsiniz: http://www.sysinternals.com/dbgview.htm.

FILEMON VE REGMON V4.21

Filemon ve Regmon, Windows 95, 98, NT 4.0 ve Win2K için dosya sistemi ve Kayıt Defteri casusluk yardımcı programlarıdır. Yeni kullanılabilirlik özellikleriyle gelişmeye devam ederler ve 4.21 sürümüyle (Filemon ve Regmon eşitlenmiş sürüm numaralarına sahiptir), son filtre listeleriyle daha gelişmiş filtreleme, vurgu filtresi tanımlama özelliği (özel renklerle bile), özelleştirilebilir yazı tipi, pano desteği ve CUI uyumlu daha fazla kısayol tuşu sunar. Sürücü kaynak kodu da yeniden çalışıldı ve GUI arabirimi işlevlerinde daha güçlü parametre doğrulaması içeriyor.

Filemon v4.21'i ve http://www.sysinternals.com/filemon.htm Regmon v4.21'i adresinden indirin http://www.sysinternals.com/regmon.htm.

DISKMON V1.1

Diskmon, mantıksal ve fiziksel disk etkinliğini izleyen ve görüntüleyen bir araçtır. Sürüm 1.1, Windows 2000 ile çalışacak şekilde Diskmon'ı güncelleştirir ve yeni kullanılabilirlik geliştirmeleri sunar. Ayrıca, Diskmon artık çok sayıda disk ve yığın depolama G/Ç Denetimi kodunu yorumlayarak onaltılık kodlarını Diskmon çıkış penceresindeki metin gösterimlerine çevirir.

Diskmon v1.1 yalnızca disk monitörü olarak çalışmaz, aynı zamanda yazılım tabanlı bir disk ışığı olarak da kullanabilirsiniz. Disk ışık modunda ayarladığınızda Diskmon, disk okuma erişimi olduğunda kendisini yeşil, disk yazma erişimi olduğunda kırmızı olan bir ışık olarak sistem tepsisine küçültür.

Diskmon v1.1'i şu konumdan indirin: http://www.sysinternals.com/diskmon.htm.

WWW.MICROSOFT.COM'DA SİSTEM İçLERİ

Systems Internals 'in (eski adı NT Internals) geçmişi göz önünde bulundurularak, Microsoft'un müşterileri için bir kaynak olarak sysinternals.com başvurması gerçekten çok gurur vericidir. Systems Internals yardımcı programlarını işaret eden giderek artan sayıda Microsoft Bilgi Bankası makalesi vardır. En son haberler şunlardır:

  • Q183060 BİlGİLerİ: 80004005 ve Diğer Hata İletileri için Sorun Giderme Kılavuzu http://support.microsoft.com/support/kb/articles/Q183/0/60.ASP
    Bu makalede, OLE DB, ActiveX Veri Nesneleri ve Uzak Veri Hizmeti'ndeki veri erişim hatalarının nedenini denetlemek için Filemon'u kullanabileceğiniz açıklanır.

  • Q196453 - NTVDM ve WOW Başlatma Hatalarını Giderme http://support.microsoft.com/support/kb/articles/Q196/4/53.ASP
    Bu makale, NTVDM (NT'de Win16/DOS uyumluluk ortamı) için başlatma hatalarına neden olan eksik dosyaları belirlemek için bir araç olarak Filemon'a da işaret eder.

  • Q216368 - PRB: Kullanımdaki Dosya Olduğunda Uygulama Kurulumu Sırasında Erişim İhlali http://support.microsoft.com/support/kb/articles/Q216/3/68.ASP
    HandleEx ve DLLView, Visual Basic Kurulum Sihirbazı ve Dağıtım Sihirbazı tarafından oluşturulan kurulum programlarının yürütülmesi sırasında oluşturucuların nedenini belirlemek için önerilen araçlardır.

  • Q232830 - NASIL YAPıLıR: Dosya Tanıtıcısı Sahipliğini Belirleme http://support.microsoft.com/support/kb/articles/Q232/8/30.ASP
    HandleEx, bu makalede hangi işlemin dosya veya dizin açıldığını bulmayı ele alan başvuruyu tekrar alır.

EKİm "NT INTERNALS"

Windows NT Magazine'in Ekim sayısında yer alan "NT Internals" sütunum "Inside Win2K Güvenilirlik Geliştirmeleri, Bölüm 3". Üç bölümlü serinin bu üçüncüsü, geliştiricilerin ve yöneticilerin buggy sürücülerini belirlemesine yardımcı olan iki güçlü Win2K özelliğini açıklar: yazma korumalı çekirdek belleği ve Sürücü Doğrulayıcı.

Rus okuyucular artık makalelerimi kendi dillerinde okuyabilirler. adresinden Windows NT Magazine'in http://www.osp.ru/win2000/ Rusça sürümüne gidin ve ilk çevrilmiş NT Internals sütunu olan Inside the Boot Process(http://www.osp.ru/win2000/1999/10/59.htm). Ivan Rouzanov'a teşekkür ederim.

Ağustos ayının başından itibaren, Windows NT Magazine makalelerinin çevrimiçi sürümlerine yalnızca aboneler erişebilir ve makaleler her yeni sorunla birlikte çevrimiçi olarak yayınlanır. Abone olmadıysanız, Systems Internals abonelik indirimini almak için adresinden abonelik bağlantısına http://www.sysinternals.com/publ.htm gidin.

ÇOK YENI OLMAYAN ŞEYLER

WinObj, Windows NT/2K Nesne ad alanını keşfetmeye yönelik güçlü bir araçtır. Nesne ad alanı, NT/2K'deki üç ad alanından biridir: Nesne ad alanı, Kayıt Defteri ad alanı ve dosya sistemi ad alanı. Nesne ad alanı içindeki nesneler aracılığıyla Kayıt Defteri ve dosya sistemi ad alanlarına ulaşabilirsiniz. Örneğin, bir Win32 programı Kayıt Defteri anahtarını HKEY_LOCAL_MACHINE\Software\Microsoft açtığında, ADVAPI32.DLL kitaplığı çekirdek hizmetini NtCreateKeyçağırmadan önce adını olarak \Registry\Machine\Software\Microsoft dönüştürür. WinObj'da Nesne ad alanının köküne bakarsanız Registry adlı "key" türünde bir nesne görürsünüz. Kayıt defteri adı anahtar adının ilk bileşeniyle eşleşir ve bu nedenle NT/2K Nesne Yöneticisi adın \Machine\Software\Microsoftgeri kalanını anahtar nesnesini tanımlayan alt sisteme geçirir. Configuration Manager çekirdek alt sistemi Kayıt Defteri'ni ve anahtar nesnelerini tutar, bu nedenle istenen anahtarı bulmak için adın geri kalanını ayrıştırıyor.

WinObj kullanarak Nesne ad alanını keşfedebilir ve nesne güvenlik özelliklerini görüntüleyebilir veya ayarlayabilirsiniz. Winobj'ı şu konumdan indirin: http://www.sysinternals.com/winobj.htm. Ekim 1997 NT Internals sütunum olan "Inside the Object Manager" bölümünde Object Manager ad alanını ve WinObj'yi ele alıyorum. Şu konumda sütunun satır içi sürümünün bağlantısını izleyin: http://www.sysinternals.com/publ.htm.

İÇ HABERLER

WIN2K RC2 DDK YAYıNLANDı

Microsoft'un Cihaz Sürücüsü Geliştirme Seti'nin (DDK) Win2K RC2 sürümünü şu konumdan indirebilirsiniz: http://www.microsoft.com/ddk/ddkRC2.htm. Seti ücretsiz olarak indirebilir veya belgelere on-line göz atabilirsiniz.

YENI WIN2K RC2 ÇEKIRDEK API'LERI

En son Win2K çekirdeğinde her şey dengeleniyor gibi görünüyor. RC3'te, Beta 3'ten RC1'e giden yaklaşık bir düzinenin (ve kaybolan diğer yarım düzinenin) aksine yalnızca dört yeni, dışarı aktarılan çekirdek API'si vardır. Yeni işlevlerden bazıları biraz ilginç, bu yüzden bunları sizin için belgelemeye karar verdim. birincisidir MmGetSystemRoutineAddressve belgelenmemiş olsa da prototipi RC2 DDK'nin ntddk.h üst bilgi dosyasına eklenir:

NTKERNELAPI
PVOID
MmGetSystemRoutineAddress (
    IN PUNICODE_STRING SystemRoutineName
    );

Kullanımı göründüğü kadar basittir. NTOSKRNL.EXE veya HAL.DLL bulunan bir işlevin adını geçirirseniz giriş noktası adresini geri alırsınız. Bu işlev Win2K'nin ilk sürümünde aslında işe yaramaz, ancak çok yararlı olabilir ve Microsoft'un NT'nin (3.1) ilk sürümüne dahil etmesi gereken bir işlevdir. Win32 uygulamaları için kullanıcı alanında olduğu gibi GetProcAddress , bu işlev bir sürücünün API'nin kullanılabilirliğini dinamik olarak belirlemesini sağlar. Microsoft, Win2K hizmet paketlerine yeni API'ler eklerse (ve ekleyeceklerinden eminim) sürücüler, API'lerden yararlanmak için yazılabilir, aynı zamanda Win2K'nin eski sürümlerinde düzgün bir şekilde başarısız olmak veya API'leri kullanmadıkları bir modda çalışmak için yazılabilir. Bunu yapabilen bir sürücünün anahtarı, yüklemeden sonra API'lerin olup olmadığını denetleyebilmektir. Bu işlevsellik olmadan bir sürücünün kullandığı işlevlerle statik olarak bağlantı kurması gerekir ve sürücü yüklendiğinde işlevler mevcut değilse çekirdek yükleyici kullanıcıya çirkin bir hata bildirir ve sürücüyü yükleyemez.

İkinci yeni API' dir MmGetPhysicalMemoryPages. Yine prototipi RC2 ntddk.h dosyasındadır ancak belgelenmemiştir. Prototipi:

NTKERNELAPI
PPHYSICAL_MEMORY_RANGE
MmGetPhysicalMemoryRanges (
    VOID
    );

Burada PHYSICAL_MEMORY_RANGE :

typedef struct _PHYSICAL_MEMORY_RANGE {
    PHYSICAL_ADDRESS BaseAddress;
    LARGE_INTEGER NumberOfBytes;
} PHYSICAL_MEMORY_RANGE, *PPHYSICAL_MEMORY_RANGE;

Bu işlev, hem hem de BaseAddress NumberOfBytesiçin 0 içeren bir girişle işaretlenmiş dizinin sonuna sahip bir girdi dizisi PHYSICAL_MEMORY_RANGE döndürür. gibi MmGetSystemRoutineAddressoldukça basit bir API'dir. Size Win2K'nin bildiği tüm fiziksel belleğin açıklamasını döndürür. Win2K, ve API'leri ile anında belleğin eklenmesini ve MmRemovePhysicalMemory kaldırılmasını MmAddPhysicalMemory destekler. Bu, bellek aralıklarını sorgulamanıza olanak tanıyan bir API'nin varlığının nedenini motive eder. MmAddPhysicalMemory RC1 ve MmRemovePhysicalMemory RC2'de eklendi. Bu işlevlerin her ikisi de ntddk.h dosyasında prototiplenmiştir.

Diğer yeni RC2 API'leri nelerdir? PoShutdownBugCheck ve RtlInvertRangeList. PoShutdownBugCheck sistemi çökmenize ve askıya alma gibi güçle ilgili bir eylem gerçekleştirmenize olanak tanır. RC2 çekirdeği tarafından birkaç yerde kullanılır. Aralıklar, kullanıcı tarafından tanımlanan ve bunlar üzerinde yönetme, sıralama ve yineleme için bir dizi çekirdek API'si tarafından desteklenen genel başlangıç-bitiş belirtimleridir. Win2K Tak Çalıştır kaynak kubiterleri, donanım kaynağı gereksinimlerini izlemek ve düzenlemek için bunları kullanır. Aralık listesi API'leri belgelenmemiş olsa da, tüm prototipleri ve yapı tanımları ntddk.h'ye dahil edilir, bu nedenle api'yi muhtemelen kendi başlangıç ucu odaklı verilerinizi yönetmek için kullanabilirsiniz.

Sonraki bültenlerde belgelenmemiş API'lerle daha fazla eğlence için bizi izlemeye devam edin.

YAZILIM GELİrME 99 DOĞU

Yazılım Geliştirme'nin 1999 Doğu Yakası sürümü 8-12 Kasım'dan itibaren Washington D.C.'de gerçekleştirilmektedir. Son gün üç konuşma sunuyorum: Geliştiriciler için Windows 2000'deki Yenilikler, Windows NT/2000 Mavi Ekran İçinde ve Windows NT/2000 Ağı İçinde. Buna ek olarak, Inside Windows NT 2nd Edition yazarı ve bir komşu (her yerde benden sadece 20 dakika uzaklıkta yaşıyor, Danbury, CT) ve ben bir Windows NT/2K iç yuvarlak masa barındırıyorum. Windows NT/2K iç işlevleri hakkındaki en zorlu sorularınızı yanıtlamak için birlikte olacağız. Merhaba deyin ve bültenden bahsedin, size ücretsiz bir Systems Internals tişörtü veririm!

Yazılım Geliştirme Web sitesini ziyaret edin: http://www.sdexpo.com.

DISKEDIT KULLANMA

Bunu bilmiyor olabilirsiniz, ancak DoS için saygın Norton Disk Düzenleme stilinde Windows NT için bir disk düzenleyicisi yardımcı programı vardır. Dahası, yardımcı programı FAT ve NTFS'yi anlar ve ücretsizdir. Microsoft, Windows NT 4.0 Service Pack 4 CD'sinde dosya sistemleri ekipleri için iç hata ayıklama aracı olması gereken diskedit aracını yanlışlıkla gönderdi. DiskEdit'in belgelemek için küçük bir el kitabı alacak tuhaf bir arabirimi var, ancak basit bir izlenecek yol ile başlamanızı istiyorum. NTFS dosya sistemi biçimini çözmek için DiskEdit'i kullanmaya odaklanacağım, çünkü NTFS'yi anlayan tek genel kullanıma açık araç DiskEdit'tir.

Öncelikle Service Pack 4 (SP4) CD-ROM'dan DiskEdit'i almanız gerekir. \i386 dizininden sabit diskinize kopyalamanız yeterlidir. Win2K altında DiskEdit kullanmak istiyorsanız, bunun için özel bir dizin oluşturmanız ve sp4 winnt\system32 dizininden (veya SP4 CD) aşağıdaki DLL'leri DiskEdit ile aynı dizine kopyalamanız gerekir: IFSUTIL.DLL, ULIB.DLL, UNTFS.DLL ve UFAT.DLL. Artık DiskEdit'i başlatabilirsiniz.

Bu izlenecek yol için, NTFS sürücüsünün kökünde TEMP adlı bir dizin oluşturun ve temp ile bir komut istemi penceresinde aşağıdaki komutu geçerli dizin olarak yazarak bu dizinde OUT.TXT adlı bir dosya oluşturun: echo hello > out.txt. Dosya| öğesini seçerek DiskEdit'te yeni OUT.TXT dosyanızın olduğu sürücüyü seçinMenü öğesini açın ve sonuçta elde edilen iletişim kutusunun Birim Adı alanına sürücünün harfini girin. "d:" gibi iki nokta üst üste eklemeyi unutmayın. DiskEdit'in neredeyse tüm işlevleri için bir sürücü açmanız gerekir.

NTFS sürücüsünün kök dizininden başlayarak OUT.TXT dosyasını bulayacağız. Menü girdisini seçin Okuma|NTFS Dosya Kaydı, herhangi bir MFT kayıt girdisini yalnızca numarasını girerek görüntülemenizi sağlayan bir iletişim kutusu açmak için. Her NTFS sürücüsünün ilk 16 MFT kayıt girdisi ayrılmıştır ve önceden tanımlanmış NTFS meta veri dosyalarına karşılık gelir. Sayı atamaları aşağıdadır (DiskEdit'in tüm girişleri onaltılık olarak yorumladığını unutmayın):

        0: $MFT - MFT
        1: $MFTMirr - MFT Mirror (a copy of the first 4 entries of the MFT)
        2: $LogFile - NTFS LogFile
        3: $Volume - volume information file
        4: $AttrDef - the attribute definition file
        5: . - the root directory
        6: $Bitmap - the volume allocation bitmap file
        7: $Boot - the boot sector
        8: $BadClus - the bad cluster database file
        9: $Secure - new to SP4, the security attribute database
        A: $UpCase - the lower-to-upper case mapping file
        B: $Extend - new to Win2K, the directory that contains
                             the reparse, object ID, and quota metadata files
        C-F: Unused as of NTFS v5.0 (Win2K)

Devam edin ve bu MFT girdilerinden bazılarına bakın. Ortak bir temayı fark etmeye başlayacaksınız: bunların tümü , $FILE_NAMEve $DATAgibi $INDEX_ROOTözniteliklerden oluşur. Bir dosyaya özgü verilerin depolandığı özniteliklerde bulunur. Öznitelik verileri küçük olduğunda NTFS, verileri dosyanın MFT kaydında "yerleşik" veri olarak depolar ve veriler büyük olduğunda NTFS, kaydın dışındaki verileri diskteki kümelerde "yerleşik olmayan" veriler olarak depolar.

Şimdi dosya numarası olarak "5" girin ve kök dizinin dosyasını görüntülüyor olacaksınız. Dizinin içeriğini kaydeden dizinlere özgü bir öznitelik olan dizinin özniteliğini görüntüleyerek kök dizindeki $INDEX_ALLOCATION dosya ve dizinlere bakacağız. Bunu yapmak için Oku|NTFS Öznitelik menü girdisi, başka bir iletişim kutusu açar. DiskEdit büyük/küçük harfe duyarlı olduğundan, listelediğim şekilde tam olarak aşağıdakileri girin:

        Base Frs Number: 5

Temel Frs (Temel Dosya Kaydı Kesimi), MFT numarası için başka bir addır. Kök dizinden bir özniteliği okumak istediğinizi belirtmek için 5'e girersiniz.

        Attribute Type: $INDEX_ALLOCATION

Bu, dizinin içerik verilerini okumak istediğinizi DiskEdit'e gösterir. DiskEdit öznitelik türünün girilmiş şekli konusunda çok seçici olduğundan, istediğiniz özniteliği seçmek için açılan menüyü kullanmanızı öneririm.

        Attribute Name: $I30

Kök dizinin özniteliğini görüntülerseniz$INDEX_ALLOCATION, "" ifadesinin "$I30Type code, name" satırında adı olarak listelendiğini görürsünüz, bu nedenle öznitelik adı olarak girdiğiniz ad budur.

Tamam'a bastığınızda özniteliğin içeriğinin onaltılık dökümünü görürsünüz. Daha anlaşılır bir şey görmek istediğimiz için Görünüm|NTFS Dizin Arabelleği menü girdisi. Size dizinin içeriğinin listesi gösterilir. "TEMP" adlı girdiyi görene kadar listeyi kaydırın. Bunu görmüyorsanız, giriş kök dizinin $INDEX_ROOT özniteliğinde, dizinlerle de ilişkilendirilmiş bir öznitelik türünde bulunabilir ve her zaman değeri MFT kaydında depolanır. Dizin kök girdileri ve ayırma girdileri birlikte bir dizinin tüm girdilerini depolayarak bir B+ ağaç yapısı oluşturur. Özniteliği görüntülemeniz gerekiyorsa, özniteliği görüntülemek $INDEX_ROOT için kullandığınız adımları izlemeniz $INDEX_ALLOCATION gerekir. Bir dizin arabelleğinde gezindikçe, iki satırlık yıldız işaretiyle karşılaşabilirsiniz: bunlar bir dizin arabelleğinin sonunu ve sonrakinin başlangıcını belirtir.

TEMP dizininin girdisini bulduğunuzda, dosya başvurusunu (FRS) not edin. Oku|'yi seçinNTFS Dosya Kaydı ve TEMP'nin FRS'sini girin. Şimdi TEMP dizini için MFT kaydına bakıyorsunuz. OUT.TXT dosyasını bulmak istediğimiz için temp dosyasını bulmak için içeriğine bakmamız gerekir. TEMP dizininin $INDEX_ALLOCATION (veya $INDEX_ROOT) özniteliğini görüntüleyin, verileri NTFS Dizin AraBelleği olarak görüntülemeye geçin ve OUT.TXT dosyasını bulun. Öznitelik seçimi iletişim kutusunda TEMEL FRS numarası olarak TEMP'in FRS değerini girmeyi unutmayın. TEMP'yi yeni oluşturduysanız yalnızca bir $INDEX_ROOT değeri olur (yanlış yazdığınızda DiskEdit'in boş hata iletişim kutularında görme zevkini elde edersiniz).

OUT.TXT bulduğunuzda ve FRS'sinde Okuma|MFT girdisine bakmak için NTFS Dosya Kaydı. $DATA özniteliğini bulana kadar aşağı kaydırın. Şimdi OUT konumuna bakıyorsunuz. TXT'nin verileri. Küçük bir dosya yaptığımız için veriler MFT kaydında depolanır. OUT'ı görüntülemeye çalışırsanız. $DATA DiskEdit kullanan TXT özniteliği, DiskEdit yerleşik verileri düzgün göstermediğinden (DiskEdit'in birçok hatasından biri) hiçbir şey görmezsiniz. Bu nedenle, bir gırtlak (> 2 KB) metin dosyasını öğesine \TEMP\ OUT.TXTkopyalayın. Artık OUT.TXT verilerini iki yoldan biriyle görüntüleyebilirsiniz: Okuma| kullanarak verilerin başlangıcını (veya bitişik olarak diskte depolanmışsa tümünü) inceleyebilirsinizNTFS Kümesi ve OUT içinde gördüğünüz ilk "lcn" değerini belirtme. TXT'nin $DATA "Kapsam Listesi" özniteliğini veya Okuma|NTFS Özniteliği ve öznitelik türü olarak "$DATA" girin ve öznitelik adı olarak hiçbir şey (bu alana hiçbir şey yazma gibi) girin.

Kapsam listeleri, özniteliğin yerleşik olmayan verilerinin konumunu açıklar. En fazla 16 küme uzunluğundaki her bitişik veri bloğu, bir kapsam listesi girdisi ile açıklanır. Kapsam listesi girdisi bir sanal küme numarası (vcn), mantıksal küme numarası (lcn) ve çalıştırma uzunluğunu belirtir. Vcn, girdi tarafından açıklanan verilerin başlatıldığı dosya içindeki kümedir. Lcn, verilerin diskte depolandığı mantıksal kümeyi belirler ve çalıştırma, bu konumdaki öznitelik verilerinin bayt sayısıdır (DiskEdit'in size onaltılık değerler gösterdiğini unutmayın).

Dizin içeriğini nasıl tarayabileceğinizi göstererek OUT.TXT dosyasının MFT kaydını bulmanın uzun yolu boyunca size yol gösterdim. Ancak bir kısayol vardır: Crack| öğesini seçinNTFS Yolu'nu seçin ve TEMP\OUT.TXT girin. SIZE OUT sunulur. TXT'nin FRS'sini ve Okuma|Ntfs Dosya Kaydı'na doğrudan gidin.

Bu beni DiskEdit primer'ımın sonuna getiriyor. FAT veya NTFS sürücülerinize göz atarak bu şık araçla oynamanızı tavsiye ederim. Diskinizi sıkışık bir durumdan çıkarmak için verileri değiştirmek için DiskEdit'i kullanma olasılığınız oldukça düşüktür, ancak DISK içi NTFS biçimini merak ediyorsanız (FAT biçimi iyi belgelenmiştir) bu araştırma için mükemmel bir araçtır.

YAKLAŞANLAR

WIN2K API'SINDE PATLAMA

Rc2'de ilk kez kullanıma sunulan yalnızca 4 yeni dışarı aktarılan çekirdek modu API'leri olsa da, Hem çekirdekte hem de çekirdek Win32 DLL'lerinde, MICROSOFT'un NT 4.0'dan bu yana tanıttığı toplam API sayısı patlamıştır. Gelecek ay size tam olarak kaç yeni API olduğunu ve nerede göründüklerini anlatacağım ve ne yazık ki Win2K'nin şişirilmiş bir canavar olduğuna inanan insanlara alt.advocacy.linux Usenet rant'ları için harika bir mühimmat vereceğim.


Systems Internals Bülten'i okuduğun için teşekkür ederiz.

Yayın tarihi: 20 Ekim 1999 Çarşamba 19:10 ottoh

[Bülten Arşivi ^] [< Birim 1, Sayı 4] [Birim 2, Sayı 1 >]