{"id":556,"date":"2008-08-05T22:16:02","date_gmt":"2008-08-05T21:16:02","guid":{"rendered":"http:\/\/soci.hu\/blog\/?p=556"},"modified":"2008-08-05T22:23:34","modified_gmt":"2008-08-05T21:23:34","slug":"windows-internals-vizsga-tapasztalatok","status":"publish","type":"post","link":"https:\/\/soci.hu\/blog\/index.php\/2008\/08\/05\/windows-internals-vizsga-tapasztalatok\/","title":{"rendered":"Windows Internals vizsga &#8211; tapasztalatok"},"content":{"rendered":"<p>Voltam, l\u00e1ttam, visszamenn\u00e9k :) Ahogy v\u00e1rhat\u00f3 volt ez nem az a vizsga, amit 2 nap tanul\u00e1ssal le lehet tenni. A Windows Internals k\u00f6nyvb\u0151l 3 fejezetet tudtam megem\u00e9szteni ennyi id\u0151 alatt, \u00edgy az azokkal kapcsolatos k\u00e9rd\u00e9sekre tudtam is kb. a v\u00e1laszokat. Ha valaki elolvassa, meg\u00e9rti \u00e9s kipr\u00f3b\u00e1lja a gyakorlatokat a k\u00f6nyvb\u0151l, akkor szerintem a k\u00e9rd\u00e9sek kb. 70%-\u00e1ra tudni fogja a v\u00e1laszt.<br \/>\nA marad\u00e9k 30-hoz \u00e1ltal\u00e1nos API programol\u00e1si ismeretek, windbg igen alapos ismerete \u00e9s a device driver programoz\u00e1s egyes r\u00e9szletei sz\u00fcks\u00e9gesek. Emellett tudni kell k\u00e9khal\u00e1lt analiz\u00e1lni, \u00e9rteni az IO m\u0171veleteket kernel m\u00f3dban, IRQ-kkal kapcsolatos debugol\u00e1sokat, dumpokat elemezni, verifierrel vegz\u00e1ni drivereket, paged, nonpaged, stb. mem\u00f3ri\u00e1kat elemezni, heap corruption-\u00f6ket debugolni, lefagyott vagy lerohadt user m\u00f3d\u00fa appokat debugolni, kernelb\u0151l visszah\u00edvni user m\u00f3dba, szervizeket piszk\u00e1lni, leak-eket analiz\u00e1lni, k\u00fcl\u00f6nb\u00f6z\u0151 utilokat ismerni (umdh, procexp, tlist, kernrate, sc, gflags, stb.), 64 biten 32 bites cuccok futtat\u00e1sa, UAC jobbra-balra, DEP, memory mapped files, IO completion portok, named pipe-ok, file-ok kezel\u00e9se szinkron \u00e9s aszinkron m\u00f3don, Credential api, perfmon, pool tagging, kernel profiloz\u00e1s, power esem\u00e9nyek kezel\u00e9se device driverb\u0151l, kernel strukt\u00far\u00e1k debugol\u00e1sa, azokb\u00f3l inf\u00f3k kib\u00e1ny\u00e1sz\u00e1sa (nt!_KWAIT_BLOCK, _DISPATCHER_HEADER, stb.), P&#038;P eszk\u00f6z\u00f6k debugol\u00e1sa, user \u00e9s kernel m\u00f3d\u00fa szinkroniz\u00e1l\u00e1s, aszinkron IO programoz\u00e1sa driverben, kernel sz\u00e1lak kezel\u00e9se, IRQL szintek \u00e9s azok jellemz\u0151i, Deferred Procedure Call programoz\u00e1sa, DMA kezel\u00e9s, v\u00e9dett m\u00f3dba l\u00e9p\u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 processzorokon, k\u00e9zzel lekreseltetni a lefagyott oprendszert (dump c\u00e9lj\u00e1b\u00f3l), checked build\u0171 kernel hozz\u00e1ad\u00e1sa \u00e9les g\u00e9phez, filter driverek probl\u00e9m\u00e1i, stb, stb. Most t\u00f6bb nem jut az eszembe. Kb. 3\/4 r\u00e9sz kernel, \u00e9s 1\/4 r\u00e9sz user m\u00f3d volt benne. A k\u00e9rd\u00e9sek legal\u00e1bb a fele a WinDbgr\u0151l sz\u00f3l. Ezzel nem is lett volna baj, \u0151 az \u00faj szerelmem m\u00e1r p\u00e1r h\u00f3napja (sokkal t\u00f6bbet tud, mint a vs debuggere), de \u00e9n eddig user m\u00f3dban debugoltam. Igaz, h\u00e9tv\u00e9g\u00e9n \u00f6sszehoztam egy kernel debug sessiont a 64 bites g\u00e9pen, orgazmushoz k\u00f6zeli \u00e9rz\u00e9s CTRL-Break-kel meg\u00e1ll\u00edtani az oprendszert, \u00e9s beleesni a kernel debuggerbe. Majd ha e helyett m\u00e1r unalmat \u00e9rzek, akkor \u00e9rdemes elmenni erre a vizsg\u00e1ra (ez kicsit k\u00e9t\u00e9rtelm\u0171 lett. :).<br \/>\nSz\u00f3val korrekt, de neh\u00e9z k\u00e9rd\u00e9sek voltak.<\/p>\n<p>Feltett sz\u00e1nd\u00e9kom, hogy az\u00e9rt is meg\u00e9rtem mi t\u00f6rt\u00e9nik a Windowsban, \u00e9s megcsin\u00e1lom a vizsg\u00e1t, majd k\u00e9s\u0151bb, p\u00e9nz\u00e9rt (ez most ingyenes beta volt). Ami nekem m\u00e9g el\u0151ny\u00f6m a MVP-k\u00e9nt a Windows forr\u00e1sk\u00f3d hozz\u00e1f\u00e9r\u00e9s, majd ha a kernelt tudom forr\u00e1sszinten debugolni, az is egy \u00fajabb h\u0151hull\u00e1mot fog kiv\u00e1ltani. :) User m\u00f3d m\u00e1r megvolt, az is egy \u00e9lm\u00e9ny forr\u00e1sszinten.<\/p>\n<p>A tanul\u00e1shoz a k\u00f6vetkez\u0151 k\u00f6nyveket \u00e9s forr\u00e1sokat sz\u00e1nd\u00e9kozok bevetni:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.amazon.com\/Windows%C2%AE-Internals-Including-Windows-PRO-Developer\/dp\/0735625301\">Windows Internals<\/a> (janu\u00e1rban j\u00f6n a Vist\u00e1val \u00e9s Windows 2008-cal kieg\u00e9sz\u00edtett kiad\u00e1s).<\/li>\n<li><a href=\"http:\/\/www.amazon.com\/gp\/product\/0955832810\">Memory Dump Analysis Anthology<\/a><\/li>\n<li><a href=\"http:\/\/www.amazon.com\/Windows-via-C-Pro-Developer\/dp\/0735624240\">Windows via C\/C++<\/a>, Richter b\u00e1csit\u00f3l<\/li>\n<li><a href=\"http:\/\/www.microsoft.com\/whdc\/DevTools\/Debugging\/default.mspx\">Komplett WinDbg help<\/a><\/li>\n<li><a href=\"http:\/\/www.amazon.com\/Advanced-Debugging-Addison-Wesley-Microsoft-Technology\/dp\/0321374460\">Advanced Windows Debugging<\/a><\/li>\n<\/ul>\n<p>Els\u0151 k\u00f6rben ennyi. M\u00e1r csak p\u00e1r \u00e9vnyi \u00e9jszaka kell, \u00e9s t\u00fal is vagyok rajtuk. :)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voltam, l\u00e1ttam, visszamenn\u00e9k :) Ahogy v\u00e1rhat\u00f3 volt ez nem az a vizsga, amit 2 nap tanul\u00e1ssal le lehet tenni. A Windows Internals&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18,7,4,23,55,54],"tags":[],"class_list":["post-556","post","type-post","status-publish","format-standard","hentry","category-debugging","category-konyvek","category-szakmai-elet","category-vista","category-windows","category-windows-server-2008"],"_links":{"self":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/556","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=556"}],"version-history":[{"count":0,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/556\/revisions"}],"wp:attachment":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=556"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=556"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=556"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}