您的浏览历史

寒江独钓:Windows内核安全编程(china-pub首发)(09年度畅销榜NO.8)

  • 定价 : ¥75.00
  • 会员价 : ¥56.25(75折)
促销活动
  • [本书]参加电子工业出版社 满58元赠书活动
精彩评论

基本信息

编辑推荐

继《天书夜读:从汇编语言到Windows内核编程》之后,重磅推出“驱网核心技术丛书之二”。
本书有助于读者熟悉Windows内核驱动的体系结构,并精通信息安全类的内核编程技术。
本书阅读注意事项

推荐阅读

内容简介回到顶部↑

本书从Windows内核编程出发,全面系统地介绍了串口、键盘、磁盘、文件系统、网络等相关的Windows内核模块的编程技术,以及基于这些技术实现的输入密码保护、防毒引擎、文件加密、网络嗅探、网络防火墙等信息安全软件的核心组件的具体编程。主要知识重点包括:Windows串口与键盘过滤驱动、Windows虚拟存储设备与存储设备过滤驱动、Windows文件系统过滤驱动、文件系统透明加密/解密驱动、Windows各类网络驱动(包括TDI过滤驱动及3类NDIS驱动),以及最新的WDF驱动开发模型。有助于读者熟悉Windows内核驱动的体系结构,并精通信息安全类的内核编程技术。本书的大部分代码具有广泛的兼容性,适合从Windows 2000一直到目前最新的Windows 7 Beta版。.
本书适合大专院校计算机系的学生、普通Windows程序员、Windows内核程序员、信息安全行业的程序员,以及希望了解Windows系统底层知识的计算机编程爱好者使用。阅读本书,需要读者有C语言、数据结构、操作系统和计算机网络的基础知识。...

作译者回到顶部↑

本书提供作译者介绍

主要作者:

谭文,C程序员。1980年生于湖南。2002年毕业于西安交通大学自动控制系。毕业后一直从事各类系统底层软件的开发设计工作;目前在英特尔在上海紫竹科技园的研发中心参与不同平台二进制指令动态翻译系统的项目开发。爱好聊天、发帖。曾著有《天书夜读——从汇编语言到Windows内核编程》一书。编写本书的第1~3,7,8,10~12章,并统稿全书。
杨潇,C程序员。1981年生于陕西。2006年毕业于西安交通大学自动控制研究所。一直从事各类系统软硬件接口部分的开发设计工作;目前在Comodo北京.. << 查看详细

目录回到顶部↑

第1章 内核上机指导. 1
Windows内核编程的动手有点麻烦,并不是仅仅安装一个独立的软件(比如VC)之后就可以安然地开始编写代码,然后运行了。需要下载开发包、配置开发环境、准备调试工具,可能还需要一些小工具协同工作。这一步拦住了不少的初学者。本章以详细图文攻略,来引导读者完成这一麻烦的步骤。
1.1 下载和使用WDK 2
1.1.1 下载安装WDK 2
1.1.2 编写第一个C文件 3
1.1.3 编译一个工程 5
1.2 安装与运行 6
1.2.1 下载一个安装工具 6
1.2.2 运行与查看输出信息 7
1.2.3 在虚拟机中运行 9
1.3 调试内核模块 9
1.3.1 下载和安装WinDbg 9
1.3.2 设置Windows XP调试执行 10
1.3.3 设置Vista调试执行 11
1.3.4 设置VMWare的管道虚拟串口 11
1.3.5 设置Windows内核符号表 13
1.3.6 实战调试first 14
练习题 16
第2章 内核编程环境及其特殊性 17
编写过驱动程序的读者可能会很熟悉这一切,但是对只从事过应用程序的读者而言,要理解内核编程环境的特殊性,就很需要一些功夫和悟性了。在应用程序中,多线程的情况已经带来了一定理解的困难;而内核代码呢?几乎无时无刻不运行在多线程之下。它从哪里开始?从哪里结束?它在什么进程内运行?这些问题一言难尽。

前言回到顶部↑

本书是一本专门介绍实时扫描的防毒软件、虚拟磁盘、硬盘还原、硬盘加密、文件系统保护、文件透明加密、防火墙、密码输入保护等软件的Windows内核模块的具体实现方法的编程技术书。本书的目的是使读者能够用C语言编写这些核心模块。.
大学的时候,在Windows平台上我最初学的是VB,然后是Delphi。我的感觉是,无论想实现任何功能,都早已有工具的开发者给我们准备了良好的接口和文档,让我们学习和使用都非常的方便。因此觉得自己已经学到了终点。如果仅从“能实现功能”的角度讲,我没有必要再学习了,剩下的事情,只是去很舒适地使用那些接口就可以了。那又何必再学习Windows编程呢?
工作之后遇到了障碍。我的第一个任务是实现一个网络的虚拟磁盘。我虽然自以为无所不能,但是也找不到在Windows系统里增加一个虚拟磁盘的API在哪里。我每天都在使用虚拟光驱、杀毒软件、防火墙,但是我从未想过它们如何实现。不是因为我懂,而是因为我自以为任何功能的实现一定是简单而舒适的,等需要的时候再去研究,绝不会有什么困难。
但是实际编码的时候才明白:良好的接口、舒适的编码过程,绝对不是天生之道。天地万物自混沌而起,那些美好的表面,不过是在残酷的现实上重重包裹的包装纸罢了。
一辆新车的表面自然光彩照人,操作接口也人性而美好。但是一旦需要打开车身去修理内部某根漏油的管子,就没有那么容易和舒适了。造成这种情况,绝不是Windows的底层开发者们天生没有美学观念。那些多年积累和维护着并不断改进的无数行代码,已经是人类工程史上的奇迹了。如今要打开它的外壳去肆意修理,当然不是一件轻松的事情。
但这正是Windows内核编程的魅力所在。
只有极少的程序员会需要参与微软的Windows内核开发,也只有极少的读者会自己试图从头开发一个类Windows的操作系统内核(有这方面兴趣的读者,建议参考开源项目ReactOS)。单纯地讲解Windows内核编程对大多数读者都没有意义。但是,信息安全类的软件是内核编程的极好的应用实例。病毒实时监控、防火墙、入侵检测、数据保护还原、数据即时备份、数据加密、数据防止泄密、反外挂等,都不同程度地涉及到内核编程;或者,内核编程可以让它们工作得更好。这些就是本书的内容,因此本书的副标题为“Windows内核安全编程”。“寒江独钓”则表明了这个领域的寒冷与寂寥。..
本书和《天书夜读——从汇编语言到Windows内核编程》的不同之处在于:《天书夜读》一书介绍的是自己调试Windows内核、获取知识、解决问题的技巧。因此《天书夜读》一书介绍的内容大部分是没有文档可循的,容易走火入魔。
本书则基本上介绍的是正统的内核编程技术,是微软在内核编程中给信息安全软件开发者提供的相关接口的大集合,是名门正派的技术,不沾邪气。一个好的内核程序员,“正邪兼修”是有必要的。
本书既适合于有志于成为软件程序员的学生使用,也适合于希望加强自己的技术实力的Windows程序员阅读,同时更适合于从事信息安全行业的Windows软件的开发者作为手头参考。
本书对改善病毒横行的网络现状也有一定益处。虽然无助于劝说那些孜孜不倦的病毒开发者们弃恶从善,但是至少有助于他们提高技术素养,学会更认真地编写程序,以免总是写出导致程序崩溃和系统蓝屏的代码,影响无辜者的正常工作。
本书假定读者了解C语言,能理解C语言的基本语法,并且学习过操作系统、计算机网络和数据结构的基础知识。一般来说,如果读者听说过“进程”、“文件系统”、“中断”、“TCP协议”、“以太网包”、“链表”、“哈希表”、“加密算法”这些名词,则足够阅读此书了。
有些读者可能会关心作为一个程序员的就业前景。这也是我非常关心的一个问题。我曾经在杭州的核新软件公司为证券营业部开发防火墙和虚拟磁盘,一共3年的时间;后来在日电卓越软件(北京)的上海分公司开发部信息安全开发课工作了3年。我认识的业界朋友们,大多在赛门铁克、趋势、瑞星、EMC、华赛这样的公司就职。现在是我工作的第7个年头了,我在Intel在上海的紫竹中心参与动态二进制翻译项目。最有价值的是,我参与的每一个项目都让我学习到更多的知识,面对许多前所未有的考验,每一步都让人充满了精神上的成就感。
本书的读者未来很可能会从事底层编码的工作,而不是一个上层的设计和管理人员。从事底层编码的程序员,常常被同事称为“牛人”。这个牛人不是“牛皮哄哄的人”的意思,而是“像牛一样辛苦工作的人”的意思。想从事这个行业的读者,我抄我的前同事钱铮最喜欢的一首古诗《代牛言》献给您:
渴饮颍水流,饿喘吴门月。黄金如可种,我力终不竭。...
谭 文
2009年1月1日

序言回到顶部↑

早在一年前,谭文就和我谈过想写一本既能深刻介绍Windows内核架构,又能结合具体Windows驱动程序开发实例的书。在一年的时间中,谭文一直在构思酝酿。那时候他的《天书夜读——从汇编语言到Windows内核编程》已经出版,《天书夜读》所涉及的内容很广,但就如同书名一样,它的内容不太适合刚刚涉猎Windows内核编程的程序员,反而更像一本供黑客学习的读物。书中翔实地介绍了很多反汇编技巧的技巧,非常的精辟,但对于新手来说,容易对Windows内核编程产生畏惧感。.
当我第一次读完《寒江独钓——Windows内核安全编程》的初稿时,我觉得本书非常适合Windows内核程序的入门。Windows内核程序一直被认为是只有高手才能涉及的领域,很多程序员对这种开发都觉得非常神秘。我觉得这是一种错觉,其中有一个很重要的原因就是国内很少出版这方面的书籍。这本书很好地弥补了这方面的空白,我相信大部分读者读完后,都会觉得Windows内核开发程序不再那么神秘。的确,微软自从Windows 2000版本以后,内核的架构变化不是很大。当然,这并不意味着你读完本书后,你就可以对内核开发游刃有余了,这需要你对每一个细节反复研究,并且多做试验。..
编写Windows内核程序,就意味着这个程序可以执行任意指令,可以访问计算机所有的软件、硬件资源。因此,稍有不慎就有可能将系统变得不稳定。Windows的设计者设计了各种驱动模型或者框架,如NT式内核驱动模型、WDM框架和新推出的WDF框架。在这些模型框架下编程,就使内核编程变得简单,同样也降低了内核程序崩溃的机会。其实,Windows驱动程序员和黑客都在写内核程序,唯一不同的是驱动程序员按照微软设计的模型写程序,而黑客可以不按照这些框架写。Windows设计的这些框架,可以将操作系统的原理隐藏起来,只暴露一些接口,驱动程序员只要把这些接口写好就可以了。从这个角度看,驱动开发并不难,尤其是读完本书后,更会觉得不难了。但是想完成一些特殊的功能,如内核级隐藏进程等,Windows的这些框架就没什么用处了,程序员就需要对Windows内核有全面的了解,通过直接修改Windows内核来实现这些目的。往往黑客对这种技术乐此不疲,通过修改Windows内核,你会发现你的程序几乎无所不能。
编写内核程序是一件很痛苦的事情,回想起这些年学习内核程序开发的经历,真是感慨万千。就如同谭文所说:编写内核程序的人从某种程度讲是孤独的。当一个经验并不丰富的小程序员面对庞大复杂的并且不开源的Windows框架时,那是一种怎样的无助感啊!谭文是我比较钦佩的程序员之一,他对技术非常执着,并且精力充沛。内核程序的知识涉及面非常广,不同类别的内核程序差别也特别大,他几乎都有所涉猎。相信读者在读完这本书后,能对Windows内核开发有比较详细的了解,同时也能结合书中的实例写出很优秀的内核程序了。...
张 帆
2009年5月1日于北京

评论交流

共有160人开贴评论  262人参与评论  54人参与打分 查看

28人
 51%
用户平均打分
我要写评论 help如何参与评论和打分
14人
 25%
3人
 5%
6人
 11%
3人
 5%

hhcwy
一级评论员
该会员在china-pub购买过此书
评价等级:  
发表于:2010-6-3 15:18:00
首先要感谢这部书的作者,国内的驱动开发的书籍的确太少了,英文或者翻译的又有太多的不便,看完之后感觉还是收获比较多的,但看这本书个人认为不应该说是一点没有经验的人能看的,至少懂一点ddk,然后看过至少一本驱动开发原理的书的人看可能会有真正的收获。
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

weizhentian

四级评论员
该会员在china-pub购买过此书
评价等级:  
发表于:2010-3-9 20:06:00
没看完对完全没基础的还是难了,有基础的可以去看ddk
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

CoolJie2001

专家级评论员
该会员在china-pub购买过此书 精彩书评
评价等级:  
发表于:2010-3-3 15:45:00
想要学习驱动开发的必备宝典啊,国内的驱动开发书籍太少,而本书确实做到了带领一个完全没有学过驱动开发的人士进入该领域的作用,作者功力很好,文笔也值得赞赏
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

bruclan

一级评论员
该会员在china-pub购买过此书
评价等级:  
发表于:2010-2-10 2:35:00
国内涉及Windows内核编程的数很少,涉及到内核安全编程的少之又少,该书涵盖传统的KDM和最新的KMDF内核编程模型,并详细讲解了NDIS的驱动开发,买得值。
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

numby

一级评论员
该会员在china-pub购买过此书
评价等级:  
发表于:2010-1-6 12:12:00
以我写驱动的浅薄经验,有这个几个感觉:
1、入门的时候最难的就是不清楚到底什么是系统提供了的,什么是需要自己写的。有时候哪怕你知道系统似乎应该提供了某个功能,却也怎么也找不到对应的函数接口。
2、帮助文档、示例代码就是最好的学习资料。Windows DDK/WDK帮助文档就是绝对的经典,就我的经历来看,所有的问题都在哪里找到了答案。只是很多人可能静不下心来,不愿意去读。
3、驱动的调试才是真正的重点与难点。掌握了良好的调式方法和工作习惯可以节约很多时间。

因此,像“寒江”“天书”这类的书对初学者还是有些用处的,个人认为最大的好处就在于可以让初学者知道系统给你提供了什么,一些基本的方法是怎样。至于准确的概念和更发丰富的知识,还是直接看DDK文档的好。
您觉得呢? 送鲜花 (得1支)  扔鸡蛋 (得0个)
我要写评论
查看所有评论交流(共160条)