|
|
现在的网络在线教学会教你写驱动、写应用层代码、写界面、还会教你玩逆向、以及一些调试技巧。但在安全软件开发领域,却没有教程会教你从实际的项目角度去切入,如何灵活的应用这些知识,最终打造一款安全产品出来。它涵盖了通过对安全趋势感受选择方向,确定后分析威胁(分析大部分样本)归纳其共性后,进而推导出防御思路,单调的防御思路还不足以形成产品,此时需要思考还需添加哪些功能才能使其足够成熟,能够满足基本产品级要求。再对所有功能进行归纳划分,最后产生成熟的架构。再根据架构开始进行驱动、应用层、界面的代码编写,这中间踩过的坑,遇到的坎,都将为大家呈现。看到这里,估计你的心中也有点了然了。
A- d: C; A) e7 j) n课程内容:. A2 C I) d9 K* t
1.1 课程简介
D1 v8 N# g9 j3 C4 t1.2 预备知识与学习方法
8 Q5 `- q. p- ]/ k1.3 勒索病毒流行原因分析- k/ r0 W5 ^7 g5 Y5 |' G" o, S
1.4 我的防勒索演进过程
7 ?7 o- L% W5 R' v5 P2.1 功能的添加、细化与补充3 q+ o3 X% x/ K9 W
2.2 细化功能的归类与整合" Y4 T% T" ?' v" t* P$ i: K! i& W8 G
2.3 最终架构与核心流程
) j' f4 n8 N9 U# T; V2.4 终结者源码编译:
9 ]2 B0 P* q3 }( d' n2 c( h3.1 Windows服务程序标准框架讲解
# W7 O( F5 p' [0 J) \3.10 服务与界面通讯的初始化流程
4 }5 X; g$ Z+ ?& G3.11 通讯建立及配置更改流程讲解
. b8 q! ^8 z/ l* }/ V3.12 威胁与无响应消息回调流程
7 X5 |" F3 \0 X# {3.13 心跳消息流程与关键点回顾( C1 U# j7 r+ b C6 w% R" n# r0 L$ Q
3.14 诱饵文件与清除接口源码讲解' d: y; \$ k+ I: x
3.15 驱动接口与杂项源码讲解
$ g1 h3 `) a" m4 E& s, M& \7 L3.16 缺点分析与重构建议
5 P; L$ ^8 j! S# w! @+ B5 U: P3.2 Windows服务程序排错技巧
* w5 V: {; t& v5 ^: ]3.3 安全产品DLL导出表处理- S' i6 x* s1 m, a
3.4 终结者接口、开发与阅读流程
6 N5 i+ r5 R$ z, H2 X2 [3.5 服务主线程与三种启动流程' {* Q/ W; L* p& {/ m- R
3.6 配置文件的处理
$ t9 ~9 t( |$ e" i3.7 核心配置文件类的源码解读0 ]/ z; a; Y' p7 N+ x& _
3.8 服务创建进程之逆向工程
1 ^4 c9 D/ [( E. i3.9 服务创建进程之扒后处理 N2 ?% }4 [8 N0 V+ g# A
4.1 驱动接口模块的初始化流程 S1 e( Y( Y! ]% \5 e! V7 x
4.2 驱动握手算法与接口讲解& n7 J1 S7 K9 @/ N3 b: k; N' P& |
4.3 回调流程与接口说明
" S& p* f7 e7 [5 {9 e5.1 驱动开发环境的选择与搭建$ M! r8 X$ H# ]+ o# W* f
5.10 如何安全的进行HOOK卸载* i1 s2 I6 R5 @ M2 O; z9 T/ P
5.11快速理解SFilter框架
6 M( O# p* }4 L9 F/ Y: Y- U6 D5.12 终结者驱动框架与功能概述& t# k. E0 K7 I$ H
5.13 RWTBase框架与例程处理& D7 K- P- b: H6 Q( I f
5.14 MBR保护与函数导出
$ T6 r2 [/ h" u/ P5.15 RWTKrl驱动入口点执行流程' J8 j$ M) o h: e8 y
5.16 系统重启时RWTKrl保护配置的读取流程
7 n& q( ]- g: [5 |; u, U+ e& E" F; m# X5.17 规则的数据结构及其运作方式7 @( V+ Q/ h+ i/ [
5.18 GenericTable在驱动中的使用% W, o" z" ?4 S; W4 i0 L
5.19 威胁回调消息的运作流程
/ E% R7 @5 D" I4 j8 ?5 L5.2 WinDbg内核调试初步7 Y& b8 a" A2 N' |4 N9 Q
5.20 _ExInterlocked_XX_List在项目中的使用& j! U. J( ?; s! Y. P7 ]$ z m# I
5.21 自我保护的运作流程
2 o$ U2 }3 \" y9 v4 L0 x- k5.22 Create分发函数的处理流程
- K0 _- x3 ?# C5.23 SetInformation分发函数的处理流程3 M/ q+ J; u5 X3 L/ ~3 |+ _7 T
5.24 其它分发函数的处理流程
% t3 e( ^, h- Y) C% X8 z8 i$ L+ X5.25 备份的核心逻辑与初始化
7 n6 v2 g" ?3 d$ g5 {5.26 备份核心逻辑的具体实现 O% m4 A- R+ @5 j0 S) M
5.27 获取备份信息的具体实现
4 X! F( U" e4 C3 A8 A5.28 备份接口与其它杂项说明/ @- x9 r6 B- T8 ^' Q7 K2 f! d
5.29 驱动部分的课后作业: [" e3 L* _& B6 w2 \7 W
5.3 WinDbg内核调试实践
; e3 f; [0 q6 Y' R! I5.4编写Windbg脚本来达成调试目的
. @4 i3 w) ?& e& V) I; d9 S5.5 使用Verifier验证驱动稳定性
& F* J" O+ Y H6 F5.6经典HOOK与异常捕获9 {8 ]$ O3 `, o6 H$ A0 j
5.7 安装HOOK的注意事项
( w( E, e5 [& _9 P* O4 Q6 P5.8 InlineHook的各种大法(一)+ z. y" x8 e/ W9 i7 J# r+ o: z
5.9 InlineHook的各种大法(二)
. f! i" f g% m0 W# |# g3 F6.1 清除模块的初始化与还原点
, F$ }2 ]/ G" T) E W9 C- N3 A6.2 还原清除的运作流程
% c! z# t: ^% e2 E& N3 {: J0 y6.3 清除模块其它功能梳理与课后作业
4 f- ^- _" H0 M5 I6.4 守护模块的运作流程与课后作业, V2 @' L2 B1 f2 ?+ H. l- H
7.1 界面进程的几种启动流程' H' W$ c4 O9 h, J0 W& c
7.10 界面的整体框架梳理
. k+ k: l) m( ^2 R7.11 左边树形控件的布局与源码剖析
' r9 f. f- y0 H( f7.12 摘要页的布局与源码剖析% l' j, V8 c6 |4 B% F6 G7 I
7.13 陷阱设置页的布局与源码剖析
5 s: K4 J/ d4 t# M5 k0 q9 Z7.14 备份设置与类型管理页的源码剖析
- i. c/ D2 I" j, ]$ N. H2 H7.15 文件保护管理页的布局与源码剖析- L: g- q1 ^( c
7.16 备份文件导出页的布局与源码剖析1 {. Y; {& M: _! M- T
7.17 手动清除页的布局与源码剖析6 B0 o7 l8 q5 F& c, @5 ^% }2 m
7.18 清除日志页的布局与源码剖析
# ?5 Z7 n3 A4 k/ ?# m4 O0 Z4 {7.19 威胁警报页的布局与源码剖析
# l+ j7 J$ J8 C7 J0 Y% p m; a7.2 SOUI生成的框架代码剖析 l8 h, B9 X& V3 |) F6 Y
7.20 文件保护回调页的布局与源码剖析& g& n1 l4 \. c$ ~: ?" R% o& [$ y
7.21 其它页面的布局与课后作业
0 i% @; y3 m7 @9 o* c0 S3 ?7.3 SOUI中图片资源与对话框的使用方法 h+ u0 r0 F9 j& m3 S& Y* X
7.4 SOUI的锚点布局与TabCtrl控件9 K1 F" u& w7 h O
7.5 SOUI中编写自定义控件5 y8 {2 t8 `* ~1 H+ {( H
7.6 保护密码引导页的布局与源码剖析9 {! Y& }) y5 i& Y/ [' Q0 N
7.7 备份磁盘选择引导页的布局与源码剖析`: E3 w* U* l1 |% e4 C
7.8 备份文件上限引导页的布局与源码剖析4 h: w$ S* L( r3 C' f
7.9 其它引导页与第一次正式启动流程) t4 U5 a4 h8 w9 o* R5 Q
8.1 卸载程序的运作流程!5 e6 v- X5 s0 c" I
8.2 安装包的页面布局与杂项说明: C5 v3 {2 d9 L2 S& x: `8 }
8.3 安装包的运行流程与源码剖析( n, K9 V* ]# B. s+ s" j
8.4 遗留问题与课程最后的话/ F) ]: [2 q' m: K: T! x
& a. N, a0 o! r* m9 f
|
|