• Window驱动开发


    驱动开发
    
    参考文章:
    
    Windbg+Vmware驱动调试 
    http://blog.csdn.net/xuepiaosong/article/details/8236702
    
    驱动调试攻略(WinDbg)  
    http://blog.163.com/zhg_tao/blog/static/84116744200862424215/
    
    VC6编译驱动的方法(含32和64位) 
    http://blog.csdn.net/wzsy/article/details/4053632
    
    Win64 驱动签名 相关 
    http://blog.chinaunix.net/uid-27469481-id-3337843.html
    
    DebugView、DriverMonitor、IRPTrace、WinObj、DeviceTree、DiskView、EzDriverInstaller
    http://download.csdn.net/detail/tao180/4881459
    
    Windows virtual PC
    http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=3702
    
    VMware Workstation 10.0 下载 – 正版序列号+简体中文官方原版
    https://download3.vmware.com/software/wkst/file/VMware-workstation-full-10.0.0-1295980.exe
    
    http://wenku.baidu.com/view/7f74b0e49b89680203d825f4.html
    
    64位Windows Vista 和Windows 7系统下驱动签名指南 
    http://blog.csdn.net/linfei2707/article/details/6756325
    http://www.willrey.com/support/digital_signatures_for_kernel.html
    
    如何把NDIS Filter框架利用到日常的Windows驱动开发工作中
    http://bbs.pediy.com/showthread.php?t=191434
    
    VS2012 ddk驱动编译与虚拟机联机调试设置 
    http://blog.csdn.net/whatday/article/details/10730103
    
    WINDOWS 7 配置驱动开发环境(wdk7.60)
    http://www.cppblog.com/guojingjia2006/archive/2011/03/19/142211.html 
    
    内核驱动的编译环境
    http://www.cnblogs.com/javawebsoa/archive/2013/05/20/3089346.html
    
    VMware+Windgb+Win7内核驱动调试 
    http://blog.csdn.net/cbh84663973/article/details/8122352
    
    工具:
    1、srvinstw.exe 安装.sys
    http://www.onlinedown.net/soft/36059.htm
    InstDrv软件更好用
    
    2、DbgWiew.exe 查看内核模块的输出信息
    	net start 服务名、net stop 服务名
    http://technet.microsoft.com/zh-cn/sysinternals/bb896647(en-us).aspx
    https://technet.microsoft.com/en-us/sysinternals/bb896647.aspx
    
    3、虚拟机
    http://www.vmware.com/download/ws
    http://www.microsoft.com/zh-CN/download/confirmation.aspx?id=8002
    
    4、调试内核模块
    http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
    https://msdn.microsoft.com/zh-cn/windows/hardware/hh852365
    
    5、WinDbg
    http://www.microsoft.com/whdc/devtools/debugging/default.mspx
    
    6、下载symbols:
    http://msdl.microsoft.com/download/symbols(没下载下来)Symbol文件是从微软的网站上http://msdl.microsoft.com/download/symbols下载而来,这个网址是不可以用IE直接打开的,WinDbgà Fileà Symbol File Path...界面中选择Reload,WinDbg会自动帮你下载;
    SRV*C:WINDOWSSymbols*http://msdl.microsoft.com/download/symbols; //关键是勾选reload
    https://msdn.microsoft.com/en-us/windows/hardware/gg463028.aspx
    
    7、WDK and WinDbg downloads
    https://msdn.microsoft.com/en-us/windows/hardware/hh852365
    
    问题:
    
    1、编译错误 error MSB3030: 无法复制文件 
     	解决方法:数字签名的问题  在 工程 属性 driver signing  - general - sign mode 改为 off  package也要改 
    
    2、
    	解决方法:右键Project---->Properties--->WPP Tracing--->【Run Wpp Tracing】选择No即可。
    
    3、VS2012下的NDIS项目等报离奇错误,如:ctype.h中标识符未识别等。
    	解决方法:安装完WDK8.0,就不要再留(若已安装)WDK7.0。
    
    4、虚拟机设置调试模式:
    	[boot loader]
    	timeout=30
    	default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS
    	[operating systems]
    	multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /debug /debugport=COM1 /baudrate=115200
    	multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect 
    
    5、bcdedit“无法打开启动配置数据存储,系统找不到指定的文件”错误 
    	解决方法:1、http://bbs.pcbeta.com/thread-588205-1-1.html
    	因为bcd文件所在的分区不是活动分区,用PartitionManager.9.0将C盘设置为活动分区,在运行一下bcdedit就好了
    
    6、内核镜像文件签名:
    	方法一:1、启动Test Signing启动项属性:在控制台中运行Bcdedit /set testsiging true 
    		1. 创建测试证书;2.用测试证书为驱动签名。微软提供了相关工具,包含在最新的SDK或DDK中。简单来讲,用户应该使用makecert.exe创建证书,再用signtool.exe进行镜像文件签名。
    	方法二:使用64Signer
    
    7、主板默认没有开启虚拟化技术 一般方法是开机或重启时按Del键进入BIOS菜单,找到其中的主板{Chipest)设置,在找其中的虚拟化(Virtualizatio...
    
    8、怎么将生产32位的sys改变设置生产64位的?
    	解决方法:1)修改两个lib路径:
    			/LIB/CRT/I386	改为:	/LIB/CRT/amd64
    		  	/LIB/WNET/I386 改为:	/lib/wnet/amd64
    		  2).修改编译器路径:/BIN/X86 改为:bin/win64/x86/amd64		/BIN/X86          //这句也要存在
    					注释:VS按上面做出错,将/BIN/X86 改为:bin/amd64
    			设置Executable File:  C:/2003DDK/BIN/X86//这就是编译器的路径
    		  3)修改C/C++里的Preprocesser definitions为:
    			ReleaseAMD64下输入:
    
    				_AMD64_,AMD64,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,NDEBUG
    
    			DebugAMD64下输入:
    
    				_AMD64_,AMD64,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,_DEBUG
    
    				VS:_AMD64_=1,AMD64=1,STD_CALL=1,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,_DEBUG=1
    
    		4)需要修改link页里的Project Options,手动改一下:将/machine:IX86改为:/machine:amd64
    
    		5)理论上到这里设置就OK了,不过还是有一个链接错误unresolved external symbol __security_cookie ,只要在链接的lib里加入bufferoverflowK.lib (为什么是bufferoverflowK.lib?看这里:http://support.microsoft.com/kb/894573) 就可以了。
    
    		6)VS:DebugAMD64下设置活动解决方案平台为X64
    9、未定义问题(测试)
    #if !defined(_AMD64_)
    #define _AMD64_
    #endif
    10、在64位WIN7系统中修改驱动的sys文件,主要在sys文件中修改一下提供商等信息
    	解决方法:eXeScope(可以编辑DLL文件的软件)、PEditor(修正SYS文件的“校验和”软件)
    11、Windbg与虚拟机连接不上?
    	解决方法:1)如虚拟机中在添加新的串口前已经存在串口了,那么要把原有的串口Remove掉(特别是有些打印会占用串口),否则会导致windbg.exe与虚拟机连接不上。
    12、虚拟系统中C盘下找不到boot.ini文件
    	解决方法是:打开电脑属性——高级——启动与故障恢复——在系统启动栏目下选择手动编辑,就打开boot.ini了。
    13、在xp上 _asm int 3 中断正确,在64位Win7上报错?
    	解决方法:_asm int 3 改为 __debugbreak(); 
    
  • 相关阅读:
    万能还是万恶的花括号?(PHP)
    深入理解PHP对象赋值
    关联容器常用用法
    顺序容器常用用法
    浏览器安全:35 | 安全沙箱:页面和系统之间的隔离墙
    vue 重学笔记一
    Vue 中 父子组件的生命周期钩子函数的执行顺序
    浏览器中的网络:31 | HTTP/3:甩掉 TCP、TLS 的包袱,构建高效网络
    浏览器安全:34 | CSRF攻击:陌生链接不能随便点
    webpack 打包工具,loader 和 plugin 是什么,是如何实现的
  • 原文地址:https://www.cnblogs.com/shenchao/p/4814290.html
Copyright © 2020-2023  润新知