................... ...::: phearless zine #3 :::... ...........................>---[ Secret of BSOD ]---<.......................... ..............................>---[ by m4rk0 ]---<............................. majurac[at]gmail[dot]com => 1.INTRO - BSOD basics - BSOD's form - most notorious felon list => 2.Appearance of BSOD and method of recovery - Appearance & recovery - identivication of drivers => 3. Full description of BSODs => 4. Conclusion /////////////////////////////////////////////////////////////////////////// --==<[ 1. Intro \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Ukoliko ste ikada koristili m$ baziran win sistem onda ste verovatno vec imali priliku da se susretnete "Blue Screen Of Death", odnosno BSOD. U ovom tutorijalu cu vam objasniti neke detalje o tome sta zapravo predstavlja BSOD i ponuditi odredjene opcije koje bi vam mogle pomoci prilikom resavanja problema. Bitno je da znate da ukoliko je win system tako podesen da se usled sistemske greske automatski restartuje, necete biti u mogucnosti da vidite BSOD, a vise informacija cete naci u event viewer-u. Znaci, neophodno je da diseblujete automatski restart nakon greske. Diseblovanje ove opcije pronacicete u System Properties-u. Sta je BSOD? Kada se windows susretne sa situacijom koja onemogucava sigurnu sistem operaciju (na pr: "bug"), sistem pocinje da “posustaje”. naziva system crash, kernel error, system fault, ili Stop error.. Tom prilikom se ekran prebacuje u VGA tekst mod, iza je plava pozadina i zatim dolazi do prikazivanja error poruke. Upravo zbog te plave boje u pozadini i naravno njene osobine dobjen je i naziv Blue Screen of Death (BSOD). Forma BSOD-a: Izgled tj. forma poruke BSOD-azavisi od uzroka greske.. BSOD moze imati sledecu formu: STOP: 0x00000079 (0x00000002,0x00000001,0x00000002,0x00000000) U ovom slucaju prva vrednost (0x00000079 – sve vrednosti u ovom zapisu su hexadecimalne) je poznata kao bugcode ili Stop code. Ostale cetiri cifre (bez zagrada) su BSOD lista parametara i imaju vrednosti koje su zavisne od bugcod-a.. Druga forma BSOD –a je stop STOP: c000021a (Fatal System Error). U odnosu na bugcode, druge hexadecimalne informacije mogu biti prikazane u BSOD-u. One mogu sadrzati: - Naziv drajvera ili servisa koji je izazvao BSO - Tekstualno objasnjenje razloga nastanka BSOD-a - Potencijalne nacine popravke - Kernel deo memorije sa adresama Postoji preko 250 dokumentovanih BSOD kodova i mnogi od njih su dokumentovani kao "This bug check appears very infrequently." (ovo je celokupan tekst citiran direktno iz Microsoft dokumentacije). I nazalost, vecina BSOD kodova sadrze adrese tako da je slaba vajda od njih.. Iz ovoga zakljucujemo da mnogi BSOD -i predstavljaju samo nagovestaj prave stete, i neophodno je znatno dublje istrazivanje sa WinDBG i debug verzijama drajvera. BSOD-i se prvenstveno primenjuju za debagovanje drajvera i vecina se javlja za vreme razvojne faze generisanja drivera.. The Microsoft Device Driver Kit ( poznatiji kao DDK) sadrzi listing svih dokumentovanih BSOD bugkodova. Ipak je cinjenica da postoji vise bugkodova od onih kojis u dokumentovani u DDK, i I vise nego sto se moze pronaci u DDK header fajlovima. Za vreme Microsoft driver ispisivanja javlja se "most notorious felon" lista sourceva koja tezi da izazove BSODs. Ova lista “krivaca” je zajednicka za sve PC-e u globalu a ne samo za SunPCi paket. Sto znaci da ukoliko ponosni vlasnik nekoh od ovih tipova sistema, imacete priliku da se susretnete sa BSOD. Bitno je da korisnici budu obazrivi sa 3rd party hardverom I drajverima koji nisu WHQL sertifikovani. Ova lista sadrzi: - CDROM/CD rezace - External HD-ove - Av skenere - External backup uredjaje - Graficke “mirroring” aplikacije. /////////////////////////////////////////////////////////////////////////// --==<[ 2. Pojava BSOD-a \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Kada se javi BSOD resenje se ne moze istog trenutka pronaci i zapoceta operacija se ne moze nastaviti. Najverovatnije, vecina BSOD-a ne izaziva ostecenje podataka, pogotovo ako je u pitanju file sistem kao sto je NTFS. Ukoliko se javi bugcheck, korisnik bi trebao da otkrije nacin da otkloni taj “crash” i takodje da otkrije koji softver ili drajver moze biti uzrocnik greske. Ukoliko na BSOD ekranu primetite neke podatke i u njima naziv nekog drajvera, upravo taj drajver je potencijalni izazivac problema.. U odredjenim slucajevima gde se BSOD javi usred win operacije i tom slucaju je sacuvavanje ovih informacija u SunPCi log fajlu nemoguce. Da biste napravili screenshoot samog BSOD prozora kod SunPCi-a treba upotrebiti tool snapshot ili X Windows tool xwd. Nacini popravke: U sustini nema bas mnogo nacina otklanjanja greske i uglavnom svako pokusa jednostavan restart sto za divno cudo ponekad i resi problem. Ukoliko se i posle toga BSOD pojavi, potrebno je izvesti odredjene korake. Ukoliko smo skoro instalirali neki softver ili ubacivali nesto od hardvera potrebno je proveriti da nesto od toga nije izvor problema. Svi win useri bi trebali da obrate paznju na softver koji instaliraju i da budu obazrivi sa driverima koji nisu WHQL sertifikovani. Treba uraditi sledece: - Proveriti u event viwer-u da nema neka prijavljena greska - Pokrenuti Chkdsk/f/r I proveriti sve particije.. Btw: ukoliko su vam particije formatirane u FAT , odredjeni fajlovi koje win koristi mogu biti unisteni ako se scandisk ili drugi MS-DOS bazirani HD toolovi pokrenu iz cmd-a . Uvek koristiti verziju Chkdsk koja odgovara verziji vaseg win-a., a to se obicno ovde nalazi: C:\winnt\system32 or %SystemRoot%\system32. a) Prvo cemo poceti od slucaja kada je novi hardver dodat ili je postojeci modifikovan. U ovom slucaju treba uraditi sledece: - Pokrenuti soft koji dobijate uz hardver od strane proizvodjaca - Proverite sve konatkte, kablove ulaze/izlaze itd. - Proveriti da li su instalirani latest driveri I da li je instaliran poslednji sp za win. - Proveriti System Log u Event Viewer-u da li je “pribelezen” neki error. - Ukloniti sumnjiv drajver ili uredjaj, restartovati komp i proveriti da li je problem resen. b) Sledeci nacin popravke je popravka putem safe mod-a: Pri podizanju win-a pritiskajte f8 i pojavice vam se safe mod screen sa nekoliko ponudjenih opcija Ako se BSOD javio nakon instalacije novih ili apdejtovanih drajvera, ti drajveri bi trebali da se uklone ili zamene odgovarajucima. Ukoliko se BSOD javio za vreme startup procesa, bicete u mogucnosti da upotrebite Safe Mode booting da biste preimenovali i/ili izbrisali drajver koji je uzrocnik problema.. U safe mod screenu se moze izabrati i Last Known Good Configuration, cijim ce se odabirom ucitati system sa poslednjom konfiguracijom koja je radila ok. >>>Identifikacija drajvera.<<< Pri BSOD-u ce se u error-u identifikovati uredjaj koji je izazvao problem. U tom slucaju treba ukloniti taj uredjaj I izbrisati njegove drivere. Da bi saznali da li je driver iz m$ paketa, obratite paznju na donju tabelu. Lista NT drajvera koji se mogu javiti u BSOD-u: ---------------------------------------------------------------- |Naziv drivera | Funkcija | ----------------------------------------------------------------| |NtosKrnl.exe | NT kernel | |NTdll.dll | NT support library | |Win32k.sys | Graphics Display Interface (GDI) Driver | |Hal.dll | Hardware Abstraction Library | ---------------------------------------------------------------- >>>Kernel terminologija<<< >Bugcode<-------------Heksadecimalna vrednost koja identifikuje BSOD. Primer je 0xA, koji identifikuje ovaj BSOD kao IRQL_NOT_LESS_OR_EQUAL BOSD >Driver<-------------Ovo je kernel mode program koji je deo Windows OS-a i koji upravlja svim zahtevima kod odredjenih uredjaja. Na pr display driver koji “sakuplja” komande sa win aplikacija i prosledjuje hardveru sta da “iscrta” na ekranu.. >Exception<-------------Error uslovljen drajverom koji izaziva gresku ili pad sistema >HCT<-------------Hardware Compatibility Test. Ovo je veoma vazan Microsoft validation test za drajvere koji, ukoliko su ga prosli, omogucava istima da budu smesteni u Microsoft's Hardware Compatibility Listu. Ukoliko je drajver uspesno prosao HCT, veoma je mala verovatnoca da postoje uslovi da upravo on >HCL<-------------Hardware Compatibility List. Ovo je m$ lista sertifikovanih drajvera koji su prosli Hardware Compatibility Test (HCT). >IRQL<-------------Interrupt ReQuest Level. U toku procesa, NT kernel ce proci kroz razlicite oblike. Ovi oblici su poznati kao IRQL i identifikovani su kompletom celih brojeva i to od 0 do 31. Kod svakog IRQL postoje specificna pravila kojih se moramo pridrzavati.. Na pr odredjene memorijske reference/pristupi mogu jedino biti izvrsene kod odredjenog IRQL-a a kod ostalih to nece biti slucaj. >IRP<-------------I/O Request Packet. Ovo je kernel struktura koja je prosla izmedju drajvera da bi saopstila I/O zahtev. Tipicni I/O zahtevi trebali bi biti aktivnosti kao sto su: citati, pisati, otvarati, zatvarati, IOCTL… >NonPaged Pool<-------------Ovo je podrucje kernel memorije koja ne moze da bude “adresirana” izvan memorije (na pr:, Paged Pool). Obicno ce drajver odvojiti takvu memoriju tako da ce moci da pristupi bilo kom IRQL. >NT kernel<-------------Genericno ime za Windows operativne sisteme posle Win3x/Win9x. On ukljucuje Windows NT 4, Windows 2000, Windows XP i Windows .NET >Paged Pool<-------------Ovo je podrucje kernel memorije koje moze biti “adresirano” van diska ukoliko ono nije trenutno upotrebljeno. >Service or System Service<-------------Ovo je program koji nije deo kernela koji izvrsava odredjene zadatke (na pr: servise) koristeci druge procese. Korisnik ne moze direktno pristupiti ovom servisu, ali zato programi/aplikacije mogu da zadaju zahtev servisima za njihovo izvrsavanje. >WinDBG<-------------Ovo je Windows Kernel Mod debugger koji je uvrsten u Microsoft Device Driver Kit (DDK). Slican je naprednoj verziji UNIX/Solaris operativnom okruzenju dbx/gdb/kdb/kgdb >Wintel<-------------Stenografija za Windows/Intel /////////////////////////////////////////////////////////////////////////// --==<[ 3. BSOD objasnjenje \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ U nastavku cu vam izneti BSOD poruke koje se uglavnom javljaju . Sami vidite da se pri erroru javlja odredjen pojam koji opisuje I sam problem…na pr “file system error” znaci da nesto nije uredu sa sistemskim fajlovima itd. . ----------------------------->Bugcode 0xA <–------------------------------- IRQL_NOT_LESS_OR_EQUAL Ovo je uobicajni BSOD kada je drajver pristupio memoriji u toku rada NT-a kod specificnog IRQL-a. Ovo je driver coding error, i javlja se pri pokusaju pristupa nevazecoj memorijskoj lokaciji. Parametri: 1 - memory location that was referenced 2 - IRQL at time of reference 3 - 0 == read, 1 == write 4 - code addressed which referenced memory Resavanje problema: Nema ga, posto je ovo driver coding error i fatal error ----------------------------->Bugcode 0x1E<–------------------------------- KERNEL_MODE_EXCEPTION_NOT_HANDLED Javlja se kada drajver napravi gresku koju rukovodilac memorije nije prihvatio. Desava se za vreme coding error-a. Znaci nastaje kada se opozove losa memorijska adresa . Parametri: 1. 0x80000002 = unaligned data reference encountered 0x80000003 = a kernel breakpoint/ASSERT encountered 0xC0000005 = memory access violation occurred 2 - address of the exception 3 - parameter 0 of the exception 4 - parameter 1 of the exception Nacin popravke: - Proveriti da li su instalirani latest drajveri za plocu - Ukoliko su u skorije vreme instalirani sumnjivi drajveri ili softver, treba se obratiti posebna paznja. - Erorr se javlja posle prvog restarta I to za vreme Windows Setupa ili nakon njegovog okoncanja.Takodje ce moze javiti ukoliko nema dovoljno mesta na disku za instalaciju. U tom slucaju izbrisite sva njesra koja vam nisu potrebna tipa temp fajlovi I ostali trash. –------------------------------->Bugcode 0x2E<–------------------------------- DATA_BUS_ERROR Javlja se kada je error detektovan u sistemskoj memoriji a problem je hardverske prirode,tj. Kad je neka ubacena makina ostecena ili nije dobro podesena konfiguracija za rad iste. Najcesce je u pitanju ostecena radna memorija, Level 2 RAM cache greske, ili video RAM greske. Takodje i HD moze biti krivac ovog BSOD-a. Parametri: 1 - Virtual address that caused the fault 2 - Physical address that caused the fault 3 - Processor status register (PSR) 4 - Faulting instruction register (FIR) Resavanje problema:: - Postoji mogucnost da novi hardver nije dobro podesen zato idite do New Hardware Added/Existing Hardware Modified sekciju u General Recovery Procedures sekciji. - Proveriti system dal nema virusa i ostale gamadi - Odraditi Chkdsk/f/r (kucati u command promptu) na sistemskoj particiji. –------------------------------->Bugcode 0x3F<–------------------------------- NO_MORE_SYSTEM_PTES Javlja se kada system izvrsi previse I/O akcija I dolazi do fragmentovanja system “page” tabele - PTEs Parametri: 1 - 0 == system expansion PTE type 1 == nonpaged pool expansion PTE type 2 - size of memory request 3 - total free system PTEs 4 - total system PTEs Resavanje problema: - Ukloniti sav softver koji ste instalirali u skorije vreme, a posebno backup aplikacije <–-------------------------------Bugcode 0x22<–------------------------------- FILE_SYSTEM Javlja se usled greske kod sistemskih fajlova.Javlja se u slucajevima kada se set sistemskih fajlova razlikuje od onog kada system normalno funkcionise i razlog ove greske su osteceni dll fajlovi kao i softver kupljen na buvljaku :>. Parametri: 1 - embedded module tag/line number 2 - unused 3 - unused 4 - unused Resavanje problema: Repair/clean install –------------------------------->Bugcode 0x44<–------------------------------- MULTIPLE_IRP_COMPLETE_REQUESTS Predstavlja gresku u logickom drajveru i desava se kada se slanje I/O Request Packet (IRP) prekine vise od jednog puta.Sto se tice popravke, korisnik treba da obrati paznju na sve aplikacije koje su pokrenute u trenutku pada sistema. Parametri: 1 - Address of the IRP 2 - Reserved 3 - Reserved 4 - Reserved Popravka: Nema popravke. –------------------------------->Bugcode 0x4E<–------------------------------- PFN_LIST_CORRUPT Dolazi do greske memorije unutar uredjaja (the Page Frame Number (PFN) lista je ostecena). Sto se tice popravke, korisnik treba da obrati paznju na sve aplikacije koje su pokrenute u trenutku pada sistema. Parametri: 1 - type of corruption 2 - page frame or entry number at time of failure 3 - page information 4 - reserved Popravka: Nema popravke. <–-------------------------------Bugcode 0x5<–------------------------------- INVALID_PROCESS_ATTACH_ATTEMPT Ovo ukazuje da kernel proces pokusava da se poveze sa drugim procesom. Ova greska posebno utice na win server. Sto se tice popravke, korisnik treba da obrati paznju na sve aplikacije koje su pokrenute u trenutku pada sistema. Parametri: 1 - reserved 2 - reserved 3 - reserved 4 - reserved Popravka: Nema popravke. –------------------------------->Bugcode 0x50<–------------------------------- PAGE_FAULT_IN_NONPAGED_AREA Javlja se greska kod drajvera I to kada drajver pokusa da pristupi memoriji koja ne odgovara sopstvenom IRQL-u drajvera. Sistem ce pokusati I pronace drajver isticanjem naziva drajvera putem BSOD informacija Parametri: 1 - memory address referenced 2 - 0 == read operation 1 == write operation 3 - address that referenced memory 4 - reserved Popravka: Dva nacina - Otici u New Hardware Added/Existing Hardware Modified sekciju theGeneral Recovery Procedures sekcije - Postoji mogucnost da novi hardver nije dobro podesen zato idite do New Hardware Added/Existing Hardware Modified sekciju u General Recovery Procedures sekciji. <–-------------------------------Bugcode 0x7B<–------------------------------- INACCESSIBLE_BOOT_DEVICE Ovaj error znaci da windows ne moze da pristupi sistemskoj particiji za vreme setup/boot-a. Parametri: 1 - reserved 2-0 3-0 4-0 Popravka: Ovaj error nastaje kada se user ne pridrzava instrukcija u toku instalacije. Umesto toga korisnik pokusava da instalira Windows koristeci Microsoft supplied installer (na pr: setup.exe or winnt.exe u I38 6 direktorijumu instalacionog medija). Razlog nastanaka ovog BSOD-a je taj sto PC proizvodi upotrebljavaju “emulated” disk gde postoje posebni drajveri koji se moraju naci u Windows boot-u da bi iscitali informacije na tom disku. Oni nisu prihvaceni ni na jednoj m$ distribuciji. Popravka se u ovom slucaju vrsi restartom u toku instalacije upotrebom the outlined metode.Ovaj BSOD se moze javiti I nakon uspesne instalacije, znaci ne mora biti slucaj kao sto sam gore pomenuo. U tom slucaju butujte system sa win diska i u recovery konzolu kucajte Chkdsk <–-------------------------------Bugcode 0x7F<–------------------------------- UNEXPECTED_KERNEL_MODE_TRAP Greska se javila od strane CPU-a I krenel ne uspeva da izbegne tu zamku. POstoje prvi I drugi nivo zamke koji kasnije izazivaju errore koji se nadovezuje na ranije errore sto se najcesce zavrsava krashom sistema.. Parametri: 1 - trap number 0x000000000 - Divide by Zero error 0x000000004 - Overflow 0x000000005 - Bounds check fault 0x000000006 - Invalid Opcode 0x000000008 - Double/Multiple faults 2 - reserved 3 - reserved 4 - reserved Popravka: Postoji mogucnost da novi hardver nije dobro podesen zato idite do New Hardware Added/Existing Hardware Modified sekciju u General Recovery Procedures sekciji. <–-------------------------------Bugcode 0x8E<–------------------------------- KERNEL_MODE_EXCEPTION_NOT_HANDLED Javlja se kada drajver napravi gresku koju rukovodilac memorije nije prihvatio. Znaci nastaje kada se opozove losa memorijska adresa Parametri: 1 - exception code 0x80000002 = unaligned data reference encountered 0x80000003 = a kernel breakpoint/ASSERT encountered 0xC0000005 = memory access violation occurred 2 - address of the exception vector 3 - trap frame 4 - reserved Popravka: - Proveriti da li su instalirani latest drajveri za plocu - Ukoliko su u skorije vreme instalirani sumnjivi drajveri ili softver, treba se obratiti posebna paznja. - Erorr se javlja posle prvog restarta I to za vreme Windows Setupa ili nakon njegovog okoncanja.Takodje ce moze javiti ukoliko nema dovoljno mesta na disku za instalaciju. U tom slucaju izbrisite sva njesra koja vam nisu potrebna tipa temp fajlovi i ostali trash. <–-------------------------------Bugcode 0xA<–------------------------------- IRQL_NOT_LESS_OR_EQUAL Javlja se kada drajver pristupi memoriji kod neodgovarajuceg IRQL-a. Najcesce se javlja pri instalaciji sumnjivog drivera kao i sistemskih servisa. Parameters: 1 - memory referenced 2 - IRQL at time of reference 3 - 0 == Read, 1 == Write 4 - Address which referenced memory Popravka: - Prva opcija je da se system podigne u safe modu I izabere Last Known Good i ukloni se problematican drajver ili iskljuci problematican servis. - Resenje problema se takodje moze naci u Event viewer-u u kome se generisu svi errori. Takodje obratite paznju da instalirate najnoviji service pack za vas win. <–-------------------------Bugcode 0xC000021A<–------------------------------- STATUS_SYSTEM_PROCESS_TERMINATED Istice da se greska javila u grafickom podsistemu.. Win zahteva da graficki podsistem normalno radi da bi win nastavio operaciju. Najcesce ce drajver koji je krivac za nastanak problema biti identifikovan kao winlogon.exe sto u prevodu znaci da je doslo do ostecenja win32k.sys fajla.. Parameters: 1 - reserved 2 - reserved 3 - reserved 4 - reserved Popravka: Ova greska se popravlja jednostavnim restartom, a ako se tim putem ne dodje do resenja neophodno je pokrenuti Chkdsk/f/r radi detektovanja i ispravljanja bilo kog fajla koji je ostecen. <–------------------------Bugcode 0xC0000221<–------------------------------- STATUS_IMAGE_CHECKSUM_MISMATCH Drajver ili sistemska biblioteka je ostecena na disku. Ovo se retko javlja I samo nekoliko puta je primeceno. Javlja se pri gresci u toku prenosenja image podataka sa emulated disk a na win os. Parametri: 1 - reserved 2 - reserved 3 - reserved 4 - reserved Popravka: Ova greska se popravlja jednostavnim restartom, a ako se tim putem ne dodje do resenja neophodno je pokrenuti Chkdsk/f/r radi detektovanja i ispravljanja bilo kog fajla koji je ostecen. <–---------------------------Bugcheck 0xC2<–------------------------------- BAD_POOL_CALLER Kernel tred/proces pruza pogreno memorijsko odobrenje zahteva. Parametri: 1 - reserved 2 - reserved 3 - reserved 4 - reserved Popravka: Nema popravke. <–-------------------------------Bugcheck0xC4<–------------------------------- DRIVER_VERIFIER_DETECTED_VIOLATION Driver Verifier facility (DVF) je detektovala narusavanje m$ pravilnika drajvera. Parametri: 1 - error code 2 - reserved 3 - reserved 4 - reserved Popravka: Javlja se samo u slucaju da je DVF enablovan. Driver Verifier je takodje i automatski enablovan u toku rada Microsoft Hardware Compatibility Test-a (HCTs). Resenje je jednostavno udariti disable i to je to. <–-------------------------------Bugcode 0xD1<–------------------------------- DRIVER_IRQL_NOT_LESS_OR_EQUAL Drajver pokusava da pristupi memoriji dok je CPU u neodgovarajucem IRQL-u. Parametri: 1 - memory address referenced 2 - IRQL 3 - 0 == Read, 1 == Write 4 - address that referenced memory Popravka: Nema popravke. /////////////////////////////////////////////////////////////////////////// --==<[ 4. Tacka na I \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Nadam se da ce vam ovaj txt olaksati resavanje problema u situaciji kada vam se pojavi plava smrtovnica. Takodje se nadam da cu napisati jos mnogo tutorijala za nas zajn i da ce zajn izlaziti jos dugo dugo godina. ---------- Literatura: My smart brain & some stuff from p2p system. ---------- ---------- Gr33tZ t0: ---------- Svim ortacima i ribama iz "Paris Club-a" :> Svim ortacima iz blackhat organizacije Svim ljudima (a posebno odredjenim devojkama ;>) sa MC foruma.