Kernel and userland implementation of SIERRA MonoDrv debugging utility, used in EarthSiege 2.
The kernel driver opens a "pipe" which behaves to EarthSiege like the old monochrome GPU driver DARKMONO.VXD the developers used and takes the debug messages. It buffers them in kernel space and the userland component retrieves the messages and prints them.
Be warned, this driver is likely full of holes and leaks; it might as well also crash your system. Use a virtual machine, for gods sake. I tried to keep it stable, but I can't promise anything.
- Binaries will/should be on https://sites.google.com/site/es2reveng/downloads for x86 and x64, tested with/built against Win7. It may be possible to run them on Vista or even XP but I would not count on this.
- Boot with the F8 option
"Disable signature enforcement"
in 64-bit Windows. Fuck MS, I don't have no money for buying a codesign cert. - Using
srvman
(google for it) create a "Device driver" called "monodrv" and the .sys as binary. Important: Start type MUST be manual. - Start the driver by running
net start monodrv
in an elevated console. - Run
monodrv_userland.exe
in the same console - Run
ES.EXE
in elevated mode - I can has debug message :)
- Windows 7
- Visual Studio 2010
- Windows Driver Kit 7.1
- VisualDDK
- Open VS2010, load the solution
- Set debug/release config
- Compile
- Output will be in
\Release
resp.\Debug
(monodrv_userland.exe
and, if 32bit,monodrv_userland.sys
) or\x64\Release
resp.\x64\Debug
Good luck.
Somewhere on the Google Sites project there will eventually be a description of the ioctls used by the monodrv interface.