吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 29256|回复: 63
收起左侧

[系统底层] win7 64位驱动学习日志一!

  [复制链接]
谈笑人生 发表于 2018-4-9 12:33
本帖最后由 谈笑人生 于 2018-4-9 12:36 编辑

吾爱专用:大神勿喷
主要历史(摘自维基百科):x86 架构于 1978 年推出的 Intel 8086 中央处理器中首度出
现,它是从 Intel 8008 处理器中发展而来的,而 8008 则是发展自 Intel 4004 的。8086
在三年后为 IBM PC 所选用,之后 x86 便成为了个人电脑的标准平台,成为了历来最成功
的 CPU 架构。其他公司也有制造 x86 架构的处理器,计有 Cyrix(现为威盛电子所收购)、
恩益禧集团、IBM、IDT 以及 Transmeta。Intel 以外最成功的制造商为 AMD,其早先产品
Athlon 系列处理器的市场份额仅次于 Intel Pentium。8086 是 16 位处理器;直到 1985
年 32 位的 80386 的开发,这个架构都维持是 16 位。接着一系列的处理器表示了 32 位架
构的细微改进,推出了数种的扩充,直到 2003 年 AMD 对于这个架构发展了 64 位的扩充,
并命名为 AMD64。后来英特尔也推出了与之兼容的处理器,并命名为 Intel 64。两者一般
被统称为 x86-64 或 x64,开创了 x86 的 64 位时代。
--------------------------------------------------------------------------------------------------
在 X86 的“简历”里,我们摘出一段重要的话:2003 年 AMD 对于这个架构发展了 64 位的扩充,并命名为 AMD64。后来英特尔也推出了与之兼容的处理器,并命名为 Intel 64。两者一般被统称为 x86-64 或 x64,开创了 x86 的 64 位时代。也就是说,如果要学习 WIN64 内核编程,就必须拥有 2003 年以后的 CPU!不像学习 WIN32 内核编程一样,随便一台运行 XP的奔腾 3 笔记本也行!但实际情况是,基本上只有 2005 年以后的 CPU 才支持 X64 指令集;到 2008 年之后,CPU 才普遍含有 X64 指令集;到 2010 年之后,CPU 才普遍含有 X64 指令集和支持 VT-X 技术(没有 VT-X 技术就无法运行 WIN64 虚拟机)。鉴于中国的实际情况,应该很多人手里还有酷睿 2 的笔记本。一般来说,T5XXX 以下的CPU 是没有 X64 指令集的;T7XXX 以下的 CPU 是不支持 VT-X 的。只有 T7XXX 以上的 CPU,才有 X64 指令集和支持 VT-X。而 2010 年之后的 Core i 系列的 CPU,都有 X64 指令集和支持VT-X 了。台式机方面也差不多,CORE 2 似乎只有比较高端的 E8000 或者 Q8000 以上才有 X64指令集和支持 VT-X 技术。AMD 则比较厚道,Athlon X2 245 之类的低端 CPU 都有 X64 指集和支持 AMD-V 技术(等于是 AMD 的 VT-X 技术)。总结来说,如果你用的 CPU 是 CORE I 系列的,就可以了,如果不是的话,可以用 CPUZ 检测一下,看看是否支持 X64 和 VT-X。如果发现不支持 VT-X 的话,看看是不是 BIOS 里没有打开,一般主板的默认设置里,VT-X 都是关闭的。说完 CPU,说说内存。内存经历过两次大跌大涨,现在(2013 年 11 月)又在价格的顶峰,真是让人心碎。不过再让人心碎的价格,为了学习技术,大家也只能忍受了。一句话,学习 WIN64 内核编程至少需要 8GB 的内存,如果要多开虚拟机,推荐 16GB。否则在双机调试时卡死(鼠标移动变成了“飘动”的),会让人非常愤。
--------------------------------------------------------------------------------
当确定你的硬件没有问题,那就开始配置“软”的方面。首先,你要有一台运行 WINDOWS
7 X64 的电脑,然后还要安装有 VS2017 和 WDK7。
---------------------------------------
1.VMWARE。VMWARE 是虚拟机软件,相信这个大家都知道,因为版权的关系,我不能把它
的下载地址和注册码等信息放在文章里,这个可以大家去各种知名软件站点搜索。建议下载
VMWARE 11.以后的版本。
2.WINDBG。WINDBG 是微软出品的调试器,比起 OD 等常用调试器,就是支持内核调试。
它的下载地址是: http://www.windbg.org/X64%20Debuggers%20And%20Tools-x64_enus.msi(不过其实大家不用下载,因为安装 WDK 时已经自带了)。
3.VirtualKD。方便与进行虚拟机双机调试的工具,免去手动设置的麻烦。下载地址:
http://virtualkd.sysprogs.org
----------------------------------------------------------
接下来分别说『安装虚拟机』、『进行双机内核调试』和『进行本地内核调试』的步骤。
请大家一步一步进行操作,顺序绝对不能弄乱,否则必定失败。
『安装虚拟机』的步骤:
1.安装 VMWARE。
2.安装 WIN7X64 虚拟机(当然你也可以把其他 WIN64 系统都安装好)。
3.在虚拟机里关闭 UAC(方便测试驱动!这步一定要做,否则后续步骤会失败)。
4.在虚拟机里安装 VMware Tools。
5.在虚拟机里安装.NET FRAMEWORK4(如果是 WIN7X64 以后的系统则跳过这步)。
6.备份虚拟机的当前状态。
如果不了解虚拟机的使用,请自行百度,讲解虚拟机的使用方法不是课程重点。
『进行双机内核调试』的步骤:
1.把 VirtualKD 的 target 文件夹弄进虚拟机里。
2.在虚拟机里安装 VirtualKD(打开 VirtualKD 目录下的 target 文件夹,以管理员权限运
行 vminstall.exe)。【见下图】
1.png
3.在真机运行 VMMON64.exe,设置调试器路径。点击 VMMON 界面下面的『Debugger path』
按钮,选择 WINDBG 路径。一般路径是:C:\WinDDK\7600.16385.1\Debuggers\windbg.exe。
【见下图】
2.png
4.重启虚拟机,进入这个内核启动项。【见下图】
3.png
5.进入不久之后,WINDBG 会自动启动(实际上是 VMMON.EXE 启动的),出现类似这样的画面
(见下图)。按下 F5,继续让系统运行。
6.png
6.当虚拟机进入系统后,在真机 WINDBG 获得焦点的时候,按下 Ctrl+Break,记得随时调试虚拟机。按下 Ctrl+Break 后,会出现类似的画面
7.png
7.这个时候先不急着调试,先在真机安装符号包。WINDOWS 系统符号的官方下载地址是:http://msdn.microsoft.com/en-us/windows/hardware/gg463028.aspx,因为我们要调试的目标系统是 WIN7X64,所以去页面上选择『Windows 7 RTM x64 retail symbols, all
languages』或『Windows 7 Service Pack 1 x64 retail symbols, all languages』下载(根据你安装了 WIN7X64SP1 还是 WIN7X64RTM)。下载完毕后安装。安装过程就是一路 NEXT,记得在安装过程中选择把符号安装到 c:\symbols,否则会影响后面的符号加载
8. 设 置 WINDBG 的 符 号 。 点 击 File->Symbol File Path , 输 入
【SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols】,再按下确定即可。若
在按下确定前,勾选一下 Reload 复选框,WINDBG 则会自动重载符号。
9.让 WINDBG 重载符号。在 WINDBG 的命令行上输入.reload 即可(注意 reload 前面有个点)。
10.测试 WINDBG 是否加载符号成功。输入 u KiInsertQueueApc,如果出现类似以下的结果,
就证明今天的课程学完了!
『进行本地内核调试』的步骤:
1.开启 CMD,输入 bcdedit –debug on。
2.重启计算机。
3.打开 WINDBG,按下 Ctrl+K,选择 Local,按下确定。
-------------------------------
下节日志开始共同学习64驱动函数编写,大神勿喷,希望支持。

免费评分

参与人数 12吾爱币 +15 热心值 +11 收起 理由
Huishu + 1 我很赞同!
粉藍弟 + 1 + 1 谢谢@Thanks!
50166 + 1 + 1 我很赞同!
1997.sky + 1 + 1 谢谢@Thanks!
10011010110 + 1 + 1 谢谢@Thanks!
L4Nce + 5 感谢发布原创作品,吾爱破解论坛因你更精彩!
禅鬼 + 1 + 1 用心讨论,共获提升!
zxw0557 + 1 + 1 用心讨论,共获提升!
huabalance + 1 + 1 热心回复!
WYWZ + 1 + 1 用心讨论,共获提升!
llpgy521 + 1 + 1 谢谢@Thanks!
吃辣椒的小蜜蜂 + 1 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

njfhm 发表于 2018-4-13 13:47
本人小白,请教楼主2个问题:
1.现在微软的http://msdn.microsoft.com/en-us/windows/hardware/gg463028.aspx这个网址好像下不到系统符号了,请问哪里还有下载?
2.按照楼主的设置,vs2017不需要什么设置,编写的驱动就是64位的吗?如果我要编写32位的驱动要做什么改动吗?
谢谢!
Valices 发表于 2018-9-26 09:07
njfhm 发表于 2018-4-13 13:47
本人小白,请教楼主2个问题:
1.现在微软的http://msdn.microsoft.com/en-us/windows/hardware/gg463028.a ...

符号链接的地址使用这个http://msdl.microsoft.com/download/symbols,可以自动重定位下载
人世沉浮丶 发表于 2018-4-9 12:39
吃辣椒的小蜜蜂 发表于 2018-4-9 12:44
学习下!!!!!!!!!!!!!!!
头像被屏蔽
冷眸藐视 发表于 2018-4-9 12:47
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 谈笑人生 发表于 2018-4-9 12:57
双击调试历程 知道过程就好了。函数才重要。
wktcpdi 发表于 2018-4-9 13:35
好 详细好东西 学习下
 楼主| 谈笑人生 发表于 2018-4-9 13:38
下个日志 直接 驱动函数读写文件一起得了。
zjs3.13 发表于 2018-4-9 14:01
这个要好好学习一下。
keygome 发表于 2018-4-9 14:11
学海无涯啊
ruihe26 发表于 2018-4-9 14:18
死活没看懂..
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-22 16:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表