Good day. I wondered here to write a driver for Windows, and generally deal with it, so I ask for your help. Prompt articles, books on writing drivers for Windows. Immediately make a reservation, I take this seriously, so I am ready to shovel a bunch of material that is at least somehow related to this topic. Probably, I will need the knowledge of asm and C ++ (C, I know quite well). Therefore, I ask you to also advise efficient books on asm.
4 answers
Start by downloading WinDDK and exploring the samples delivered. There are quite a lot of them and they are well documented. This will give a good impetus to start, well, then - MSDN, - contains more than comprehensive documentation on the development of drivers.
Some of the calls are undocumented and relate to the Private API, but they are nevertheless used often. In this case, you will need the .dbg files of the respective libraries to extract information about the offsets in the structures.
- oneand maybe you also advise what book to start with? - Dimitri
- No, I will not advise, because I do not know them worthy of this topic. However, it was not particularly interested, so perhaps I am mistaken. He himself walked the path described above (samples from DDK + MSDN), there was no particular difficulty. - falstaf
- oneThere is a book Soldatova, but it is not very good, as for me. - PaulD
From the classics I recall, for example, Walter Oney - Programming the Microsoft Windows Driver Model (Walter They - Using the Microsoft Windows Driver Model)
It seems to me that the following may be useful to you:
Read:
- Walter They. "Using the Microsoft Windows Driver Model"
- Mark Russinovich, David Solomon. "Microsoft Windows Internal"
- "Everything Windows Driver Development". http://www.osronline.com/
- Blog: http://redplait.blogspot.ru/
- Blog: http://sww-it.ru/
For development:
- WinDBG -> Virtual KD -> VmWare Workstation with Windows
- Variable _nt_symbol_path
- Perhaps pykd is useful. Module to Windbg to automate to Python
- The source code of some parts of Windows, experienced know where and what to take. It does not make sense here
Recommendations:
- Read MSDN
- If you don’t understand MSDN well, read books, but prefer English-language
- Do not read the book Soldatova
- Do not attempt to use SoftICE. He is wonderful, but he died. Remained miserable, but always up-to-date Windbg.
If you only need to “practice on cats” for a while, then you can try using NuMega DriverStudio - an article for writing the simplest drivers and getting a presentation, it will do, although it is already a bit out of date. But if you seriously deal with drivers, then yes, - WinDDK.