阅读:2719回复:5
如何在sys中调用dll(可以在核心运行的dll)?
我想在2000的sys中调用一个可以在核心态运行的dll,请问用什么函数来加载?导出dll中的函数?
最好能给我一段代码作示范,多谢了 |
|
最新喜欢:ljmmar... |
沙发#
发布于:2004-02-12 21:43
#include <wdm.h>
NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath ); #ifdef ALLOC_PRAGMA #pragma alloc_text(INIT, DriverEntry) #endif NTSTATUS DllInitialize( IN PUNICODE_STRING pus ) { DbgPrint("SAMPLE: DllInitialize(%S)\n", pus->Buffer ); return STATUS_SUCCESS; } NTSTATUS DllUnload( ) { DbgPrint("SAMPLE: DllUnload\n"); return STATUS_SUCCESS; } __declspec(dllexport) NTSTATUS SampleDouble( int * pValue ) { DbgPrint("SampleDouble: %d\n", *pValue); *pValue *= 2; return STATUS_SUCCESS; } __declspec(dllexport) NTSTATUS SampleReadRegistry( ) { DbgPrint("SampleReadRegistry\n"); return STATUS_SUCCESS; } // The DLL must have an entry point, but it is never called. // NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath ) { return STATUS_SUCCESS; } ; ; DEF file for sample kernel-mode DLL. ; ;NAME SAMPLE.SYS NAME SAMPLE.DLL EXPORTS DllInitialize PRIVATE DllUnload PRIVATE SampleReadRegistry SampleDouble |
|
|
板凳#
发布于:2004-02-12 22:28
楼上的高手,
我想问的是在sys代码中类似LoadLibrary()这个函数对应的函数,因为这个函数似乎在ddk环境下编译不能通过,是不是不能在ddk中使用啊? 您给我的好像是一个d生成ll的编译文件吧? |
|
地板#
发布于:2004-02-13 11:13
将你的dll输出的lib文件连接到sys中就可以了,
LoadLibrary当然不能在ring0中使用 |
|
|
地下室#
发布于:2004-02-13 11:46
ZwLoadDriver loads a driver into the system.
或者用ROOTKIT 的 SystemLoadAndCallImage直接加载 。。。 |
|
|
5楼#
发布于:2004-02-13 14:03
老大说话总是这么简单啊,我只找到了定义
NTSYSAPI NTSTATUS NTAPI ZwLoadDriver( IN PUNICODE_STRING DriverServiceName ); 您是否能给段程序加载dll,导出函数,卸载dll的完整的过程啊,无限感谢 |
|