天书夜读

出版时间:2008-10  出版社:电子工业出版社  作者:谭文,邵坚磊 著  页数:270  
Tag标签:无  

前言

  Windows是庞大复杂的系统。由于Windows并不公开源代码,我们在调试程序的时候,往往就调到自己未知的领域去了。没有C代码,只能看到令人眼花缭乱的汇编指令和机器码。我曾对它们望而生畏,敬而远之。尤其在这个黑客、破解、病毒、木马横行的时代,如果作为安全软件的开发者,同样不能期盼病毒的作者提供可以阅读的高级语言代码。  如果那些东西,也和C语言一样亲切易懂,那多么好啊!这样的话,即便是Windows这样庞大复杂而且封闭的系统,或者是再诡异和隐蔽的破坏技术,至少只要我愿意去探索,对我来说就不再有秘密可言。  其实这个梦想并非不切实际。既然我们能读懂C代码,何以就不能读懂汇编呢?很多高手眼中,机器指令和C代码一样熟悉。  这本书并没有系统地介绍Windows系统底层。但是我尝试寻找正确的方法和手段,为读者打开Windows底层知识宝库的大门,使读者可以在其中自由阅读,自己去获取所需知识。

内容概要

本书从基本的Windows程序与汇编指令出发,深入浅出地讲解了Windows内核的编程、调试、阅读,以及自行探索的方法。读者在使用C/C++开发Windows程序的基础上,将熟练掌握汇编和C语言的应用,深入了解Windows底层,并掌握阅读Windows内核的基本方法,以及Windows内核的基本编程方法。    本书适合使用C/C++在Windows上编程的读者,尤其适合希望加深自己技术功底的Windows应用程序员、计算机专业的有志于软件开发的大中院校学生;专业的Windows内核程序员,亦可从本书得到超越一般内核程序开发的启发。

作者简介

谭文:从2002年到2008年,从事信息安全类软件的Windows内核驱动的开发工作。从2008年开始参与一个主要涉及不同架构之间二进制指令的实时翻译技术的项目的开发。业余时间在驱动开发音(www.driverdevelop.com)以楚狂人为笔名发表了许多技术文章。

书籍目录

入手篇  熟悉汇编 第1章  汇编指令与C语言  1.1  上机建立第一个工程   1.1.1  用Visual Studio创建工程   1.1.2  用Visual Studio查看汇编代码  1.2  简要复习常用的汇编指令   1.2.1  堆栈相关指令   1.2.2  数据传送指令   1.2.3  跳转与比较指令  1.3  C函数的参数传递过程 第2章  C语言的流程和处理  2.1  C语言的循环反汇编   2.1.1  for循环   2.1.2  do循环   2.1.3  while循环  2.2  C语言判断与分支的反汇编   2.2.1  if-else判断分支   2.2.2  switch-case判断分支  2.3  C语言的数组与结构  2.4  C语言的共用体和枚举类型 第3章  练习反汇编C语言程序  3.1  算法的反汇编   3.1.1  算法反汇编代码分析   3.1.2  算法反汇编阅读技巧  3.2  发行版的反汇编  3.3  汇编反C语言练习基础篇  内核编程 第4章  内核字符串与内存  4.1  字符串的处理   4.1.1  使用字符串结构   4.1.2  字符串的初始化   4.1.3  字符串的拷贝   4.1.4  字符串的连接   4.1.5  字符串的打印  4.2  内存与链表   4.2.1  内存的分配与释放   4.2.2  使用LIST_ENTRY   4.2.3  使用长长整型数据   4.2.4  使用自选锁 第5章  文件与注册表操作  5.1  文件操作   5.1.1  使用OBJECT_ATTRIBUTES   5.1.2  打开和关闭文件   5.1.3  文件读/写操作  5.2  注册表操作   5.2.1  注册表键的打开   5.2.2  注册表值的读   5.2.3  注册表值的写 第6章  时间与线程  6.1  时间与定时器   6.1.1  获得当前滴答数   6.1.2  获得当前系统时间   6.1.3  使用定时器  6.2  线程与事件   6.2.1  使用系统线程   6.2.2  在线程中睡眠   6.2.3  使用同步事件 第7章  驱动、设备与请求  7.1  驱动与设备   7.1.1  驱动入口与驱动对象   7.1.2  分发函数和卸载函数   7.1.3  设备与符号链接   7.1.4  设备的安全创建   7.1.5  设备与符号链接的用户相关性  7.2  请求处理   7.2.1  IRP与IO_STACK_LOCATION   7.2.2  打开与关闭请求的处理   7.2.3  应用层信息传入   7.2.4  驱动层信息传出探索篇  研究内核 第8章  进入Windows内核  8.1  开始Windows内核编程   8.1.1  内核编程的环境准备   8.1.2  用C语言写一个内核程序  8.2  学习用WinDbg进行调试   8.2.1  软件的准备   8.2.2  设置Windows XP调试执行   8.2.3  设置VMWare虚拟机调试   8.2.4  设置被调试机为Vista的情况   8.2.5  设置Windows内核符号表   8.2.6  调试例子diskperf  8.3  认识内核代码函数调用方式  8.4  尝试反写C内核代码  8.5  如何在代码中寻找需要的信息 第9章  用C++编写的内核程序  9.1  用C++开发内核程序   9.1.1  建立一个C++的内核工程   9.1.2  使用C接口标准声明   9.1.3  使用类静态成员函数   9.1.4  实现new操作符  9.2  开始阅读一个反汇编的类   9.2.1  new操作符的实现   9.2.2  构造函数的实现  9.3  了解更多的C++特性 第10章  继续探索Windows内核  10.1  探索Windows已有内核调用  10.2  自己实现XP的新调用   10.2.1  对照调试结果和数据结构   10.2.2  写出C语言的对应代码  10.3  没有符号表的情况  10.4  64位操作系统下的情况   10.4.1  分析64位操作系统的调用   10.4.2  深入了解64位内核调用参数传递深入篇  修改内核 第11章  机器码与反汇编引擎  11.1  了解Intel的机器码   11.1.1  可执行指令与数据   11.1.2  单条指令的组成   11.1.3  MOD-REG-R/M的组成   11.1.4  其他的组成部分  11.2  反汇编引擎XDE32基本数据结构  11.3  反汇编引擎XDE32具体实现 第12章  CPU权限级与分页机制  12.1  Ring0和Ring3权限级  12.2  保护模式下的分页内存保护  12.3  分页内存不可执行保护   12.3.1  不可执行保护原理   12.3.2  不可执行保护的漏洞  12.4  权限级别的切换   12.4.1  调用门及其漏洞   12.4.2  sysenter和sysexit指令 第13章  开发Windows内核Hook  13.1  XP下Hook系统调用IoCallDriver  13.2  Vista下IofCallDriver的跟踪  13.3  Vista下inline hook   13.3.1  写入跳转指令并拷贝代码   13.3.2  实现中继函数实战篇  实际开发 第14章  反病毒、木马实例开发  14.1  反病毒、木马的设想  14.2  开发内核驱动   14.2.1  在内核中检查可执行文件   14.2.2  在内核中生成设备接口   14.2.3  在内核中等待监控进程的响应  14.3  开发监控进程  14.4  本软件进一步展望 第15章  Rootkit与HIPS  15.1  Rootkit为何很重要  15.2  Rootkit如何逃过检测  15.3  HIPS如何检测Rootkit 第16章  手写指令保护代码  16.1  混淆字符串  16.2  隐藏内核函数  16.3  混淆流程与数据操作   16.3.1  混淆函数出口   16.3.2  插入有意义的花指令 第17章  用VMProtect保护代码  17.1  安装VMProtect  17.2  使用VMProtect  17.3  查看VMProtect效果参考文献

章节摘录

  第10章 继续探索Windows内核  10.1 探索Windows已有内核调用  基础知识  下面用本书前面介绍的知识来做一些有用的事情。Windows从2000发展到XP后,XP DDK中出现了一些新的调用。内核程序开发者有时会发现,这些调用非常有用(这也是这些新调用产生的原因),但是如果使用这些调用,会导致驱动在Windows 2000下无法使用。目前Windows 2000的用户依然很多,存在这样的可移植性问题是非常遗憾的,退一步的方案是Windows 2000下限制某些功能。在程序中动态加载系统调用,并小心地判断当前的版本。在Windows 2000的情况下,一些功能被跳过。这样比前者好。但是依然不是最理想的解决方案。  有一些人开始使用未公开(Undocumented)的解决方案。未公开的解决方案的危害就是,可能不兼容未来的操作系统。但是由于现在这样做仅仅是针对一个过去版本的操作系统,问题就不复存在了。在新版本的操作系统上,调用新的系统调用,而在某个已经存在而且不会再变的操作系统版本上,调用未公开的方法。只要低版本操作系统测试无问题,以后的也不会有问题。  这里的所谓未公开的解决方案就是,在新版本的操作系统上,把新出现的功能调用进行调试,了解其实现的方法。然后在我们自己开发的内核程序中,实现同样的或者等价的功能,同时检测当前操作系统为低版本时,调用这些特殊的代码。  下面举两个例子。  这个调用获得设备栈底的设备,这对过滤驱动非常有用。

编辑推荐

  我作为驱动开发的老兵,深感资料缺乏的艰辛,很多信息无法在文档中找到,此时自力更生的能力更加重要。  当我们手中拿着神兵利器——WinDbg时,一切都在掌握之中。这本书将要告诉您的不是全面的汇编知识或未公开的Windows秘密,而是怎么从这些貌似天书的汇编代码中,一探Windows底层的核心实现。  在开发中出现的问题,能不能从Windows自身找到答案?如果您正在这样思考,无疑本书是为您度身订做的。  本书授人以渔,也授人以鱼;短小精悍,读之如一缕清风,读罢则有醍醐灌顶之感。  ——驱动开发网站长  马勇(znsoft)

图书封面

图书标签Tags

评论、评分、阅读与下载


    天书夜读 PDF格式下载


用户评论 (总计104条)

 
 

  •   最近正在学习有关WINDOWS底层驱动程序开发,听朋友介绍说有一本叫做《天书夜读》的书,详尽介绍了WINDOWS内核编程,推荐我读一读。读过之后,觉得受益匪浅,总体来说是一本较为不错的专业性书籍,对于安全软件的开发者来说,绝对不可错过。支持,希望以后能读到更多这样优秀的书籍,在学习的过程中,不断进步。
  •   在以前学习OS内核安全技术,所依赖的书籍大多是国外的,因为国内的OS技术类书籍过于理论化,难以快速将书上的知识应用到工作中。看了《天书》的目录以后,就发现这是一本更加注重实践的书籍,也是国内少有的内核安全类的书籍。本书作者楚狂人和wowocock是国内安全界知名专家,内核级程序员,对现代操作系统理论的掌握相当扎实,对windows内核的工作机制非常的了解,由他们撰写此书很合适。本书的优点就是注重实践,读者很容易上手,学以致用。不足的地方就是理论部分太少,期望作者在以后的作品里,能将现代操作系统的理论和实践相结合,让读者在实践的过程中可以去印证枯燥的理论知识。
  •   天书夜读:从汇编语言到windows内核编程是一本很经典的图书,再配合罗云彬的windows环境下32位汇编语言程序设计是学习汇编和windows API编程经典组合,强烈推荐!!!!!!!!!!!
  •   从这本书我们认识驱动开发网,同时也终于等了好久,虽然自己也曾想涉及逆向,但一直没有系统的书籍可以参考学习。本书不但引我入门,而且以windows为例,这样我们可以边学习边实践了。期待作者下一本书
  •   不过看此书前应该先看windows驱动开发技术详解
  •   这本书很好很强能引导人进入windows内核,帮助你如何学习windows内核
  •   书很好 价格也很合理
    不过 前题是得有一定汇编基础
    里边给的汇编代码让翻译成c代码 没给答案 去翻译有点困难
    不过总体不错 可以结合罗云彬<windows 下32位汇编程序设计>看
  •   Windows底层开发中文资料较少,此书相当不错。
  •   期待以久的<天书夜读>终于拿到手,感慨于书中用浅显的语言将内核编程将表达得如此清晰,而且还附上那么多示例代码,有一种手把手授予的感觉,一步一步地将你带入门,实用性很强!
  •   确实是一本好书,楚狂人是个很了不起的人。真的,能把内核驱动写的让人读懂,明白,真的很了不起。
  •   从汇编入手,介绍了汇编反C的方法,介绍了WDK,介绍了一点内核编程,美中不足的地方就是64位的汇编只是一掠而过。
  •   正想学内核编程。。看过电子版滴。。写得很不错的一本书。。
  •   不论是对驱动开发的初学者,还是有一定基础的开发者,这本书都能给你带来一些帮助,和我看过的其它技术书籍不同,可以看得出来这本书的作者是将其自身的开发经验讲了出来,同为开发人员,我觉得这些经验对我是有很大帮助的,就好像武侠小说里面,师傅不是扔给你一本秘籍让你自己啃,而是手把手的教你,并不是每一本技术书籍都能达到这个效果的。强烈期待后续的几本更加贴近实际项目的书面市!
  •   本书对于理解底层的开发很有帮助
  •   可以先看《Intel汇编语言程序设计》,再翻看这本书
  •   一直对逆向感兴趣。然后。特别喜欢汇编。这本书开头就教会你反编译C语言写出原程序。往后怎么样还不太知道,不过就前面几章来说。挺好的一本书。
  •   要有一定的汇编语言基础。在看了书之后,有横多原来迷糊的地方,的确是一片豁然开朗。
    给了我们从另一个角度,重新看待我们使用的各种高级语言。
    相比其他的同类书籍,确实是最好理解的一本了。
  •   刚到手,初翻了下,挺满意,比较适合我这种初学逆向的人,不过前提是要有一定的汇编和C基础
  •   购买了此书的读者,如果发现任何错误、或者认为书上的内容有任何不清楚的地方,请直接加作者的msn:walled_river@hotmail.com.或者往这个地址发送邮件,直接与作者交流。作者同时提供:最新的勘误表、本书内容相关的技术问题的咨询解答、本书内容相关的软件下载、安装、书内调试代码相关的指导。
  •   真的是天书,白天读不下去,看了三遍了,找到了点感觉!
  •   楚狂人,谭文,我爱死你了。。。可惜书的内容太少,要是多点就更好了。期待更多谭文写的书,钱不是问题,问题是有钱买不到知识
  •   以前学汇编语言没学会的现在懂了
  •   作者很年轻,但是在内核编程方面造诣很深,盼望有新作出现。btw,国内的技术作者都应向作者学习,能够深入浅出的介绍技术难点。
  •   学习驱动入门级的好书,适合新手学习。
  •   对于一般人来说,这真跟天书一样难读~~~~~~~~~~得晚上静静地认真研读~~
  •   书的内容很好,正好最近也在研究驱动,帮助很大,期待后面几本快快出版,但是当当运货却不能始终保证书本质量的完美,每次运货书本都有点窝角,这点令我很是不爽,特别是硬质的书本,窝角后特别不舒服,虽然看书不是为了有个好封面便于收藏,知识才是关键,但是对于好书我总有收藏的欲望,因此想要拿到书本质量较好的书本。
  •   看完汇编后,再去碰此书,很有价值
  •   这本书虽是入门书籍,但是包含着作者在实际编程中的体会。细细品读别有一番滋味在心头。
  •   挺适合我这种 业余爱好者 很容易读懂 专业的可能觉得书进的很浅吧
  •   不错~物有所值吧~打算一天看一页,天书就要慢慢看,就是薄了点
  •   单位要编程序,只能临时抱佛脚了
  •   学习编程的好帮手,不过初来乍到,里面还偶尔介绍了一些值得看的编程书籍!
  •   有关系统底层的东西很喜欢,书也不厚,感觉轻松
  •   有书友说书有点贵,个人感觉只要能从书中学到一丝一毫的新知识,区区几十元何贵之有啊?知识无价的财富,我读此书感觉是学到了一些东西,有些地方真有茅塞顿开之感。
  •   本书不太适合初学者.知识有一定深度.
  •   值得一看的书,短小精悍,虽然里面很多知识点并不是介绍的很详细,但重点都点到了,剩下的自己上网查查资料就OK,绝对值得一看
  •   貌似有些难度,整体看起来很不错。
  •   书的质量很好,适合入门级,学习中!
  •   很,交给了大家渔,很值得反思!也有好多好书推荐!
  •   技术含量很高,和作者在网上打过交道,都是同行
  •   很好很喜欢 深入了解
  •   书的内容和纸张都很不错,适合我这种初学者。
  •   内容相当不错,不知道用什么形容了!
    但要求读者周边知识丰富,这样才能从中体会更好的知识
  •   内容详实,有启发意义。。。
  •   帮BF买的,BF刚开始从事软件开发工作,说很值得一看
  •   这本书让我学会了上网,聊QQ!!!!
  •   好喜欢这本书,书皮精致,内容也很丰富,由浅到深的阐述,无论对初学者还是高手,都是很值得收藏的一本好书,期待寒江独钓更加精彩,多些列子,如果配套光盘就更好了。
  •   两作者都是我同事,我了解他们,非常了不起。
  •   很需要关于这一类的书。。
  •   书还不错,价格也还实在,而且当当的物流感觉非常给力,不论是春节还是平时都能快速送到
  •   内容有点概况了,不是太详细。总体还可以。
  •   好书,不多说,绝对好书
  •   这书很好,排版很多书你说的再好,排版不好就看起来晕
  •   应该比较实用吧,这个系列的都不错哦
  •   书拿到了,感觉还行。
  •   运送挺快,书也挺不错
  •   帮老公买的,挺好,速度很快,头天定的第二天就送到了!!
  •   gsdfdsf
  •   很好,送货速度快,到货及时。
  •   对现在的我来说,,如虎添翼。。
  •   非常不错的书,来的也不慢.很好
  •   浏览之后,才知道天书不是指作者的这本书,而是指WINDOWS内核代码,大失所望。其次,这本书内容很肤浅,知识也很老,在内核编程上稍有研究的人,都已经接触过书中的内容,基本上没什么新意。
  •   《天书夜读》中介绍了反汇编和内核编程,讲反汇编的前3章写的很好,基本上可以帮助初学者入门,后面内核驱动部分则讲的过于单薄,只有最基本的东西,不利于入门的关键是,书上的代码都是作者设计过的,不能跑通,因为作者怕读者拿去做破坏活动,但我觉得这样很不利于学习,因为代码都没有实际的效果,很难说服读者这样做是正确的。但是内核调用的反汇编部分写的也不错,可以帮助读者理解内核驱动的反汇编代码。
    总之我觉得,如果是反汇编入门的话,这本书还是不错的,驱动编程入门,也还行。
  •   个人感觉非常好的一本书适合入门学习WINDOWS内核
  •   这本书挺好的,适合有一定汇编基础及Windows编程基本的人看,不怎么适合初学者。
  •   了解一下汇编是不错的,根据同学说的,这本书比较适合基础比较不扎实的同学,从汇编层面上了解C++,了解Windows编程
  •   关于内核编程的书籍,国内出版的本来就不多,从业者相对于应用层的开发人员人数比例小,编程资源也就少得多,这本书的内容应该至少可以把认真的读者拉到门边,至于要对内核编程和驱动有深入的领悟,还有诸多的东西要补充学习,系统结构,操作系统,相关硬件等等。。。
  •   总体上还不错,比如一开始讲了反写汇编代码和反写c代码,后面开始讲到一些内核编程的基础,在讲到rootkit的时候里面的思路挺好的,就是错误多了点!
  •   这本书有点杂,说是汇编吧,介绍的也不多,说是内核编程吧,也不详细
  •   很不错的内核编程入门书籍。
  •   其实除了微软自己,世界上没人能写出一块真正的win内核分析,因为win不是公开的,公开的只是接口,所以此书未免有夸大其词的成分,此书的校对者是罗云彬。
  •   标题和目录看的我挺心动的,但是有些函数不一致,让我很纠结,初看驱动开发,后面还有很多值得我学习的了。
  •   楚狂人写的东西,看了前面一章,汇编和C语言的对比,感觉写的不错!通俗易懂
  •   还没来得及看,不过应该是深入理解汇编不错的一本书
  •   最好是先学一学汇编,再读.书不错
  •   不错,汇编基础不行,需强化
  •   书不错!通俗易懂!比起纯粹的看汇编强多了!
  •   这本书讲解的全面但不彻底,要想研究底层的东西还得买老罗的书
  •   正在想做做window底层的东东
  •   书如其名…… 天书啊
  •   这本书最大的缺憾就是没有光盘,而且书中的错误较多,此书的勘误表请大家去看雪论坛下载。不过总体说来,这本书还是不错,尤其在缺少资料的国内来看,有总比什么都没有强!
  •   不说内容怎么样,就是说的名字就给人一种古雅的感觉,很适合当“美文”来阅读,如果书的装帧再巧究点,那就很完美了!
  •   内容不错,适合能静心做研究的读者。
  •   内容似乎不适宜于业余者和兴趣者吧
  •   太让人扫兴了,刚看到书时感觉印刷太好了,结果后面书皮坏了~能不能负责任一点。买了要送人的,结果只能自己看了。不过书的内容还是不错的,本人比较喜欢~
  •   同事推荐,现在还没有开始认真读了。要好好研究了。
  •   晚上就着灯光,静静的读着它,会感觉一种充实,一种幸福。。。
  •   稍有难度,适合拿来寻开心,讲的虽然好但是内容不系统。
  •   很是不错,是一本学习c语言的好书
  •   这本书无论从内容还是它的印刷,都还不错
  •   书的内容挺好,值得一看。但是我的书有几页胶快开了,很不爽。磨损的话有可能是运输过程中的问题,但是这种问题应该还是商家的问题!
  •   讲得很好啊, 能给人兴趣.
  •   刚看3章(基础知识)感觉讲的有些浅,不过书的内容很喜欢,先看完再说~~
  •   书很好,希望能学到东西,加油。
  •   内容不错,就是太贵了。不是很值。
  •   内容不多。称不上经典。可以看看。
  •   写得详细又不失明了,实在是好书
  •   汇编的 当科普了
  •   学习之路
  •   很不错的书,适合高级人员
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7