﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-逆向分析专栏-随笔分类-Driver</title><link>http://www.cppblog.com/xunbu7/category/20284.html</link><description>内心的平静是一种修为，容易激动不是件好事。</description><language>zh-cn</language><lastBuildDate>Thu, 27 Dec 2012 11:22:47 GMT</lastBuildDate><pubDate>Thu, 27 Dec 2012 11:22:47 GMT</pubDate><ttl>60</ttl><item><title>SYSTEM_INFORMATION_CLASS枚举类型</title><link>http://www.cppblog.com/xunbu7/archive/2012/12/27/196726.html</link><dc:creator>寻步</dc:creator><author>寻步</author><pubDate>Thu, 27 Dec 2012 06:34:00 GMT</pubDate><guid>http://www.cppblog.com/xunbu7/archive/2012/12/27/196726.html</guid><wfw:comment>http://www.cppblog.com/xunbu7/comments/196726.html</wfw:comment><comments>http://www.cppblog.com/xunbu7/archive/2012/12/27/196726.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xunbu7/comments/commentRss/196726.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xunbu7/services/trackbacks/196726.html</trackback:ping><description><![CDATA[SYSTEM_INFORMATION_CLASS是一个类型信息，它大概提供了50余种信息，所以你需要哪一种信息，就需要设置一个枚举值。<br />enum&nbsp;SYSTEM_INFORMATION_CLASS&nbsp;{SystemKernelDebuggerInformation=35};&nbsp;<br />这样得到的是SYSTEM_KERNEL_DEBUGGER_INFORMATION这个结构体代表的信息。<br /><br />SYSTEM_INFORMATION_CLASS的完整定义：<br /><br />
<div id="wrap">typedef enum _SYSTEM_INFORMATION_CLASS {<br />&nbsp;&nbsp;&nbsp; SystemBasicInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 0 Y N<br />&nbsp;&nbsp;&nbsp; SystemProcessorInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 1 Y N<br />&nbsp;&nbsp;&nbsp; SystemPerformanceInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 2 Y N<br />&nbsp;&nbsp;&nbsp; SystemTimeOfDayInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 3 Y N<br />&nbsp;&nbsp;&nbsp; SystemNotImplemented1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 4 Y N<br />&nbsp;&nbsp;&nbsp; SystemProcessesAndThreadsInformation, // 5 Y N<br />&nbsp;&nbsp;&nbsp; SystemCallCounts,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 6 Y N<br />&nbsp;&nbsp;&nbsp; SystemConfigurationInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 7 Y N<br />&nbsp;&nbsp;&nbsp; SystemProcessorTimes,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 8 Y N<br />&nbsp;&nbsp;&nbsp; SystemGlobalFlag,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 9 Y Y<br />&nbsp;&nbsp;&nbsp; SystemNotImplemented2,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 10 Y N<br />&nbsp;&nbsp;&nbsp; SystemModuleInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 11 Y N<br />&nbsp;&nbsp;&nbsp; SystemLockInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 12 Y N<br />&nbsp;&nbsp;&nbsp; SystemNotImplemented3,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 13 Y N<br />&nbsp;&nbsp;&nbsp; SystemNotImplemented4,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 14 Y N<br />&nbsp;&nbsp;&nbsp; SystemNotImplemented5,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 15 Y N<br />&nbsp;&nbsp;&nbsp; SystemHandleInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 16 Y N<br />&nbsp;&nbsp;&nbsp; SystemObjectInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 17 Y N<br />&nbsp;&nbsp;&nbsp; SystemPagefileInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 18 Y N<br />&nbsp;&nbsp;&nbsp; SystemInstructionEmulationCounts,&nbsp;&nbsp;&nbsp; // 19 Y N<br />&nbsp;&nbsp;&nbsp; SystemInvalidInfoClass1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 20<br />&nbsp;&nbsp;&nbsp; SystemCacheInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 21 Y Y<br />&nbsp;&nbsp;&nbsp; SystemPoolTagInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 22 Y N<br />&nbsp;&nbsp;&nbsp; SystemProcessorStatistics,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 23 Y N<br />&nbsp;&nbsp;&nbsp; SystemDpcInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 24 Y Y<br />&nbsp;&nbsp;&nbsp; SystemNotImplemented6,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 25 Y N<br />&nbsp;&nbsp;&nbsp; SystemLoadImage,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 26 N Y<br />&nbsp;&nbsp;&nbsp; SystemUnloadImage,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 27 N Y<br />&nbsp;&nbsp;&nbsp; SystemTimeAdjustment,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 28 Y Y<br />&nbsp;&nbsp;&nbsp; SystemNotImplemented7,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 29 Y N<br />&nbsp;&nbsp;&nbsp; SystemNotImplemented8,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 30 Y N<br />&nbsp;&nbsp;&nbsp; SystemNotImplemented9,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 31 Y N<br />&nbsp;&nbsp;&nbsp; SystemCrashDumpInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 32 Y N<br />&nbsp;&nbsp;&nbsp; SystemExceptionInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 33 Y N<br />&nbsp;&nbsp;&nbsp; SystemCrashDumpStateInformation,&nbsp;&nbsp;&nbsp; // 34 Y Y/N<br />&nbsp;&nbsp;&nbsp; SystemKernelDebuggerInformation,&nbsp;&nbsp;&nbsp; // 35 Y N<br />&nbsp;&nbsp;&nbsp; SystemContextSwitchInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 36 Y N<br />&nbsp;&nbsp;&nbsp; SystemRegistryQuotaInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 37 Y Y<br />&nbsp;&nbsp;&nbsp; SystemLoadAndCallImage,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 38 N Y<br />&nbsp;&nbsp;&nbsp; SystemPrioritySeparation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 39 N Y<br />&nbsp;&nbsp;&nbsp; SystemNotImplemented10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 40 Y N<br />&nbsp;&nbsp;&nbsp; SystemNotImplemented11,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 41 Y N<br />&nbsp;&nbsp;&nbsp; SystemInvalidInfoClass2,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 42<br />&nbsp;&nbsp;&nbsp; SystemInvalidInfoClass3,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 43<br />&nbsp;&nbsp;&nbsp; SystemTimeZoneInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 44 Y N<br />&nbsp;&nbsp;&nbsp; SystemLookasideInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 45 Y N<br />&nbsp;&nbsp;&nbsp; SystemSetTimeSlipEvent,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 46 N Y<br />&nbsp;&nbsp;&nbsp; SystemCreateSession,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 47 N Y<br />&nbsp;&nbsp;&nbsp; SystemDeleteSession,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 48 N Y<br />&nbsp;&nbsp;&nbsp; SystemInvalidInfoClass4,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 49<br />&nbsp;&nbsp;&nbsp; SystemRangeStartInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 50 Y N<br />&nbsp;&nbsp;&nbsp; SystemVerifierInformation,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 51 Y Y<br />&nbsp;&nbsp;&nbsp; SystemAddVerifier,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 52 N Y<br />&nbsp;&nbsp;&nbsp; SystemSessionProcessesInformation&nbsp;&nbsp;&nbsp; // 53 Y N<br />} SYSTEM_INFORMATION_CLASS;<br /> <!-- google_ad_section_end  --></div><img src ="http://www.cppblog.com/xunbu7/aggbug/196726.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xunbu7/" target="_blank">寻步</a> 2012-12-27 14:34 <a href="http://www.cppblog.com/xunbu7/archive/2012/12/27/196726.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>驱动程序环境搭配（VS2010 + WDK + VirtualDDK + VMware）</title><link>http://www.cppblog.com/xunbu7/archive/2012/12/26/196687.html</link><dc:creator>寻步</dc:creator><author>寻步</author><pubDate>Wed, 26 Dec 2012 08:17:00 GMT</pubDate><guid>http://www.cppblog.com/xunbu7/archive/2012/12/26/196687.html</guid><wfw:comment>http://www.cppblog.com/xunbu7/comments/196687.html</wfw:comment><comments>http://www.cppblog.com/xunbu7/archive/2012/12/26/196687.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xunbu7/comments/commentRss/196687.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xunbu7/services/trackbacks/196687.html</trackback:ping><description><![CDATA[感谢两文作者！<br /><br /><a href="http://techird.blog.163.com/blog/static/1215640362011112385241568/">http://techird.blog.163.com/blog/static/1215640362011112385241568/</a><br /><br /><a href="http://www.cnblogs.com/BoyXiao/archive/2011/07/31/2122755.html">http://www.cnblogs.com/BoyXiao/archive/2011/07/31/2122755.html</a> <br /><br />所有的配置工作完成后，在新的调试的时候，需要注意的是：<br />每次在重启虚拟机的时候，在选择操作系统的界面要停一下，等待我们机器上的VS上相关的操作。<img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xunbu7/QQ截图20121226173704.jpg" width="653" longdesc="" height="210" /><br /><br />1.驱动文件编译连接后，下好调试断点(这些东西之前就要做好)，<br /><br />2.调试运行驱动。<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xunbu7/QQ截图20121226174849.jpg" width="887" longdesc="" height="398" /><br /><br />3.出现下面的连接虚拟机的连接内核调试对话窗口。<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xunbu7/QQ截图20121227094509.jpg" width="486" longdesc="" height="254" /><br />此时显示的失败。<br /><br />4.进入虚拟机调试系统，会中断在下面的界面。<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xunbu7/QQ截图20121226180231.jpg" width="808" longdesc="" height="262" /><br />连接虚拟机的连接内核调试对话窗口显示数据信息，代表连接虚拟机成功，窗口很快就消失了，不好截图。<br />紧接着下载符号窗口，这个图不好截，借用别人一下。<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xunbu7/2866822637815190354.jpg" width="576" longdesc="" height="113" /><br />VS会出现如下控制台界面：<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xunbu7/QQ截图20121227093727.jpg" width="510" longdesc="" height="528" /><br /><br />5.在VS中按F5运行，则虚拟机系统正常运行。 <br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xunbu7/QQ截图20121226180938.jpg" width="642" longdesc="" height="482" /><br /><br />6.在虚拟机进入桌面后，DDKLauncherMonitor启动后，等待我们在ddk控制台加载驱动。<img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xunbu7/QQ截图20121226181818.jpg" width="734" longdesc="" height="372" /><br /><br />7.控制台加载驱动后，会显示几行错误信息，这个是正常的。<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xunbu7/QQ截图20121227100313.jpg" width="510" longdesc="" height="528" /><br />此时，虚拟机中的DDKLaunchMonitor对话框会显示两行信息。<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xunbu7/QQ截图20121227100141.jpg" width="627" longdesc="" height="314" /><br />结果在VS中断到了我们的断点上，可以成功调试。<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xunbu7/QQ截图20121227100832.jpg" width="899" longdesc="" height="359" /><br /><br />8.一次完成调试后(调试中，虚拟机中的操作系统是不能动的，因为它在被调试，废话，哈哈)，虚拟机中的DDKLaunchMonitor对话框会显示一行信息。虚拟机中的操作系统正常运行。<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xunbu7/QQ截图20121227102139.jpg" width="625" longdesc="" height="317" /><br /><br />9.在不关闭虚拟机的前提下，可以反复轻松调试。 <img src ="http://www.cppblog.com/xunbu7/aggbug/196687.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xunbu7/" target="_blank">寻步</a> 2012-12-26 16:17 <a href="http://www.cppblog.com/xunbu7/archive/2012/12/26/196687.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>