瑞星卡卡安全论坛

首页 » 综合娱乐区 » 活动专区 » 实习生专区 » 实习生交流区 » 驱动版的hello world
最硬的石头 - 2008-9-8 22:58:00
这年头特流行R0,进入R0的最简单方法当然就是驱动了:default6: 所以学点驱动还是有那么点必要的:kaka14:
个人学了一点点的皮毛,拿出来秀下,大家交流下,有错误大家指点啊:default15:
首先
1.安装VC++6.0,这个简单。
2.然后下载DDK 2003,
可以去:http://download.microsoft.com/download/3/b/5/3b519887-c4af-4ab3-9578-cec48cc84d94/WDFv10.iso当然也可以下载DDK6000或者更新版本,一般新版本会包括旧的版本。
3.下载个EasySYS_debug,用于build驱动文件(附件提供)。要是安装都应该没有问题:kaka16: 。那么现在可以吧。

打开VC++设置DDK的包含路径,我这里设置的是

 附件: 您所在的用户组无法下载或查看附件


现在,打开EasySYS_debug,按照自己的实际情况选择。


 附件: 您所在的用户组无法下载或查看附件
现在,会自动跳到工程目录下。打开工程文件。并且写代码,
驱动的入口必须是这样的
NTSTATUS
DriverEntry(
  PDRIVER_OBJECT pDriverObj,
  PUNICODE_STRING pRegistryString
)

就像DLL,WINMAIN一样。

然后写如下面的代码:


#include  <ntddk.h>

NTSTATUS
DriverEntry(
PDRIVER_OBJECT pDriverObj,
PUNICODE_STRING pRegistryString
)
{
DbgPrint("hello world\n");
return STATUS_DEVICE_CONFIGURATION_ERROR;
}



就可以编译了。如无意外,在工程目录下,bin\386 下就有个SYS文件了。现在打开debugview,用附件加载驱动文件。就可以在DEBUGVIEW下看见"hello world"的字样了


 附件: 您所在的用户组无法下载或查看附件
 附件: 您所在的用户组无法下载或查看附件


用户系统信息:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; CIBA; TheWorld)

附件: Mywork.rar
武林无双 - 2008-9-9 4:21:00
沙发,我喜欢这东西,很有兴趣学这
粉碎星辰 - 2008-9-9 11:19:00
这个好~真的好哎
轩辕小聪 - 2008-9-9 13:43:00
Hello World仅仅是开始……

另外,学驱动是有必要的,但是前提是至少先知道Ring3程序怎么编。
如果连个Ring3 API都不懂得怎么调用,那就更不用说Ring0了。
文物2 - 2008-9-11 10:46:00
好文啊:default6:
秦人J - 2008-9-11 13:31:00
呵呵,学到了
武林无双 - 2008-9-11 21:58:00
用户模式下有的api在内核模式下不一样的吧
最硬的石头 - 2008-9-11 22:16:00
内核API一般都是NT开头的
轩辕小聪 - 2008-9-11 22:26:00


引用:
原帖由 武林无双 于 2008-9-11 21:58:00 发表
用户模式下有的api在内核模式下不一样的吧

用户模式下的API就是调用内核模式下的函数来完成操作的。但是一样都是stdcall调用方式(少数如DbgPrint为cdecl,还有一些如IoCompleteRequest为fastcall)用户态API的使用为内核态函数调用的基础。
用户态的API在资料上更全面,例子更多,使用更加方便,而内核态的函数有一部分是未文档的API(资料是由第三方内核研究者总结的),有些API的使用例子也很少,如果要更加深入地学习Rootkit技术,还有更多未文档甚至未导出的API和内核数据结构需要接触。
如果在用户态都不懂得怎么调用API,内核下就更加困难了,因为用户态下出错还只是程序崩溃,而内核态下出错,那崩溃的就将是系统。
轩辕小聪 - 2008-9-11 22:29:00


引用:
原帖由 最硬的石头 于 2008-9-11 22:16:00 发表
内核API一般都是NT开头的

NT开头的只是一部分,即由ntdll.dll导出的NATIVE API,在ntoskrnl.exe中对应的内核函数(有些未导出,只能通过SSDT表找到)
用PE工具看看ntoskrnl.exe的输出表,你就知道有多少函数了。
1
查看完整版本: 驱动版的hello world