滴水中级班课程目录


购买请联系QQ: 770612230


教学大纲

中级培训班(共六个月)

第一阶段 基础知识(1个月)

1.1 寄存器汇编指令( MOV lea add sub mul div movsb/w/d rep stosb/w/d)

1.2 寄存器汇编指令(pop push xchg jmp call ret)

1,3 寄存器与内存

1.4 标志寄存器 EFLAG

1.5 函数与汇编

1.6 用汇编调用函数(不用CALL调用函数)

1.7 C与C++

1.7 C语言表达式

1.8 C语言函数调用及if else与switch语句

1.9 C语音循环语句

1.10 C语言数组

1.11 C语言结构体

1.12 C语言指针

1.13 数组指针和指针数组

1.14 C语言函数指针

1.15 C语言数据结构1

1.16 C语言数据结构2

1.17 定长编码

1.18 变长编码1

1.19 变长编码2

1.20 组编码

1.21 前缀

1.22 0f开头两个字节编码

1.23 PE结构1

1.24 PE节表(加节,扩大节,合并节)

1.25 PE 输入表

1.26 PE 输出表

1.27 PE 重定位表

阶段目标:

1、手动脱壳(至少3个).

2、代码注入,COPY执行.

第二阶段 保护模式-段寄存器-页(1个月)

2.1 段寄存器构成

2.2 保护模式 GDTR IDTR

2.3 GDTR,IDTR均为48bit结构体

2.4 超线程与多核

2.5 保护模式 获取段寄存器的值

2.6 保护模式 GDTR.ATTRIBUTES

2.7 保护模式之修改段寄存器

2.8 保护模式 调用门

2.9 保护模式 中断门 陷阱门

2.10 保护模式 CS:EIP

2.11 保护模式 RETF,IRETD

2.12 保护模式 门Dword Count

2.13 保护模式 任务门

2.14 保护模式 3环进1环

2.15 保护模式 10-10-12 分页

2.16 保护模式 PDT PTE

2.17 保护模式 页的特点

2.18 保护模式 TLB

2.19 保护模式 异常与保护

2.20 保护模式 2-9-9-12

2.21 保护模式 CR0~CR4

阶段目标:

1、实现调用门,画堆栈图.

2、实现中断门、陷阱门,画堆栈图.

3、通过门进1环.

4、随意指定任意存在的物理页,并实现可读可写.

5、物理页挂钩子.

6、应用层直接调用高2G函数.

第三阶段 操作系统(3个月)

3.1 操作系统 模拟线程切换

3.2 操作系统 进程线程结构

3.3 操作系统 进程线程链表

3.4 操作系统 TEB PEB

3.5 操作系统 kpcr 结构

3.6 操作系统 TrapFrame 结构体

3.7 操作系统 SSDT 表

3.8 操作系统 驱动详解

3.9 操作系统 swapcontext函数

3.10 操作系统 SwapContext函数

3.11操作系统 ntReadVirtualMemory

3.12操作系统 kiSwapThread

3.13操作系统 kiWaitListHead

3.14操作系统 对象句柄及线程等待快

3.15操作系统 线程等待机制

3.16操作系统 等待块及SetEvent 函数

3.17操作系统 keWaitSingleObject函数

3.18操作系统 APC机制

3.19操作系统 kiDeliveApc

3.20操作系统 Apc函数的调度时机

3.21操作系统 异常处理

3.22操作系统 kiDispatchException函数

3.23操作系统 3环异常处理过程

3.24操作系统 回调机制

3.25操作系统 句柄

3.26操作系统 对象句柄

3.27-3.41项目(内核重载)

3.42操作系统 调试机制

3.43操作系统 DebugObject 结构

3.44操作系统 创建调试对象函数

3.45操作系统 发送调试消息函数

3.46操作系统 DbgKpSendApiMessage 函数

3.47操作系统 调试寄存器

3.48操作系统 挂钩DbgKpSendApiMessage

3.49操作系统 文档视图

3.50操作系统 消息机制

3.51操作系统 消息机制

3.52操作系统 消息机制

阶段目标:

1、自己实现一个API的3环部分.

2、线程切换逆向分析.

3、API 3环进0环、0环出3环逆向分析.

4、自己写内核函数,并挂到SSDT表.

5、构建自己的SSDT表.

6、线程调度逆向分析.

7、APC逆向分析.

8、异常体系逆向分析.

9、调试体系逆向分析.

10、消息机制逆向分析.

第四阶段 毕业课题(1个月)

1.xuetr 内核工具

2.3环调试器

2个任选,也有可能做别的逆向工程.


















上:



课程大纲:

保护模式:

01、保护模式

02、段寄存器结构

03、段寄存器属性探测

04、段描述符与段选择子

05、段描述符属性_P位_G位

06、段描述符属性_S位_TYPE域

07、段描述符属性_DB位

08、段权限检查

09、代码跨段跳转流程

10、代码跨段跳转实验

11、长调用与短调用

12、调用门

13、中断门

14、陷阱门

15、任务段

16、任务门

17、10-10-12分页

18、PDE_PTE

19、PDE_PTE属性(P_RW)

20、PDE_PTE属性(US_PS_A_D)

21、页目录表基址

22、页表基址

23、2-9-9-12分页

24、TLB

25、中断与异常

26、控制寄存器

27、PWT_PCD

线上班:

跨进程监控:不打开被监控进程就可以知道它做了什么事情

系统调用:

01、API函数的调用过程(3环部分)

02、API函数的调用过程(3环进0环)

03、API函数的调用过程(保存现场)

04、API函数的调用过程(系统服务表)

05、API函数的调用过程(SSDT)

线上班:

SSDT HOOK 实现进程隐藏:在任务管理器中不可见/用正常API查不到

Inline HOOK 实现进程保护:无法关闭

进程与线程:

01、进程结构体、线程结构体

02、KPCR

调度链表

04、模拟线程切换

05、Windows线程切换主动切换

时钟中断切换

07、Windows线程切换时间片管理

08、Windows线程切换_TSS

09、Windows线程切换_FS

线程优先级

11、进程挂靠

线上班:

跨进程读写内存:不用Windows函数

强制进程结束:干掉主动防御

驱动开发:

01、配置驱动开发环境

02、编写、部署、运行驱动程序

03、驱动程序调试

04、0环与3环通信

05、内存

06、字符串

07、文件

08、进程

句柄表:

01、句柄表

02、全局句柄表

线上班拓展应用:

隐藏进程遍历:找到一切隐藏进程

反调试系列:句柄表

APC机制:

01、APC的本质

02、备用Apc队列

03、APC挂入过程

04、内核APC执行过程

05、用户APC执行过程

线上班拓展应用:

APC注入

阶段项目:

搭建自己的0环-3环调用框架,实现不依赖API、不依赖系统调用、不依赖系统内核函数,从3环到0环完全自己实现:

<1> 重写3环API

<2> HOOK KiFastCallEntry函数(或者HOOK 360相关函数) 接管3环请求

<3> 创建并使用自己的SSDT表

<4> 实现自己的内核函数,并挂到SSDT表中





课程下:

中级班下:

事件等待:

01、临界区

02、自旋锁

03、线程等待与唤醒

04、WaitForSingleObject函数分析

05、事件、信号量、互斥体

线上班拓展应用:

多核HOOK

异常:

01、CPU异常记录/模拟异常记录

02、内核异常的处理流程

03、用户异常的分发

04、VEH、SEH

05、编译器扩展SEH

06、未处理异常

线上班拓展应用:

反调试系列:异常

软件调试:

01、调试框架搭建

02、INT 3异常处理实现

03、内存断点实现

04、硬件断点实现

05、单步步入实现

06、单步步过实现

07、调试内核函数逆向分析

线上班拓展应用:

普通版3环调试器:使用API实现

反调试系列:调试API

内核重载:

01、内核重载

内存管理:

01、内存管理

消息机制:

01、消息机制

内核回调机制:

01、内核回调机制

线上班阶段项目:

01、加强版3环调试器:

<1> 不依赖3环API、不依赖系统调用、不依赖系统内核函数.

<2> 自建调试体系(不用重载内核、不依赖DebugPort、不依赖调试线程)

<3> 无痕HOOK实现自主异常分发



02、内核级系统防护软件

<1> 内核级进程、线程检测(包括隐藏进程和隐藏线程)

<2> 内核级驱动模块检测(包括隐藏驱动模块).

<3> 挂钩检测:SSDT、键盘、内核、中断表

<4> 系统监控:进程监控、注册表监控、驱动模块监控





中级上

保护模式:

01、保护模式

02、段寄存器结构

03、段寄存器属性探测

04、段描述符与段选择子

05、段描述符属性P位_G位

06、段描述符属性_S位_TYPE域

07、段描述符属性_DB位

08、段权限检查

09、代码跨段跳转流程

10、代码跨段跳转实验

11、长调用与短调用

12、调用门

13、中断门

14、陷阱门

15、任务段

16、任务门

17、10-10-12分页

18、PDE_PTE

19、PDE_PTE属性(P_RW)

20、PDE_PTE属性(US_PS_A_D)

21、页目录表基址

22、页表基址

23、2-9-9-12分页

24、TLB

25、中断与异常

26、控制寄存器

27、PWT_PCD

线上班:

跨进程监控:不打开被监控进程就可以知道它做了什么事情

系统调用:

01、API函数的调用过程(3环部分)

02、API函数的调用过程(3环进0环)

03、API函数的调用过程(保存现场)

04、API函数的调用过程(系统服务表)

05、API函数的调用过程(SSDT)

线上班:

SSDT HOOK 实现进程隐藏:在任务管理器中不可见/用正常API查不到

Inline HOOK 实现进程保护:无法关闭

进程与线程:

01、进程结构体、线程结构体

02、KPCR

调度链表

04、模拟线程切换

05、Windows线程切换主动切换

时钟中断切换

07、Windows线程切换时间片管理

08、Windows线程切换_TSS

09、Windows线程切换_FS

线程优先级

11、进程挂靠

线上班:

跨进程读写内存:不用Windows函数

强制进程结束:干掉主动防御

驱动开发:

01、配置驱动开发环境

02、编写、部署、运行驱动程序

03、驱动程序调试

04、0环与3环通信

05、内存

06、字符串

07、文件

08、进程

句柄表:

01、句柄表

02、全局句柄表

线上班拓展应用:

隐藏进程遍历:找到一切隐藏进程

反调试系列:句柄表

APC机制:

01、APC的本质

02、备用Apc队列

03、APC挂入过程

04、内核APC执行过程

05、用户APC执行过程

线上班拓展应用:

APC注入

阶段项目:

搭建自己的0环-3环调用框架,实现不依赖API、不依赖系统调用、不依赖系统内核函数,从3环到0环完全自己实现:

<1> 重写3环API

<2> HOOK KiFastCallEntry函数(或者HOOK 360相关函数) 接管3环请求

<3> 创建并使用自己的SSDT表

<4> 实现自己的内核函数,并挂到SSDT表中

中级下

一、知识点:

1、并发与同步

2、异常

3、软件调试

4、消息机制

5、内存管理

二、实战项目

实战项目一:

项目:控制台版本调试器

要求:

1、所有调试用到的API(除了内存分配),全部自己实现。(非内核重载,而是自己实现)。

2、使用代码COPY执行的方式对操作系统的重要函数进行HOOK,以绕过代码校验。

三、实战项目二:

项目:仿 xuetr 内核工具 的实现

实现xuetr的所有功能,但核心的功能要实现:

进程模块

驱动模块

内核模块

内核钩子模块

应用层钩子模块

附《学习路线图》

原文链接: 滴水中级班课程目录 版权所有,转载时请注明出处,违者必究。
注明出处格式:流沙团 ( https://gyarmy.com/post-292.html )

发表评论

0则评论给“滴水中级班课程目录”