VS2008环境编译驱动(郁金香教程)

1.2.3 VS2008环境编译驱动-008
     A、VC9驱动编译配置
     B、VC9集成环境下编译驱动


新建一个空的 win32控制台程序
 1、选(文件→新建→项目→Visual C++项目→win32→win32控制台项目)创建一个
 


 




填写上名称event然后按确定
在弹出的win32应用程序向导里 选应用程序设置 →附加选项 勾选空项目→完成。


 




二   选项目菜单→添加现有项→添加所有驱动相关的*.h,*.c,*.cpp,*.rc之类的文件。
选工具(T)→选项(O)....→项目→VC++目录→
  1、在可执行文件目录中添加:
    D:\WINDDK\3790.1830\BIN\X86


  2、在包含文件目录添加如下路径
    D:\WINDDK\3790.1830\inc\wxp
    D:\WINDDK\3790.1830\inc\crt    (可选)
    D:\WINDDK\3790.1830\inc\ddk\wxp
    D:\WINDDK\3790.1830\inc\ddk\wdm\wxp


  3、在库文件目录中添加:
    D:\WINDDK\3790.1830\LIB\WXP\I386


项目event属性设置 
新建项目配置 check //必选
(一)C/C++属性设置
   常规选项卡
1调试信息格式(C7兼容(/Z7) //可选
2警告等级    (2级(/W2)  //可选
3将警告视为错误 (是(/wx)  //可选
   优化选项卡
1优化(禁用/Od)          //可选
  预处理器
    预处理器定义:WIN32=100;_X86_=1;WINVER=0x501;DBG=1   //必选
  代码生成
    启用最小重新生成:否   //可选
    基本运行时检查:默认值 //可选
    运行时库:多线程调试(/MTd) 或 多线程(/MT)  //建议选
    缓冲区安全检查:否   //可选
 (可避免出现 LINK : error LNK2001: 无法解析外部符号 __security_cookie)
  高级
 调用约定 __stdcall(/Gz)   //必选
链接器
 常规:
 输出文件:$(OutDir)\$(ProjectName).sys //必选
 启用增量链接:否(/INCREMENTAL:NO) //建议选上


忽略导入库:是 //可选 ( 设置为此值时,必须在附加库目录中加:D:\WINDDK\3790.1830\lib\wxp\i386 ,这样项目就不会依赖IDE环境的设置 )   否 ( 设置为此值时,将依赖 IDE 的环境的相关设置 )
 输入:
附加依赖项ntoskrnl.lib Hal.lib wdm.lib wdmsec.lib wmilib.lib ndis.lib MSVCRT.LIB LIBCMT.LIB //必选其12
//NT式驱动 ntoskrnl.lib  WDM式驱动  wdm.lib
 ( HalXXX函数在Hal.lib,WmiXXX函数在 wmilib.lib ,NdisXXX函数在 ndis.lib )
 ( 必要时需要增加微软的标准库 MSVCRT.LIB MSVCRTD.LIB(调试库) LIBCMT.LIBIBCMTD.LIB(调试库) )
 ( 如果源码中有 source 文件,那么该文件的 TARGETLIBS 字段会列出该项目需要的库 )
    忽略所有默认库:是(/NODEFAULTLIB)
 清单文件:
   启用用户账户控制(UAC) 否 //必选 不然会出现 >LINK : fatal error LNK1295: “/MANIFESTUAC”与“/DRIVER”规范不兼容;链接时不使用“/MANIFESTUAC” 
 调试:
    生成调试信息 是(/DEBUG) //可选
    生成映像文件:是(/MAP)  //可选
    映像文件名:$(TargetDir)$(TargetName).map //可选
  系统(System):
    子系统:控制台(/SUBSYSTEM:CONSOLE) //必选
    堆栈保留大小:4194304 //可选
    堆栈提交大小:4096    //可选
    驱动程序:   驱动程序(/DRIVER) //必选 
    高级:
入口点:DriverEntry   //必选
随机基址:默认值    //必选 不然会出现 1>G:\event2008\check\event2008.exe : fatal error LNK1295: “/DYNAMICBASE”与“/DRIVER”规范不兼容;链接时不使用“/DYNAMICBASE”
数据执行保护(DEP): 默认值 //必选 不然会出现 G:\event2008\check\event2008.sys : fatal error LNK1295: “/NXCOMPAT:NO”与“/DRIVER”规范不兼容;链接时不使用“/NXCOMPAT:NO”


设置效应和:是(/RELEASE) //可选
基址:0x10000          //建议选上
  命令行”->附加选项:
    添加开关:/SECTION:INIT,D /IGNORE:4078 //建议填上
      可以避免以下错误提示
      LINK : warning LNK4078: 找到多个“INIT”节,它们具有不同的属性(E2000020)
      LINK : error LNK2001: 无法解析的外部符号__load_config_used
五.编译,链接。
一些要修改DDK例子源码方能成功的问题,目前不知道什么选项可以不改:
    源码中的关键字 try 要改为 __try , except 要改为 __except .


 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
郁金香驱动教程\驱动学习笔记 ..............\............\0前言.doc ..............\............\1.1.1 安装VC++6.0 -(1课).doc ..............\............\1.1.2 安装VS2003-VC++7.0 -(2课).doc ..............\............\1.1.3 安装VS2008-VC++9.0 -(3课).doc ..............\............\1.1.4 安装VC助手 -(4课).doc ..............\............\1.1.5 安装DDK -(5课).doc ..............\............\1.2.1 VC6环境编译驱动 -(6课).doc ..............\............\1.2.2 VS2003环境编译驱动 -(7课).doc ..............\............\1.2.3 VS2008环境编译驱动 -(8课).doc ..............\............\1.3.1编写一个名为DDK_HelloWorld简单的驱动 -(9课).doc ..............\............\1.3.2为DDK_HelloWorld添加卸载驱动例程 -(10课).doc ..............\............\1.3.3 用工具过驱动保护(确定学习方向) -(11课).doc ..............\............\1.3.4为DDK_HelloWorld添加设备例程 -(12课).doc ..............\............\1.3.5VM+windbg安装 -(13课).doc ..............\............\1.3.6实战用windbg调试自己驱动DDK_HelloWorld -(14课).doc ..............\............\1.3.7DDK_HelloWorld卸载例程细化 -(15课).doc ..............\............\1.3.8为DDK_HelloWorld添加默认派遣例程 -(16课).doc ..............\............\1.4.1需要具备的理论知识 -(17课).doc ..............\............\1.4.2读出SSDT表当前函数地址 -(18课).doc ..............\............\1.4.3读出原函数地址 -(19课).doc ..............\............\1.4.4向指定地址写入代码 -(20课).doc ..............\............\1.4.5绕过SSDT驱动保护 -(21课).doc ..............\............\1.6 NT式驱动的安装 -(22课).doc ..............\............\1.7 NT式驱动的卸载 -(23课).doc ..............\............\1.8 驱动代码中C和C++代码区别 -(24课).doc ..............\............\1.9、再谈VC环境配置 -(25课).doc ..............\............\2.1手动加载NT式驱动(非工具) -(26课).doc ..............\............\2.2.2、实战EXE和SYS通信 -(28课).doc ..............\............\2.2、应用程序与驱动交互访问(缓冲模式) -(27课).doc ..............\............\2.3、应用程序与驱动交互访问(直接模式) -(29课).doc ..............\............\2.4、应用程序与驱动交互访问(其它模式) -(30课).doc ..............\............\2.5、再谈SSDT HOOK驱动保护原理 -(31课).doc ..............\............\2.6、自写驱动保护XX进程(HOOK SSDT) -(32课).doc
免key版,511U盘资源,速度很快!经测试全部可下 课程分四个大章节 初级篇,中级篇,进阶篇,高级篇 初级篇内容:编写一个完整的,简单的外挂 C++的数据类型:Byte,Word,DWORD,int,float API函数的调mouse_event,GetWindowRect,SetCursorPos,FindWindow,SendMessage) CE5.4工具的使用方法 中级篇内容:调试工具的使用技巧,功能CALL的概念 调试工具OD1.1的使用技巧(如硬件断点,条件断点,内存断点。 常用汇编指令与对应高级语言的转换。 游戏功能CALL概念 找第一个功能CALL 外挂框架的构建(通用) 进阶篇内容:分析游戏内部数据,分析常用功能CALL 游戏数据实践找各种功能CALL(如打怪,选怪,物品使用,技能栏之类)及相应的代码编写 高级篇内容:编写完整外挂 完成一个相对完整的外挂,实现 自动挂机,打怪,存放物品之类的功能 1 入门篇.以《QQ连连看为例》 1.1、一个最简单的外挂 1.1.1、游戏窗口数据分析(SPY++) a、取得窗口相对坐标 b、读出游戏窗口信息GetWindowRect c、移动鼠标指针SetCursorPos 1.1.2 用VC++写个最简单的外挂(实现游戏开局) a、鼠拟鼠标单击mouse_event b、鼠标指针移动还原 c、集成到startgame函数里 1.2、用CE查找棋盘数据 1.2.1、CE中的数据类型 a、数据类型:Bit,Byte,Word,Dword,float,double b、用CE查找出坐位号; c、保存分析数据 1.2.2、编程读出坐位号; a、远程读取进程数据 b、打开远程进程 c、读取远程进程数据 1.2.3、用CE查出棋盘基址; a、找棋盘数据基址 b、分析棋盘数据结构 1.2.4、读出当前棋盘数据 a、编程读出棋盘数据 b、棋盘数据显示出来 1.3、用模拟技术编制外挂 1.3.1 分析棋子与棋盘坐标关系 a、鼠标软件模拟,函数SendMessage b、分析窗口内棋子相对坐标X,Y c、软件模拟点击棋盘坐标x,y处的棋子 1.3.2 消掉一对棋子的算法框架 a、遍历棋盘同类型棋子配对 b、构建算法框架 1.3.3 (Check2p)大致框架(算法核心) a、在这一对棋子间找相通路径的原理 b、(Check2p函数)框架代码 c、(CheckLine函数)检测2点是否有连通. 1.3.4 CheckLine实现 a、CheckLine函数实现 b、Check2p核心代码架构 1.3.5 Check2p完整代码实现 1.3.6 编写完整外挂,界面美化 1.4、游戏加速.去掉对动画效果.非HOOK 1.4.1:用OD找出 动画延时代码 1.4.2:写代码去掉延时,实现游戏加速 2 中级篇 以热血江湖为例 2.1、分析前的准备..CALL简介: 2.1.1、CALL调用示例分析.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值