阅读:2093回复:3
怎样才能在VXD中调用WIN32 API?
能不能在VXD中调用32位的DLL? DDK中列出的PELDR_LoadModule能不能用来装入DLL? PELDR系列函数都是用来干什么的? 我试着装入KERNEL32.DLL可以,但装入其它dll就不行.装入KERNEL32.dll后用PELDR_GetProcAddress得到某个函数地址后一调用就出保护错.特请教诸位.
|
|
最新喜欢:flyaji |
沙发#
发布于:2001-06-30 23:44
PE LDR是用于PE格式的DRIVER加载的.不是让你用来调用WIN32的.
关于RING0->RING3的调用是个古老的话题了. RING0一般是不能调用 WIN32 API的. 一般是激活一事件. 让RING3搞定. |
|
|
板凳#
发布于:2001-07-02 16:21
一般可以如下使用PE LDR,vxd就能调用wdm(.sys)输出的函数:
1. HPEMODULE hWdmMod; hWdmMod = _PELDR_GetModuleHandle(“sysname.sys”); if (!hWdmMod) return (VXD_FAILURE); 2.使用_PELDR_GetProcAddress()取得地址: typedef int (_stdcall *Funaddress)(PVOID); Funaddress pfunctionAddress; pfunctionAddress=(Funaddress) _PELDR_GetProcAddress(hWdmMod, "funName",0) 3.调用即可 int nret; nret= pfunctionAddress(); |
|
地板#
发布于:2001-07-02 21:03
我刚刚在源代码分析中上传了一些vxd 的各种源代码,其中有你的回答。等待站长将其供下载。
|
|