Tracing Function Calls in Windows NT Kernel
Sledování volání funkcí jádra Windows NT
bachelor thesis (DEFENDED)

View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/81937Identifiers
Study Information System: 164038
Collections
- Kvalifikační práce [11325]
Author
Advisor
Referee
Yaghob, Jakub
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Programming
Department
Department of Distributed and Dependable Systems
Date of defense
7. 9. 2015
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Keywords (Czech)
Windows, jádro, sledování funkcí, laděníKeywords (English)
Windows, kernel, function tracing, debuggingOperační systémy jsou složitý software a je téžké pochopit, jak fungují. Studenti, kteří by chtěli vědet více o fungování operačního systému Windows NT, mohou použít programy jako je WinDbg, WinObj nebo Process Monitor. Bohužel, tyto programy bud' není jednoduché ovládat nebo neposkytují do- statečně nízkoúrovňové informace o systému. Výsledkem naší práce je nový pro- gram, nazvaný WinTrace, který se zaměřuje na sledování vstupně/výstupních požadavků. Je schopný monitorovat klíčové vstupně/výstupní události, jako je spouštění obslužných funkcí ovladaču (dispatch routines), dokončovacích funkcí (completion routines), obsluha přerušení a volání DPC. Aby byl výstup pro- gramu lépe pochopitelný, WinTrace umí zaznamenané události shrnout do gra- fických diagramů. I když je program určen hlavně pro studenty, měl by být cenným pomocníkem i pro programátory při ladění problémů nebo jako obecný nástroj pro sledování volání funkcí. Také doufáme, že tato práce bude přínosná pro všechny, kteří se snaží zachytávat nebo měnit funkce v jádře Windows NT, jelikož popisujeme časté problémy, na které lze narazit. 1
Operating systems are complex and hard to understand. Students that want to learn more about internal operation of the Windows NT system can use tools such as WinDbg, WinObj or Process Monitor. However, these tools are either hard to use or do not offer sufficient level of detail. This thesis implements a new tool focused on monitoring of the I/O handling, called WinTrace. It can monitor key I/O events, such as execution of dispatch routines, completion rou- tines, interrupts and deferred procedure calls. To make the understanding of the recorded events easier, WinTrace can summarize them as graphical diagrams. While the tool is primarily targeted at students, it should also be valuable to driver developers when debugging real-world problems or as a general purpose function tracer. We also hope the thesis will be useful to anyone hooking func- tions in the NT Kernel, as we identify the problems that can be encountered during the implementation. 1