一、前言
虽然我个人觉得这么早就直接进入内核学习对新学者并不太友好,但《加密与解密》一书中就是这么安排的,我这里也就这样照做的。
可能是由于这本书由多人编写的缘故,不同章节之间其实存在着很强烈的撕裂感。
比如前面64位与32位逆向分析技术,原本应该是前呼后应的关系,但在书中却明显是两者在单独进行介绍。
二、了解内核
现代操作系统一般分为应用层和内核层两部分,应用层的进程可以通过系统调用进入内核,由系统底层完成相应的功能,此时内核执行处在该进程的上下文空间中。
还有内核处理某些硬件发送来的中断请求,代替硬件完成某些功能,那么此时内核就处在中断的上下文空间中。
本文多要谈论的内核,指的是系统内核本身、以及第三方软件以内核模式加载的驱动文件。
这段话看起来似乎很麻烦,这里简单举个例子理解一下。
我们在代码中想要读写文件,无论你是什么语言,只要在windows系统中就必定要调用WriteFile
之类的win api
函数,这就是内核暴露给我们的函数,也就是系统调用,除此之外,你并不能自己重新写个函数来读写系统中文件数据。