1

[原创]使用VC创建 Windows NT 下的内核DLL 和 LIB

wtxpwh 2009-12-3 19:29 6893
看到hopy大大写的用gcc创建NT下的dll,想到好多人不习惯用Linux下的那东西,今天偶就仍块砖头。用vc和EasySYS创建windows NT下的内核DLL和LIB库。(偶的宗旨:简单的才是最好的,能不花钱解决的才是最牛的!)
(一)创建内核dll
用vc创建NT下的内核dll注意以下几点:
用EasySYS生成工程后在工程目录下会有一个文件名为sources的文件,用记事本打开修改一下
,内容如下:
TARGETNAME=NTOS
TARGETTYPE=EXPORT_DRIVER
TARGETPATH=bin
DLLDEF=NTOS.def
INCLUDES=.\
SOURCES = NTOS.c\

主要改动是把TARGETTYPE改为EXPORT_DRIVER,然后自己创建一个*.def文件,文件中写要导出的函数的名字,如下:
EXPORTS
  DllInitialize PRIVATE
  DllUnload PRIVATE
_NtReadVirtualMemory
_NtWriteVirtualMemory
注意,DllInitialize  DllUnload 后面必须加PRIVATE,这两个函数,在dll加载和卸载的时候会分别调用。

(二)创建内核lib
lib很有用,把你常用的函数做成lib以后可以少很多工作。生成lib其实很简单.

主要改动是把TARGETTYPE改为DRIVER_LIBRARY
很简单吧!下面附上例子源码

注意,工程路径不能有空格,如果编译出错请添加如下环境变量:WNETBASE = DDK目录。
上传的附件:
最新回复 (8)
25
sudami 2009-12-4 02:38
2
老毛子早就写过. 微点一直在使用. 楼主落后了.
7
轩辕小聪 2009-12-4 02:49
3
瑞星的Hookhelp.sys也是内核DLL……
1
wtxpwh 2009-12-4 04:33
4
恩,老毛子是写过,好像在哪里看到过。写这个帖子主要是方便偶等菜鸟日后查找。
jerrynpc 2009-12-5 22:21
5
wtxpwh跑这里研究这东西来啦?
顶了~
6
microdebug 2009-12-7 10:12
6
我不知道,看来知识还是需要普及的
wpclub 2010-1-22 18:02
7
MARK
1
sisess 2010-2-14 12:38
8
不错 一点都不落后 发出来就好
wkaka 2010-2-22 22:09
9
一点不落后,多谢LZ的文章.
返回