首页
社区
课程
招聘
[原创][mod]EasySYS 0.3.2.6 for vs2008/WDK7
发表于: 2010-2-4 13:54 32093

[原创][mod]EasySYS 0.3.2.6 for vs2008/WDK7

2010-2-4 13:54
32093

这个软件的作用是
一键建立VC+DDK的驱动开发环境,
并且创建好应用层和驱动层的开发模板~~~



我是在在苏大米大牛和ChiChou大牛和bobo大牛的的基础上修改的,

原来的版本支持到WDK6和VS2005,
我加了vs2008/WDK7的对应,
并且增加了SeLoadDriverPrivilege提权的操作,否则驱动load不上来,
还有注册表操作的那一块感觉有点乱,稍微整理了一下。


大家如果要自己定制EasySYS代码的话,记得要装一个VS2008的补丁
对应KB948127 - LNK1000 error when incrementally linking a Visual C++ Project 
的错误,
补丁的地址是
http://code.msdn.microsoft.com/KB948127/Release/ProjectReleases.aspx?ReleaseId=871

希望对大家开发驱动能有帮助,谢谢~~~


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (37)
雪    币: 8211
活跃值: (2801)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
不錯的工具.,

謝謝分享了.
2010-2-4 14:32
0
雪    币: 492
活跃值: (53)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
3
谢谢支持,这个工具原来已经能够很好了,
我只是稍微加了一点点修改~~~
2010-2-4 14:39
0
雪    币: 72
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
天已经晚了,来支持一下好了。有什么驱动方面的心得,要发出来啊。让我们也学习学习
2010-2-5 03:03
0
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
早知道来看雪下了
2010-2-5 10:05
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
6
Good work!
why not support VS 2010?
2010-2-5 10:07
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
mfc90错误
2010-2-5 23:33
0
雪    币: 224
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个工具很好非常实用谢谢楼主
2010-2-6 11:16
0
雪    币: 406
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感谢一下楼主非常实用
2010-2-6 18:47
0
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
为何VS2008一打开就会非法操作呢。。。。
奇怪
2010-2-7 11:29
0
雪    币: 27
活跃值: (127)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
11
十分感谢 : )
2010-2-9 09:33
0
雪    币: 121
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
哇,好东西,我昨天还参照具体设置改了好久呢,
希望这个软件能达到这个功能!



最近在研究windows内核编程,一直不习惯用别的IDE和辅助设计工具,所以就多方
查询资料最终打造了一个自己的vs2008+WDK7600的内核开发环境,现在将搭建环境
的步骤记录下来:

1.安装vs2008,可以到微软的官方网站下载使用版(90天)

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=d95598d7-aa6e-4f24-82e3-81570c5384cb

2.安装WDK7600,也是从微软官方下载

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=2105564e-1a9a-4bf4-8d74-ec5b52da3d00

3.VS环境配置:

(1)打开vs2008,选择“工具--选项--项目和解决方案”在右侧平台选择“win32”--
“包含文件”,然后在下面添加自己的wdk中的inc相关路径

C:\WINDDK\7600.16385.0\inc\wdf\kmdf\1.9

C:\WINDDK\7600.16385.0\inc\api

C:\WINDDK\7600.16385.0\inc\crt

C:\WINDDK\7600.16385.0\inc\ddk

然后选择“win32”--“库文件”添加自己的WDK中LIB路径

C:\WINDDK\7600.16385.0\lib\wdf\kmdf\i386\1.9

C:\WINDDK\7600.16385.0\lib\wxp\i386

(2)选择“新建项目”中的“win32控制台应用程序”或者“win32项目”,输入项目名
称后点击“确定”,进入“win32应用程序向导”,选择“空项目”点击“完成”

(3)点击“项目--属性”(或者按ALT+F7)进入项目属性页,点击“配置属性”,点
击右上角的“配置管理器”,在“活动解决配置方案”中选择“新建”,弹出的窗口中输
入自己解决配置方案名,我填的是“checked”,“从此处复制设置”中选“空白”,下
面的钩打上,点击“确定”。

(4)下面来配置刚才建立的活动解决配置方案“checked”的“配置属性”:

点击“c/c++”--

选择“常规”,“调试信息”选:“C7 兼容(/Z7)”,“警告等级”--“3
级(/w3)”,“将警告视为错误”--选“是”

选择“优化”,“优化”选“禁用(/0d)”

选择“预处理器”,“预处理器定义”输入“WIN32=100;_X86_=1;DBG=1”

选择“高级”,“调用约定”选“__stdcall (/Gz)”

点击“连接器”--

选择“常规”,“输出文件”输入
“MyChecked_Driver\$(ProjectName).sys”,“启用增量连接”,选“否
(/INCREMENTAL:NO)”,“附加库目录”输入“C:\WINDDK\7600.16385.0\lib\wxp\i386”

选择“输入”,“附加依赖项”输入“ntoskrnl.lib $(NOINHERIT)”,
“忽略所有默认库”选“是(/NODEFAULTLIB)”

选择“清单文件”,“启用用户账户控制(UAC)”选“否”

选择“调试”,“生成调试信息”选择“是”,“生成程序数据库文件”输
入“MyChecked_Driver\$(ProjectName).pdb”

选择“系统”,“子系统”选“本机(/SUBSYSTEM:NATIVE)”,“堆栈保留
大小”输入“40000”,“堆栈提交大小”输入“1000”,“驱动程序”选“驱动程序(/DRIVER)”

选择“高级”,“入口点”输入“DriverEntry”,“基址”输入
“0x10000”,“随机基址”选“默认值”,“数据执行保护(DEP)”选“默认值”,“目标
计算机”选“MachineX86 (/MACHINE:X86)”

(5)进行程序测试,写一段小的测试程序

//testDriver.h
#ifndef _TESTDRIVER_H
#define _TESTDRIVER_H

#ifdef __cplusplus
extern "C"
{
#endif
#include <ntddk.h>


NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject,
IN PUNICODE_STRING pRegistryPath);


VOID testDriverUnload(IN PDRIVER_OBJECT pDriverObject);
#ifdef __cplusplus
};
#endif
#ifdef ALLOC_PRAGMA
#pragma alloc_text(INIT, DriverEntry)
#pragma alloc_text(PAGE, testDriverUnload)
#endif

#endif //_TESTDRIVER_H

-----------------------------------------------------------------------------------------------------------

//testDriver.cpp
#include "testDriver.h"


NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject,
IN PUNICODE_STRING pRegistryPath)
{
KdPrint(("[TAR]: testDriver Entry!\r\n"));
NTSTATUS status;
pDriverObject->DriverUnload = testDriverUnload;
status = STATUS_SUCCESS;
return status;
}

VOID testDriverUnload(IN PDRIVER_OBJECT pDriverObject)
{
KdPrint(("[TAR]: tsetDriver Unloading.....\r\n"));
}

---------------------------------------------------------------------------------------------------------------

如果编译成功证明你的环境配置没有问题,可以开始内核编程之路了。。。。
2010-2-15 15:59
0
雪    币: 149
活跃值: (128)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
感谢啊,感谢啊
2010-3-18 20:37
0
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
多谢分享~非常感谢~
2010-3-19 10:57
0
雪    币: 291
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
Bug:
1.WDK 7600.16385.0 路径获取不到
2.还有中文路径不支持~~~

不知道和我系统有没有关系(Win7 7600+VS2008+WDK 7600.16385.0),

生成之后编译不了

我还觉得命令行编译方便~
2010-5-12 17:26
0
雪    币: 284
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
好东西,支持,继续改进
2010-5-12 22:29
0
雪    币: 201
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
非常的感谢,虽然还没学到这
2010-5-12 23:28
0
雪    币: 386
活跃值: (46)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
18
如果DDK目录不在C盘,似乎还得手动改一下,大牛修改一下上新版
2010-5-20 22:05
0
雪    币: 58
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
很有用啊,感谢分享。。。谢谢lz了
2010-5-25 18:05
0
雪    币: 442
活跃值: (107)
能力值: ( LV9,RANK:350 )
在线值:
发帖
回帖
粉丝
20
哦了!!!!!!
2010-6-2 15:25
0
雪    币: 287
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
21
不错,谢谢
现在WDK的版本是7600.16385.1,楼主可考虑升级一下
2010-6-2 15:56
0
雪    币: 109
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
我来看看我有多少KX
2010-6-3 23:58
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
这是个好东西,省了不少力气呵呵,感谢.
2010-6-6 21:48
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
下来试一下。不过不是很习惯这个的注释风格
2010-6-8 16:44
0
雪    币: 1137
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
25
自己加了个7600.16385.1版本,想用xp编译一下,才发现
CEasySYSDlg::SetBuildLineValue()
先判断了使用的ddk版本,然后判断用什么系统编译,但是代码中的路径并未改正对应的ddk版本

第一次翻开驱动的书,不懂mfc,不懂c++,对ddk编译命令不熟悉,无法更好的改动,就不多说了了,先将就着自己能用吧..

非常谢谢LZ的源码,谢谢EasySys作者,这个东西很好用
2010-12-30 11:35
0
游客
登录 | 注册 方可回帖
返回
//