关于黑客:Rootkits黑客之颠内核方向应该怎么学

6次阅读

共计 3694 个字符,预计需要花费 10 分钟才能阅读完成。

大家好,我是周杰伦。

持续咱们的三个月入门系列文章,上次的三个月入门 Web 平安公布后,有读者留言让我写一写内核方面的,明天就来了。

不过学习内核方向,须要的基本功的确有点多,梳理发现再怎么着压缩,三个月工夫还是不够,最初压缩到了四个月。

内核方向可能不如 Web 平安那么让人熟知,搞平安的学习内核干什么?

平安畛域中,次要有这几个方向会须要学习内核技术:

1、Rootkit 开发,开发内核级病毒木马程序

2、内核平安开发,比方 ARK 开发、平安软件开发,数据防透露、通明加解密等

3、内核破绽攻打技术,Kernel Exploit

因为在平安畛域钻研内核技术次要是 Windows 比拟多,所以本文讲述路线仅实用于 Windows 操作系统。

废话不多说,上学习路线!先来一个总览:

第一个月

  • 计算机系统根底
  • C 语言编程一
  • C 语言编程二
  • 零碎编程初探

第二个月

  • x86 汇编根底
  • 软件调试技术
  • 逆向剖析技术
  • HOOK 技术

第三个月

  • 零碎编程深刻
  • x86 内核根底、内存治理
  • Windows 过程与线程常识
  • 零碎调用、中断与异样

第四个月

  • 驱动开发入门
  • ARK 工具应用
  • 内核编程
  • Rootkit 技术

第一个月:C 语言根底

第一个月,次要是通过学习 C 语言编程来把握一些计算机的基础知识。

第一周:计算机系统根底

老手小白一开始先从计算机基本概念学起,计算机的基础架构模型,冯诺伊曼体系是什么,CPU 的根本工作原理,理解操作系统的根底概念,编程是怎么一回事。

第一周的工作次要是扫盲,理解计算机系统的一些根底名词和概念,能够不必把握的十分深,但脑子里要有一个初步的印象。

第二周:C 语言根底一

第二周开始来进入 C 语言的学习,古代支流操作系统根本都是应用 C 语言开发,零碎编程也根本应用 C 语言,学习 C 语言对将来学习操作系统和内核常识是必须的根底。

这一周,次要把握一些根本的语法,main 函数、输入输出、根底数据类型、根本运算符、分支判断、循环、数组,宏···能编写一些简略的程序。

第三周:C 语言根底二

这一周,还是学习 C 语言,因为 C 语言切实太重要了,一周工夫基本不够。相比上一周,这一周会学的更深刻一些。重点把握函数、指针、构造体、联合体、位域、sizeof、typedef、malloc/free 这些常识。

学习的时候不要光看书,肯定要每一个知识点在编译器里入手写代码去实际,重复练习加深坚固对知识点的了解。

同时在这个阶段,学习应用编译器(Visual Studio、Clion 等)自带的调试工具进行代码调试,学习打断点、查看变量、单步执行等根底操作。

第周围:零碎编程初探

有了肯定的 C 语言编程功底,是时候来学习一些跟操作系统相干的编程,在这个过程中接触一些操作系统相干的常识。

比方文件操作、多过程、多线程、堆内存调配与开释,理解 Windows 32 位平台上过程模型,内存地址空间格局,过程里有哪些内容等。

第二个月:二进制剖析根底

第二个月,学习一些二进制平安的根底,这一些货色,做破绽、破解 PWN、内核都须要把握。

第五周:x86 汇编根底

这一周,开始来学习 x86 汇编语言,做内核平安,常常会进行逆向剖析、HOOK 挂钩等操作,所以须要具备肯定的汇编语言功底。能够从 16 位汇编开始,理解 CPU 有哪些寄存器,每个寄存器是做什么的,理解内存分段机制等。

学习根本的罕用指令语法:mov、add、sub、push、pop、call、ret、jmp、je/jle/jbe、xor、mul、div、nop···

有了 16 位的根底,拓展理解 32 位下的区别,寄存器的变动。

第六周:软件调试技术

后面在学习 C 语言编程等时候,学习过应用编译器自带的调试器进行简略的调试,在这一周,咱们再来零碎的学习一下在汇编层面进行调试。

在 VisualStudio 中调试的时候,除了源码调试,还能够关上汇编窗口查看汇编指令,而且最要害的是,VS 将每一行 C 语句都和汇编指令对照起来了,十分不便咱们的学习。

除了在 VS 中学习调试,这一周次要学习 OllyDbg、WinDbg 两款调试工具的应用,有了汇编语言的根底和在 VS 中调试的经验,学习这两款调试工具应该会轻松不少。

学习调试函数调用过程,剖析函数调用过程中波及到的传参、跳转、返回地址、堆栈变动,了解函数调用在底层的过程,理解线程的栈外面都有哪些货色。

第七周:逆向剖析技术

有了汇编语言和操作系统的一些基础知识,当初能够正式的来接触逆向剖析技术了。

首先理解高级语言编译成可执行文件的过程,而后学习 PE 文件格式。

之后学习反编译工具 IDA,学习 IDA 的一些根底操作,查找字符串、查找函数、图形模式和非图形模式的应用、反编译成高级语言 F5 性能等。

第八周:HOOK 技术

这一周学习 HOOK 技术,HOOK 技术是搞二进制平安和内核技术方向的基本功。

学习常见的 HOOK 技术原理,并编程实际:inline HOOK、IAT HOOK、Windows 音讯 HOOK。

第三个月:Windows 内核入门

进入第三个月,开始全面接触 Windows 平台零碎编程的这一套货色,为进一步学习内核打前站。

第九周:零碎编程深刻

学习 Win32 编程,把握 DLL 编写、文件读写、文件遍历、过程遍历、线程遍历、模块遍历、近程线程注入等根底操作。

通过这些编程,相熟 Windows 上过程、线程、模块、句柄等根底概念,理解 kernel32.dll、user32.dll、ntdll.dll 这些文件是做什么的。

学习应用工具:ProcMon 监控过程行为。

第十周:x86 内核根底、内存治理

这一周开始接触内核的基础知识,从 x86 的特权级别和内存治理形式动手,理解古代操作系统和 CPU 治理内存的底层原理。

学习 x86 平台特权级 Ring0-Ring3 模型,理解分段式内存管理机制、分页式内存管理机制,虚拟内存原理。

第十一周:Windows 过程与线程常识

这一周,学习 Windows 内核中治理过程和线程的常识,学习过程和线程的根底数据结构 EPROCESS、ETHREAD、PEB。

重点学习:Windows 创立一个过程的根本过程,细节能够不必深究,但根本流程要晓得,有哪些要害的步骤。

这一周实现后,对一个过程在 Windows 零碎中是一个怎么的存在,从应用层到内核,有一个根本的意识。

第十二周:零碎调用、中断与异样

这一周,重点弄懂零碎调用和中断与异样两个最根本的内核概念,弄清楚它们的具体过程,Win32 API 进入内核的门路和原理,内核散发零碎调用的 SSDT、SSDTShadow,散发中断的 IDT。通过查看内核源码剖析具体过程。

这一个阶段,能够联合微软已经开源的 Windows 局部内核源码 WRK 来学习。

第四个月:内核技术进阶

进入第四个月,正式进入神秘的内核区域实战了!

第十三周:驱动开发入门

这一周,终于要开始正式编写 Windows 驱动啦!

首先学习应用 WDK 开发 Windows 内核驱动的根本步骤,理解 DriverEntry 函数、DriverObject、DeviceObject、SymbolLink、IRP 这些基本概念。

而后学习驱动装置加载和卸载,同时学会应用工具加载和本人编程加载。

同时,学习内核日志输入,应用 DebugView 查看驱动输入的日志。

最初,把握 VirtualKD + VMware 进行虚拟机内核调试,学会调试本人的驱动程序。

第十四周:ARK 工具应用

这一周来学习一下 ARK 工具的应用,如 PChunter,学习应用这些工具查看内核中的过程、驱动、零碎调用表、内核钩子、应用层钩子等信息,并对前几周学习的内核常识进行温习坚固。

第十五周:内核编程

这一周持续来深刻学习内核编程,把握应用 DeviceIoCtrol 与内核通信的编程,把握内核中内存调配与开释。

学习内核的一些根本过滤框架和回调告诉(过程、线程、模块、注册表等),实现一些平安进攻性能(如过程爱护、文件爱护、注册表防护)。

第十六周:Rootkit 技术

这一周,次要来学习一些 Rootkit 常常用到的技术:文件暗藏、过程暗藏等。

学习内核中一些要害数据结构:比方 SSDT、IDT、GDT、全局过程列表、全局驱动模块列表、关机回调等,编程操作对这些数据结构进行操作(HOOK、Patch、断链等),通过批改内核数据结构,达到暗藏、回写等性能。

最初,再学习理解下 64 位下内核技术的一些区别,学习理解 PatchGuard。

举荐学习材料

1、《windows 外围编程》

2、《深刻解析 Windows 操作系统》

3、《天书夜读: 从汇编语言到 Windows 内核编程》

4、《寒江独钓 windows 内核平安编程》

5、《Rootkits–Windows 内核的平安防护》

总结

以上就是四个月入门内核平安的学习路线了,须要阐明的是,四个月的工夫可能还是不太够,很多货色只能学个皮毛,但足够大家摸到这个门槛了。

大家在学习的时候,能够联合本人的理论状况进行缩短和减少学习工夫。

比方你对 C 语言曾经有根底了,就能够跳过这一部分。又比方你感觉汇编局部,一周不够,那就多加一周,适宜本人的节奏就好。

大家对这份学习路线有什么疑难都能够在评论区通知我哦。

下面的 学习材料 ,以及Web 平安学习路线图& 入门学习视频
我曾经整顿好了,须要的能够 点击下方 即可支付

【Web 平安学习】

正文完
 0