首页
论坛
专栏
课程

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

2010-2-4 13:54 28548

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

2010-2-4 13:54
28548
这个软件的作用是
一键建立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

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

[推荐]看雪企服平台,提供安全分析、定制项目开发、APP等级保护、渗透测试等安全服务!

上传的附件:
上一主题 下一主题
最新回复 (37)
傷遺忘 2010-2-4 14:32
2
0
不錯的工具.,

謝謝分享了.
fhurricane 1 2010-2-4 14:39
3
0
谢谢支持,这个工具原来已经能够很好了,
我只是稍微加了一点点修改~~~
yasm 2010-2-5 03:03
4
0
天已经晚了,来支持一下好了。有什么驱动方面的心得,要发出来啊。让我们也学习学习
jerrynpc 2010-2-5 10:05
5
0
早知道来看雪下了
cntrump 13 2010-2-5 10:07
6
0
Good work!
why not support VS 2010?
shdow浅蓝 2010-2-5 23:33
7
0
mfc90错误
jwtck 2010-2-6 11:16
8
0
这个工具很好非常实用谢谢楼主
小光zfg 2010-2-6 18:47
9
0
感谢一下楼主非常实用
天杀 2010-2-7 11:29
10
0
为何VS2008一打开就会非法操作呢。。。。
奇怪
tihty 3 2010-2-9 09:33
11
0
十分感谢 : )
huyongtq 2010-2-15 15:59
12
0
哇,好东西,我昨天还参照具体设置改了好久呢,
希望这个软件能达到这个功能!



最近在研究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"));
}

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

如果编译成功证明你的环境配置没有问题,可以开始内核编程之路了。。。。
qqykx 2010-3-18 20:37
13
0
感谢啊,感谢啊
lkicesky 2010-3-19 10:57
14
0
多谢分享~非常感谢~
crazycode 1 2010-5-12 17:26
15
0
Bug:
1.WDK 7600.16385.0 路径获取不到
2.还有中文路径不支持~~~

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

生成之后编译不了

我还觉得命令行编译方便~
ceabie 2010-5-12 22:29
16
0
好东西,支持,继续改进
yaaisinile 2010-5-12 23:28
17
0
非常的感谢,虽然还没学到这
lovesuae 1 2010-5-20 22:05
18
0
如果DDK目录不在C盘,似乎还得手动改一下,大牛修改一下上新版
skybright 2010-5-25 18:05
19
0
很有用啊,感谢分享。。。谢谢lz了
hopy 8 2010-6-2 15:25
20
0
哦了!!!!!!
wdbg 2010-6-2 15:56
21
0
不错,谢谢
现在WDK的版本是7600.16385.1,楼主可考虑升级一下
qinmiaozn 2010-6-3 23:58
22
0
我来看看我有多少KX
一个穷光蛋 2010-6-6 21:48
23
0
这是个好东西,省了不少力气呵呵,感谢.
drummer 2010-6-8 16:44
24
0
下来试一下。不过不是很习惯这个的注释风格
dreamzgj 2 2010-12-30 11:35
25
0
自己加了个7600.16385.1版本,想用xp编译一下,才发现
CEasySYSDlg::SetBuildLineValue()
先判断了使用的ddk版本,然后判断用什么系统编译,但是代码中的路径并未改正对应的ddk版本

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

非常谢谢LZ的源码,谢谢EasySys作者,这个东西很好用
zycttkl 2010-12-30 13:21
26
0
强烈支持一下!
yoke 2010-12-30 13:46
27
0
恩。。我也喜欢命令编译。。

不过,,VS调试,,指出错误地方。。要比命令舒适的多
brucexlee 2011-1-29 20:29
28
0
多谢分享!
北极狐狸 7 2011-1-31 20:38
29
0
robinh00d 作品
上传的附件:
sudami 25 2011-2-1 07:47
30
0
2008-->2010的工程没啥区别,只需改动*.sln中的一个数字.
vs2010巨难用,果断抛弃.
wxhanshan 2011-2-1 13:01
31
0
来支持一下。我也学习学习
邓韬 9 2011-2-2 21:19
32
0
哈哈,路过不懂,谢谢了
mumaren 2011-2-3 14:04
33
0
mark 一下

等一会测试一下
xingjunjie 2011-4-14 20:16
34
0
很好很强大,谢谢分享
SaikSy 2011-9-8 13:49
35
0
非常不错的东西
天涯过客 2011-12-20 12:21
36
0
谢谢分享,下载了,学习中。
ezhimeng 2012-2-25 08:51
37
0
收藏了~~~~~~~~~~
水灵儿 2012-11-20 16:29
38
0
谢谢分享 非常感谢
游客
登录 | 注册 方可回帖
返回