最近在看Rootkits.Subverting.the.Windows.Kernel,一是太无聊了,二是长期以来对ring0编程处于白痴状态。
写读书笔记,可以督促自已用功,也可以向高手们学习,因此写了这第一篇,主要内容就是怎么编译第一个驱动程序。呵呵,网上已经有N多这种文章了,我再炒一遍冷饭,顺便给论坛灌点儿水。
首先要下载DDK。驱动开发网上有,不过我没有权限,而是在emule上下的。2003的DDK,安装以后显示为WINDOWS DDK 3790,安装2003的DDK可以编译2003、XP和2000及以下的驱动。
DDK安装完毕,就可以开始写程序了。最简单的例子(取自书中)
#include "ntddk.h"
NTSTATUS DriverEntry( IN PDRIVER_OBJECT theDriverObject,
IN PUNICODE_STRING theRegistryPath )'
{
DbgPrint("Hello World!");
return STATUS_SUCCESS;
}
保存成mydriver.c。为了方便,我在E盘建了一个myrootkit的文件夹,将mydriver.c保存在文件夹中,同时建立如下两个文件
一是SOURCES
内容是:
TARGETNAME=MYDRIVER
TARGETPATH=OBJ
TARGETTYPE=DRIVER
SOURCES=mydriver.c
这里只用了最简单的几个关键词,常用的还有INCLUDES,TARGETLIBS,其中后者有两种格式:
TARGETLIBS=$(BASEDIR)/lib/w2k/i386/ndis.lib
或者是:
TARGETLIBS=$(DDK_LIB_PATH)/ndis.lib
好,保存SOURCES文件,再建立MAKEFILE文件,就一行内容:
!INCLUDE $(NTMAKEENV)/makefile.def
文件全部创建完毕,下面开始编译。开始-->Windows DDK 3790-->Build Environments-->Windows XP-->Windows XP Checked Build Environment,进入DOS命令行。进入后,系统已经自动将环境变量设置好了,当然,你也可以选择其它的命令行。
在命令行中进入源程序所在的文件夹:
cd/
e:
cd myrootkit
build
一会儿就提示编译完成了。找到那个mydriver.sys文件,用www.rootkit.com/vault/hoglund/InstDvr.zip提供的程序加载和卸载,加载前打开DbgPrint,就可以看到程序运行结果了。
写完收功,纯属垃圾,自已看着都觉得恶心,就当灌水。
Rootkits读书笔记1
最新推荐文章于 2022-01-17 10:40:20 发布