首页
社区
课程
招聘
[旧帖] 恳请大牛说一下你们做驱动或病毒学习历程 0.00雪花
发表于: 2011-2-28 11:55 36646

[旧帖] 恳请大牛说一下你们做驱动或病毒学习历程 0.00雪花

2011-2-28 11:55
36646
我现在已经工作但是现在工作不喜欢,想做驱动或底层的开发。但是碍于知识 的有限,所以请大家帮忙说一下你们学习历程,最好帮忙列一下应该看那些书。在哪个阶段看些什么样的书,在此谢谢了.悬赏有限请大家谅解。

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (29)
雪    币: 7
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
同求,,,
2011-2-28 14:20
0
雪    币: 84
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
没研究过病毒。

做过比较简单的PCI、USB设备驱动。

主要参考的书籍文档:
windows驱动:
1. DDK自带文档(DDK,Drive Development Kits,最新的是叫WDK,Windows Driver Kit )
2. 《Programming the Microsoft Windows driver model》
3. 《Microsoft Windows 2000技术内幕》,也就是《Inside Windows 2000》
另外,几年前开发驱动时,我用的是DriverStudio(带SoftIce)+vc6,vc6编译,SoftIce调试。

linux驱动:
《Linux Device Drivers》,网上到处有下载

驱动程序相对普通应用程序来说,需要注意的(主要针对windows的,本人对linux只是稍有接触,没有实际开发经验),个人理解,有以下几点:
1. 代码的安全、规范。
驱动运行在内核态,所以限制要严格的多,比如我们的应用程序崩溃,没什么问题,因为有操作系统在下边呢,最多再次运行,跟踪调试。同样的编程错误,到了内核态,就是导致内核崩溃,后果就是系统崩溃,得重启系统才能再次调试。这就要求,在进行驱动编码时,一定要严格严格再严格,“只有偏执狂才能生存”...
2. 内存管理。
需要充分的理解虚拟内存机制,理解应用程序使用的用户态内存地址、驱动使用的内核态内存地址、CPU/外设使用的物理地址之间是如何联系起来的,什么时候该使用什么地址。在内存的分配、访问需要使用不同类型的内存地址时(比如应用要访问驱动中分配的某段内存,或者反过来,驱动要访问应用分配的某段内存。还有就是如PCI设备要做DMA,需要使用物理地址连续且内核态地址也连续的一段内存,同样的,驱动程序内部,也需要访问这段内存。),如何分配内存,如何做地址转换。
3. 调用时机。
普通应用程序,相对来说,比较独立。大部分时候,我们只要用代码实现自己的逻辑就可以了,其应用逻辑,一般是完整的,自洽的。
驱动则不同,简单来说,驱动就是填空。驱动程序是一个夹心层,绝大部分时候,驱动程序是完全被动的。因为操作系统已经把框架搭好了,只是留了一些空让你来填上就好,这有点类似于C++的虚函数(或者标准C的函数指针),一个驱动就是提供虚函数的一组实现,供操作系统在合适的时机调用,当然驱动为了实现一些特殊功能,还要调用一些操作系统提供的函数,也就是内核态的一些API。
正是由于驱动运行基本上处于被动地位,所以写代码时,需要特别注意调用时机,对于自己实现提供给OS调用的,以及OS提供由驱动调用的函数,都要注意其说明文档中的注意事项,尤其要注意其在什么场合下才允许调用。比如有的要求IRQL < Dispatch Level,有的要求不能在isr(Interrupt Service Routine)中调用等等。
4. 硬件常识。
如果是实际硬件设备的驱动程序,需要了解硬件的基本概念,比如PCI设备的内存映射、IO映射、中断,USB设备的几种数据传输方式等等。如果只是做不直接与硬件交互的驱动(如文件系统、网络过滤等),那基本上可以忽略这条。
2011-2-28 17:50
0
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
非常感谢,因为我实在太喜欢这个所以想有空闲研究一下。所谓跳槽的工具。
2011-2-28 18:42
0
雪    币: 1240
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
病毒不会写,这个难度太大了,木马编写略知一二,无非就是写两个软件,一个是服务端,一个是客户端,通过特殊的端口(推荐80端口)连接,客户端发送指令让服务端执行。

以前是服务端侦听,客户端连接服务端,现在不行了,因为大家都有路由器,起到了简易防火墙的作用。现在的木马都是反向连接的,即服务端发起连接,连接客户端。 有时候为了隐蔽,服务端是连接到一个中立的服务器(http方式、FTP方式或IRC方式),客户端也连到这个服务器,这样就很难追查了。

随便写写,可能对你没帮助,请不要见怪
2011-2-28 19:00
0
雪    币: 673
活跃值: (278)
能力值: ( LV15,RANK:360 )
在线值:
发帖
回帖
粉丝
6
360 牛人sudami的经历

西西哈哈:现在黑基里可能很多人都不认识你了,给大家介绍下自己吧。sudami: 网名: sudami (记得是5年前上高2时的泡泡堂游戏账号)         性别: 男           年龄: 20         爱好: WINDOWS内核、T足球、偶儿看点《萌芽》等文章西西哈哈:能说说您学计算机的历史吗?sudami: 高中时一直是班上的好学生,可惜在高考前最后一个月经常通宵玩泡泡堂,导致高考发挥一般般。考入浙江大学的希望破灭,于是进了北京的一所还算可以的一类大学(离清华大学最近.住在海淀区的可能知道是哪里了). 读的专业和计算机无缘,在开始的2年中没有目标, 虚度了2年光阴.         大1上半年(2005年10月)教了唯一一门计算机的课--C语言.学完了不知道C语言是干什么的,盯着古老的TC,不知道如何写代码. 这科理所当然的挂掉了;     大2上半年(2006年10月)又开了一门课--C++. 事过一年,有关C的东西全忘了.然后又混过了这半年的C++课时,考试的时候勉强得了60多分,算是过了...但是啥都不会,学了基本白学了.    但这时候也成了一个转折点.     平时在网上溜达,看了不少前辈门关于编程的经验,也期望着想成为一个编程牛人.萌发了重新学习C/C++的念头, 与是在这年的寒假, 在图书馆把所有关于C/C++的有价值的书都翻了一遍,找了其中的3本开始重新学起来.整个寒假在家过得很充实,对C/C++的理解也更深刻了一层.这个时候觉得C语言真的很有魅力.     开学之后,也就是大2下半年(2007年3月)开了一门数据结构的课,这半年是进步最快的时段, 一边上数据结构的课,一边学习 <WINDOWS程序设计>、 <WINDOWS核心编程>、 <操作系统原理>、 <编程高手箴言>、<深入浅析MFC>等乱七八糟的书,一有时间就打开熟悉的VC 6.0开始写代码.这样时间慢慢的过去了,我也学到了很多东西,对应用层的编程,WIN32 API, MFC等熟悉掌握了,也写了几个小软件,算是练练手.      当然这些东西都是利用业余时间去学的.专业课的压力也很大,但兴趣在,所以一直坚持着.     到了大3上半年(2007年10月),开始逐渐接触到一些WINDOWS底层的东西,当然这个时候多是在学习HOOK、DLL之类的老技术。在2007年9月份开始真正的学习WINDOWS内核了,到现在差不多有3个月。但是这段时间进步是最快的。图书馆没有任何关于驱动的书,仅有一本 武河安 编著 的 《WDM驱动程序设计》,讲的是用DS写驱动,当时真是摸不着头脑,配制那些东西超级麻烦(现在看来这本书真是垃圾,误导了不少人),然后不会配制DriverStudio,开始网上到处求助,最后在kanxue论坛了解了一些对偶来说起引导作用的信息,于是呼放弃了DS,开始用命令行编译驱动程序。无奈网上没有系统的关于驱动的教程,一切东西只能靠自己用google去搜索。从此以后google、baidu成了我最好的老师,遇到不懂的问题便搜索之,往往能在CSDN,DriverDevelop,kanxue还有一些国外网站找到解决方法.     就这样过了一个月,学了很多关于驱动的东西,看着别人的代码,自己加注释,不懂的查DDK,用Windbg,上google搜,然后纪录到笔记中。当编译的驱动被加载成功,进程被成功隐藏,文件在眼皮底下消失,注册表中也无痕迹时,偶觉得这些东西非常的有意思,兴趣越来越大,学的越来越多,越来越深.      一个月之后就开始接触WRK,OSreact。前者是W2K的源码,后者是一个开源的操作系统。没事的时候就读里面的代码。遇到未导出的函数,就在WRK中查,一行一行的读,一笔笔的纪下心得和理解过程。这样对好多东西有了一个更深层次的理解。 然后开始接触逆向,颤巍巍的拿着IDA,直接把ntfs.sys拖进去,看来看去,偶这个逆向刚入门的菜鸟也渐渐的对它熟悉起来。由于之前木有学过asm。只能硬着头皮把它搞定,到图书馆借了一些关于80x86的书,然后买了本 罗云杉的 汇编书,开始啃起来。有一段时间读的一本清华大学出版的原版英文资料,关于80x86汇编和单片机的东西,足足有1000多页,偶看了200多页实在是看不下去了,再到图书馆去借的时候发现它的旁边就是一本翻译过的中文版。晕死了,于是又把中文版的借回去读。 经过一个多月的断断续续的学习,终于对那些寄存器,堆栈等汇编有关的东西熟悉了。 但是此时只能看懂人家的asm代码,要偶自己完整的写出来,然后编译成程序,偶还没有去试验过。毕竟偶现在对C很熟悉,在C中镶嵌asm足以。逆向的时候就要看汇编功底了。所以偶还在不断的学习汇编中。     在学习别人逆向的驱动代码中,偶发先必须得学习文件过滤驱动了,于是在网上找到了绝对经典的NTFSI一英文原版资料。这本书在书店的很少,而且中文版的要100RMB。难买到又贵,偶只能硬着头皮看英文了。学了几章,感觉书中对WINDOWS底层的一些细节讲的非常好。学了 the caching manager。终于知道了I/O Manager、VMM、File System Driver之间的联系和操作,IRP是如何产生并向下传递的。     相应的也就学到了cnnic这个流氓的一些丑陋行径,在学习360SuperKill驱动的过程中,知道了如何恢复被cnnic劫持的FSD的IRP分发例程IRP_MJ_CREATE(0x00)、IRP_MJ_SET_INFORMATION(0x06)。在学习粉碎文件的过程中知道了MmFlushImageSection内部的实现过程(参考WRK),原来要删除正在运行的文件方法是很多的,直接发IRP删除,然后HOOK fastfat.sys Ntfs.sys中IAT的MmFlushImageSection即可.要么可以将ImageSectionObject、DataSectionObject 置空. 网上有很多资源,往往搜索一个问题的时候便附带把其他问题学习了,偶也就开始接触到了shellcode.在最近kanxue举办的软件漏洞分析中,要用到大量的shellcode和逆向的技巧,偶这个菜鸟就只能在一旁观战+学习了....     然后陆续学习了其他的一些英文资料,eg: <Undocument WINNT> <Rootkit:Subverting the windows kernel> <Windows Internals> ... 这些资料真的是学习内核所必须的.偶还在学习中.也经常用代码去一些国外的网站看写文章,eg: Rootikit.com, codeproject.com, security.org...     在kanxue论坛学到了不少东西,因为大家都是相互学习,共享成果的.像内核监控,RING3和RING0间的同步通信, 文件隐藏, 进程隐藏, 过主动防御, 感染PE文件, 感染驱动文件, shellcode,无驱进RING0, VmProtect,逆向,F5...     偶现在对RootKit非常感兴趣.这是一个非常广阔的发展空间,谁对WINDOWS底层了解的更透彻,谁就能掌握更加深刻的技术.在RK 和ARK之间徘徊,在杀毒软件和主动防御间游击,在虚拟机和还原卡之间测试...     到现在,偶还很菜,需要继续加紧时间学习.因为要学的东西实在是太多了。 在内核群里面跟那些内核大牛们交流,真是觉得非常惭愧. 这里要严重向360safe 公司的核心开发者MJ0011 学习,这个牛MM不是一般的牛啊.内核界的绝对高手~~~西西哈哈:你是什么时候来到黑基的?sudami:     最早接触黑基是在06年5月份,那时候在玩网络游戏--泡泡堂,听说hack可以盗号,于是到baidu一搜,就进了黑基了. 放眼一望,自己什么都不会,于是看到一篇文章就拿来学习一回. 逐渐的,黑基成了偶每次上网第一打开的论坛. 刚开始什么都不懂,乱发帖,乱回复被斑竹扣过分. 呵呵, 先在想想自己真菜~~~真正开始喜欢上黑基是在06年10月份,那时在黑基的活动开始频繁起来, 当时对病毒木马比较感兴趣,于是有时间在泡在"病毒木马区", 接着熊猫烧香开始肆虐整个网络,偶从中也知道了病毒的厉害,第一次在原创区发表了手工清楚熊猫的过程,心中无比喜悦.06年是在黑基过的年,在水区很高兴,还中了个红包,被+了好多分,依稀记得猫, walker110, 疯子, 5046820, lyxn 和它的老婆,yyx...   到了07年, 逛的为数不多的几个论坛,黑基就像一个网上的家. 有段时间真是一天不上黑基,就很挂念.一种说不出的感觉. 眨眼的工夫,07年过去了,我在这里当了1.5个月的斑竹就此告辞. 我静下心来想了很多,最后还是决定离开这个曾经熟悉的地方. 别的什么都不说,至少这是我电脑方面的启蒙.真实她培养了我对电脑,对编程,对WINDWOS内核的兴趣.通过她我接触到了一些前辈,一些牛人.从他们那里学习到了很多宝贵的经验,这是我以后学习发展的一个基础西西哈哈:离开黑基后有经常回来看看吗?sudami:因为要学的东西很多,可能不回来了吧.不过我会一直记得这个地方的.红冰泪是个非常负责,非常出色的管理员.西西哈哈:你大学的专业不是计算机,有想过毕业以后从事计算机方面的工作吗?还是有其他的打算?sudami:这只能是个业余爱好,不能当饭吃. 我想不会从事吧西西哈哈:现在黑基上有非常多的新人都在问怎么入门,能不能谈谈你的看法或者说说你的经验?sudami:呵呵,我也是个菜鸟.大道理就不说了.关键几点:英文不用太好(能看懂MSDN WDK就行了);求知欲很重要;学习自己感兴趣的东西;baidu/google是最好的老师;要用时间和耐心去战胜一切;学习靠自己,不要依赖任何人;要勤快的做笔记.这是你以后的一笔巨大财富.经常和比自己牛的人交流, 不经意间你会有所获;学习是一个循序渐进的过程,需要不断温习不断巩固;...西西哈哈:对于现在的黑基,你有没有什么建议?sudami:呵呵, 我希望黑基能吸引更多的牛人进来.现在的黑基,我只能说是菜鸟的乐园.可能大家认为我说过了。但是从一个旁观者的角度,确实是这样的.好久不来黑基, 希望黑基能培养出更多的人才~~~~西西哈哈:离开这么久了,最想对朋友们说些什么?sudami:大家学习,生活,工作快乐,顺利.sudami正在加油的学习,希望有一天能将名字刻在黑基的名人堂上.

学习过程

若对Windows底层开发没有兴趣,不建议继续深究; 若有些兴趣可以继续 2. 先广泛打基础,比如C/MFC/C++/ASM,再学习Windows核心编程,对R3上的一些开发有所熟悉; 再系统的学习<操作系统>等书籍,理解整个系统的原理,构架,实现. 3. 有了以上基础,可以开始阅读一些驱动入门书籍,如 毛德草 的<Windows内核情景分析>, 多上google搜索资料; 下一份WRK/ReactOS,没事翻一翻,搭好驱动编译环境后,可以尝试写些小驱动,在实践蓝屏中摸索总结,从而积累初级的经验. 4. 等成了驱动开发初级工后,可开始学习Windbg,IDA的使用. 多看源码多F1看帮助文档. 5. 等熟练以上工具后,开始Windbg动态调试,IDA静态逆向其他驱动(包括微软自己的). 在这一过程中,你又会接触到脚本语言,汇编知识点,Intel手册,加密解密,Vmvare等一堆的东西,同样你需要熟悉它们. 6. 等你熟悉以上东西后,可以给自己提些需求,并实现该需求; 比如写个小型ARK; 在这个过程中,你可以切实感受到开发一个程序是一个系统的东西,你又需要回到R3写界面,重温MFC,WTL等设计与使用.当然又要写驱动程序,保证兼容性等问题; 这个过程是漫长的,期间你会发现写一小部分功能,你可以扩展收获很多知识点. 7. 等你熟悉以上东西后, 已经可以自己独立解决问题了.基本不需要到网上求助; 遇到问题,会利用WRK / Windbg / IDA / Google 等方式自行搞定; 如网上有现成的解决方法,借用之,取其精华,唾其糟粕; 若网上没有现成的,则需要你IDA 系统文件,load pdb; windbg动态调试内核等手段自行挖掘; 若网上只有类似的程序,你可以逆向其关键部分参考之,而后变成自己的东西. 8 ,等你经历了以上7个阶段,你可以开始系统的了解WINDOWS的构架,站在产品的角度思考问题,分析问题,解决问题. 对自己多提需求.进而再去实现之. 这阶段是积累经验的阶段... 9. 基本能够胜任大多数公司的项目需求了.

各个方面需要的书     http://bbs.pediy.com/showthread.php?t=130685
我也是刚入门 想学驱动程序设计
汇编方面
  16位汇编曾经看了一阵,不用学太多,知道一下中断及其调用就行,还有寻址方式。重头戏是Windows环境下的汇编。这方面的参考书以<<Windows环境下32位汇编语言程序设计>>为主,寒假看过电子版,讲的非常好,罗云彬写的,自己买了本。以后用windbg以动态调试及IDA反汇编不能少了这方面的支持。汇编就硬着头皮上吧,幸亏以前看了一点16位汇编,有一点点帮助,这点比sudami好点。
    Windows程序设计
  学驱动之前必须要熟知R3下各种常见的API的调用,这方面的书以我买的<<Windows程序设计>>为主,着重看一下进程 线程 文件  内存 网络方面的API调用,MFC一定要学,文档、视类方面的需要的时候再看吧 不要把他们当重点, ATL WTL 只听过名字,调研一下,看需不需要像MFC一样学习,需要的话还是找与底层联系紧密的方面当重点。
    驱动方面
   这方面以<<Windows内核安全编程>>这本书为重点,这本书面面俱到,但是也有一个缺点讲的不细(对于我这种入门级别的小白)。Windows架构方面,Windows内核情景分析太贵了,打折后还要150元,手里只有他的电子书版本,以潘爱民老师的那本<<Windows内核原理实现>>为准,应该再买一本驱动方面讲的比较细的书来,用来当字典查,由于Windows不开源,驱动方面的书实在是少之又少,以后还要花一段时间专门学习一下HOOK SSDT   HOOK SHADOW SSDT  Inline Hook  这方面就得多上网查,一定要多多的收藏牛人的博客,那些愿意共享知识的牛人的博客
   工具使用
     以后要学习IDA windbg 有可能的话软件软件逆向方面的三环调试器ollydbg也要学 知识到达一个层次了工具自然而然也就学会用了,虚拟机方面的vmare早就会用了,这点还比较好。
     数据结构
     一直不理解数据结构是什么东东,后来在某个地方看到了数据结构被加上了个定语,终于明白数据结构是怎么一回事了,数据结构就是计算机中数据结构。原来压根就是在电脑里面数据存在的方式。数据结构这方面就只知道一个栈,先入后出、后入先出。Windows里面还有链表 还有二叉树的遍历,这方面可以找找A帮忙,学数据结构和学C++一样,结合Windows中具体实现的方式应该不难。

如果要学驱动 入门的话以《windows内核安全编程》 入门为好 然后你会发现很多你不知道或者没有导出的函数或者数据结构  不要担心  去google 因为驱动方面的书本来就少  大家一般都是在网上交流知识   如果真正入门了  花一个星期就可以把  hook  ssdt     
hook  shadowssdt  玩的天花乱坠 关键是要开窍  
还有驱网的另外两本书   《从汇编语言到windows内核编程》   谭文的 外号楚狂人还有一本书教

还有竹林蹊径  着重于USB 以及1394  但是前面讲的基础知识非常好 也很适合入门

《windows驱动开发技术详解》 张帆的  里面的工具用的是Driver Studio  过时了 但是内容还是非常好的

http://wenku.baidu.com/view/f1935e8483d049649b665886.html
这是楚狂人在网上留下了的windows驱动开发基础

大体windows驱动方面的书面资料就这么多  平常一定要勤google 然后遇到没有导出的函数 数据结构 做好笔记  还有多多收集牛人的博客  
大体就先说这么多  我会陆续把我手里的驱动方面的资料传到网盘上 提供楼主下载
因为还不是正式会员嘛   很看重楼主的20kx啊  哈哈

欢迎和楼主一起交流 我qq1037211560
2011-3-12 20:17
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
同样的学习一下了,谢谢LZ
2011-3-13 00:50
0
雪    币: 3800
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
好像没大牛发表经历
2011-3-13 01:10
0
雪    币: 31
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
[天书夜读-从汇编语言到Windows内核编程].谭文.邵坚磊
这本书看下,入门的好书。
电驴上可以下到!我有电子版的,要的话,发给你!
2011-3-13 17:23
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
现在我学什么LINUX  没什么兴趣 不知道有什么好的推荐 学个语言  搞系统安全
2011-3-13 19:05
0
雪    币: 1040
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
受教了,确定目标,循序渐进
2011-3-16 10:46
0
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
我再大学主修计算机,但是大学大家都知道是怎么回事,于是就自己学习了windows编程,linux编程一些基础学的很杂,没有深入进去。
2011-3-16 19:04
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
发得太长了,看得眼花僚乱
2011-3-17 12:15
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
[QUOTE=门前小雪;935577][天书夜读-从汇编语言到Windows内核编程].谭文.邵坚磊
这本书看下,入门的好书。
电驴上可以下到!我有电子版的,要的话,发给你![/QUOTE]

561637423@qq.com
2011-3-17 13:51
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
[QUOTE=门前小雪;935577][天书夜读-从汇编语言到Windows内核编程].谭文.邵坚磊
这本书看下,入门的好书。
电驴上可以下到!我有电子版的,要的话,发给你![/QUOTE]

求一份

582005682@qq.com
2011-6-10 22:18
0
雪    币: 287
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
我目前主要面向Windows平台,驱动方面的书读过两本,都是电子工业出版社发行的:
《Windows驱动开发技术详解》,张帆、史彩成等编写的。主要讲WDM架构下的驱动编程,顺带介绍了WDF架构。

《Windows设备驱动程序WDF开发》,武安河编著。顾名思义是主要讲WDF架构下的驱动设计。不可回避地介绍了WDM架构基础知识。

两本书有交集,相互对照来读会有很大帮助。

我最近在做USB外设硬件,当初读这些是想给自己的产品写驱动。但我的用户多数都在用最新版的Windows,全是Win7 x64。而Windows自Vista起就不允许发布未经微软徽标认证的驱动了。如果还像XP那样忽略恶名昭著的红色窗口选择“仍然继续”安装,那么装上的驱动即使硬件软件都正常也不能用,Windows会提示已经禁止这个设备工作。唯一解决办法就是交钱给MS,把inf和sys发给他们测试。顺利的话等一个月能收到证书,然后自己用工具来生成认证后的文件。以后要改任何地方又得重新认证。

一看这么麻烦,我干脆先不学它了。混饭吃要紧,我用标准HID类同样实现了想要的功能。驱动神马的等以后有空再捡起来吧。
2011-6-11 12:32
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
谢谢兄台指教啊 那这样在Win7下写驱动.....纳闷
2011-6-11 14:53
0
雪    币: 287
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
自己尝试的话可以打开测试模式,方法是在命令行输入
bcdedit -set testsigning on

这样系统不再骚扰驱动运行,不过会在屏幕四角显示“测试模式”字样,无法消除。

据说有些方法可以伪造证书绕过这个机制,但只能针对每部机器分别执行,仍不能用于发布。M$这么搞至少有两个目的,一是提高系统安全性,避免内核模式的权限暴露在不受控的环境中,二就是丫可以收钱了。

如果有人能搞个万能证书出来那就牛掰大了。至少现在看来,想学驱动可以先用这个测试模式救急,不影响功能的。等做成熟了交钱给强盗,产品上市前买个三年五年的证书也够用了。

不知LZ想做哪些设备的驱动,我目前只研究过USB的驱动,据说WDK下有一个bulkusb.sys驱动是微软加完证书后发布出来的,可以用来做批量传输。对于数据吞吐量比较大的USB外设可以用这个驱动,也可以试试serial.sys,就是USB转串口的驱动,CDC类。

一些少量数据的都可以走HID类的默认驱动,不用自己写inf文件,有一点不爽的是不能自定义自己的设备在设备管理器里显示的名称。要想能自定义的话,也要给M$交钱。
2011-6-11 20:56
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
谢谢这位兄台啊 也是个牛人啊 向你学习 谢谢你宝贵的资料和经验了
2011-6-11 21:29
0
雪    币: 287
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
客气,软件高手在前面。我主要玩硬件,软件方面的编程经验不多,VB、VC++、C#每样都试过,但都没有真正拿来做过项目。即使是照CSDN那边的标准,连个熟手都算不上。来这里还是想跟着大家学习。
2011-6-12 02:20
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
其实我是来学习的~~~~~~
2011-6-13 11:02
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
mark一下,学习。。。
2011-6-14 14:25
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
25
努力学习,没钱的时候烟都抽不上,很少出去玩,一天大部分在学习,这就是学习历程
2011-6-14 14:30
0
游客
登录 | 注册 方可回帖
返回
//