📄 readme.txt
字号:
This is a demonstration of a kernel DLL. It has been tested on WinXP.These files are included: .\ReadMe.txt -- This file. .\KernelDLLRtns\KernelDLLRtns.cpp -- The kernel DLL. .\KernelDLLRtns\def -- File used in building the kernel DLL. .\CallKernelDLL\CallKernelDLL.cpp -- A device driver that calls a routine in the kernel DLL. .\inc\KernelDLL.h -- Include file for the kernel DLL and for the device driver. .\dirs -- File to allow both the kernel DLL and the device driver to be built. .\KernelDLLRtns\sources -- File that prescribes how to build the kernel DLL. .\KernelDLLRtns\makefile -- File used in nmake. .\CallKernelDLL\sources -- File that prescribes how to build the driver. .\CallKernelDLL\makefile -- File used in nmake. .\CallKernelDLL\TalkCallKernelDLL.cpp -- User-space program to invoke the device driver and thereby the kernel DLL. .\KernelDLL.dsw -- VC++ workspace to build TalkCallKernelDLL. .\CallKernelDLL\TalkCallKernelDLL.dsp -- VC++ project for TalkCallKernelDLL.Installing the driver (and the kernel DLL thereby) -- Let's assume that the kernel executables are c:\JA.pgm\src\c\drivers\libfre_wxp_x86\i386\CallKernelDLL.sys and c:\JA.pgm\src\c\drivers\libfre_wxp_x86\i386\KernelDLLRtns.sys. Using InstallDriver.exe (see InstallDriver.zip under the same directory as that where you obtained KernelDLL.zip), go to the directory where InstallDriver.exe, CallKernelDLL.sys and KernelDLLRtns.sys have been placed and do (you must be an administrator for this to succeed): InstallDriver CallKernelDLL loadInvoking the device driver and thereby a routine in the kernel DLL -- In a command window where TalkCallKernelDLL.exe can be located, do: TalkCallKernelDLLUnloading and uninstalling the driver (and the kernel DLL thereby) -- In a command window, do InstallDriver CallKernelDLL unloadMore on building the kernel DLL and the driver -- The kernel DLL will be built as a .sys file. Even with this filetype, the executable is indeed a kernel DLL and, as such, has these characteristics: The executable is automagically loaded by the OS when the first driver to import from the kernel DLL is loaded; the DriverEntry routine in the DLL is never called; DllInitialize is called when the DLL is loaded; and DllUnload is called when the DLL is about to be unloaded, which happens when the last importing driver is about to be unloaded. Incidentally, the DLL executable does not necessarily have to be located in %systemroot%\system32\drivers; it suffices that it be located in the same place as CallKernelDLL.sys if one is utilizing InstallDriver to load the driver. If one is building the driver separately from the kernel DLL, the DLL must have been built first, because linking the driver will require a .lib file created when the kernel DLL was built.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -