勘误说明

由于个人技术水平有限,书中内容错漏在所难免。各位读者在阅读本书的过程中,若发现与自己见解不同之处,一定要坚持自己的意见,并用实践去检验。经过实践检验之后,若发现书中内容仍存在问题,请可以直接在下方直接留言反馈。

对于留言反馈的读者,本站一律予以积分奖励;同时勘误的读者,也会出现在第二版的感谢名单中。

请大家批评指正,不吝赐教

书中演示的开发环境软件下载

用户篇

本书所有的程序开发均是在VS2013上开发完成的,在正式介绍VS2013开发环境安装之前,需要到官网上下载安装文件镜像以及多字节MFC库安装文件。

vs2013.5_ult_chs.iso下载链接:

http://download.microsoft.com/download/9/3/E/93EA27FF-DB02-4822-8771-DCA0238957E9/vs2013.5_ult_chs.iso?type=ISO

vc_mbcsmfc.exe下载链接:

http://www.microsoft.com/zh-cn/download/details.aspx?id=40770

上述两个安装文件下载完毕之后,就可以进行安装了,本文演示使用的操作系统是 64 位 Windows 10。安装完上述两个软件,即可进行第一部分 “用户篇” 内容的学习和练习。

内核篇

VS2013 要进行驱动开发,必须要在上述“用户篇”环境基础上,再下载安装 WDK8.1,可以到微软驱动开发官网上进行下载:

https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit

注意,下载的 WDK 一定要对应自己的 VS 版本,VS2013 就下载 WDK8.1。

安装步骤,可以参考《Windows黑客编程技术详解》书中内容

本书配套源码下载

https://www.write-bug.com/article/1811.html

勘误补充

2019.1.19 勘误——13.3 文件管理之NTFS解析

https://www.write-bug.com/article/2044.html

2019.1.21 勘误——9.1 Windows自带的加密库

https://www.write-bug.com/article/2045.html

2019.1.30 勘误——11.3 桌面截屏

https://www.write-bug.com/article/2089.html

上传的附件 cloud_download NTFS_FileLocation_Test_修改.7z ( 155.15kb, 14次下载 ) cloud_download CryptoApi_Rsa_Test_修改.7z ( 156.17kb, 7次下载 ) cloud_download ScreenCapture_Test_修改.7z ( 164.45kb, 9次下载 )
你的回答被采纳后将获得: 100点积分 (将会扣除手续费1点积分。)

keyboard_arrow_left上一篇 : 禁用win10数字签名 [80x86汇编]push 和pushf指令有什么区别? : 下一篇keyboard_arrow_right

2个回答

Barefoot
2018-12-31 18:08:23

书中 389 页,明明给的是 classifyFn 函数的代码,却在文中写的是 “notifyFn函数的实现代码” !!!

demon-x
2019-01-03 11:20:31

书中内核篇 “18.2 过PatchGuard的进程隐藏” 这一章节介绍的技术,使用 MiProcessLoaderEntry 函数断链的方式,经过跑代码实践验证,该蓝屏的还是会蓝屏,错误代码是0x109,所以并没有过PG!!!

看雪上有大佬已经指出来了,我只是帮忙搬运到这里勘误!!!

https://bbs.pediy.com/thread-248775.htm

精彩评论

  • qt+Mysql 发布 无法连接数据库的问题
    debug和release时都可以正常连接,只是打包过后出现问题!这应该就是打包的问题了,代码和程序应该都没错!!!你可以尝试更换其他的打包方式试试
    2019-05-08 10:39:51 thumb_up( 1 )
  • 面向过程编程和面向对象编程怎么理解?
    面向过程(结构化程序设计)采用自顶向下、分而治之的方法,将整个程序按功能划分为几个可独立编程的子过程模块,每一子模块完成指定的子任务,主过程通过调用各子过程完来成全部处理工作。 面向对象的程序设计(Object-Oriented Programming)面向对象的程序设计方法强调直接以现实世界中的物体为中心来思考和认识问题,并按照这些事物的本质特征把它们抽象为类。采用数据抽象和数据隐藏,类之间互相交互,共同构成大型的面向对象基础。
    2019-03-08 18:15:03 thumb_up( 4 )
  • 面向过程编程和面向对象编程怎么理解?
    面向过程是围绕功能进行的,为每一个功能写一个函数,需要考虑其中的每一个细节,以步骤划分,可以这么比喻 面向过程的程序=算法+数据结构 而面向对象则像是组装,先确定一个系统是由哪些对象组成,再分别去设计这些对象,将它们像零件一样组装起来形成有完整功能的系统,以功能划分,相当于 对象=算法+数据结构 面向对象的程序=N个对象+控制信息 面向对象和面向过程的区别概括起来讲就是面向过程程序只用函数实现,而面向对象程序是用类实现各个功能模块。
    2019-07-01 09:42:34 thumb_up( 2 )
  • 想学APP开发,是学HTML5呢?还是学原生Android呢?
    原生学习有难度,HTML门坎较低,如果你真想做App开发的话 ,学原生吧,HTML后面慢慢学
    2019-07-15 16:37:08 thumb_up( 3 )
  • 想学APP开发,是学HTML5呢?还是学原生Android呢?
    HTML5是指WEB APP吗?这个的好处是跨平台比较好吧,但是就是有很多APP功能用这个实现起来很难!原生Android功能更全面和强大,就是学起来没有WEB容易吧
    2019-07-05 08:38:49 thumb_up( 2 )
  • eclipse项目 找不到或无法加载主类
    可以尝试以下方法:环境变量检查一下,没错的话第二步project里面是否有打开Build Automatically
    2019-05-10 15:05:22 thumb_up( 1 )
  • eclipse项目 找不到或无法加载主类
    Eclipse错误: 找不到或无法加载主类或项目无法编译10种解决大法: 1、在src文件夹上点右键-Build Path-Use as Source Folder,重新进行编译,一切正常了。 2、在Eclipse工程文件夹上点右键-Refresh,重新编译,一功OK(这个方法一般不起作用)。 3、右键Properties在Java Builder Path的Libraries的标签里面看是否有缺少或者无用的(一般带红差头)的,引入对应的jar包或者删除掉。 4、在Properties里面设置Source.添加你的Java路径.比如src,然后需要设置下面的Default output folder,这里设置你的输出路径也就是class路径了。 5、右键Properties在里面的builder里面把项目的builder.xml引用(import)进来。 6、把右键Properties在Java Builder Path的Libraries全部删除,尤其是jre,然后,点击保存,关闭eclipse,然后再打开,再把对应的jre和lib下边的相关jar引进来,保存,重新编译后就好了,我也不知道为啥,有一次我就这么弄好了。 7、把class下边的有.class文件的话还是这样,把这些.class文件删除掉,然后elipse中菜单project—clear然后选中对应项目,在project菜单下边勾上Build Automaticlly(自动部署),然后生成新的就class文件就OK了。 8、把项目下边的.project删除掉,从同事身边运行正常的项目下边拷贝过来它的.project文件,刷新项目试试。 9、把项目下边的.classpath删除掉,从同事身边运行正常的项目下边拷贝过来它的.classpath文件,刷新项目试试。 10、终极解决办法,也是很管用的解决办法,就是把整个项目删除掉,删除之前把更改的内容提交到CVS或者SVN上,然后重新从SVN或者CVS上把项目档下来。
    2019-05-11 16:35:34 thumb_up( 2 )
  • qt+Mysql 发布 无法连接数据库的问题
    完蛋了…..问题已解决!解决办法:确实是在exe的同级目录中加入libmysql.dll。但是加了还没用的话,可能是你的libmysql.dll没用,所以你需要重新下载一个可用的libmysql.dll。-_-这个问题我找了半天….希望这个帖子对你们有用.
    2019-05-08 10:43:32 thumb_up( 2 )
eject