|
|
课程大纲:) E' [2 M6 V$ \+ e- K' w
01 内存管理9 J3 l( a3 A# L4 t2 i* s% E' e
02 保护模式
* [& K0 X% T2 [8 y! F8 G03 进程与线程
% [# S* E# z% t% _! C04 异常
, t1 I7 ]. n; V, H! ~3 M* ~6 ]05 APC机制* _1 l' b, ?% `* b1 h% ]" c
06 软件调试
8 y! Y0 S+ @# E# W* B' Z07 句柄表( [( g/ H) @+ F" E5 \% | p. a
08 驱动开发& f- w4 ^! T9 }" y O9 R6 \3 v
09 事件等待8 U! f6 j4 T* ^2 I4 {& @
10 系统调用
# [7 Y2 C3 `' j7 I0 ]2 T7 T- L( ^% N11 消息机制
! e: b: ~+ ]/ Q2 Z7 u/ q$ ?3 Y2 m( j, _
1 w/ z( w* l. P1 e1 _* ?, T; l课程目录:
A: h6 t! v" O/ K5 x5 I1 l$ [(一)内存管理6 t. v4 k6 a' ~1 D( C
01、线程地址管理
) X4 T* T$ A' f8 ]2 w/ W4 Q02、Private Memory
0 l; X2 R& x2 M- I w+ `! K { K03、Mapped Memory. i, p2 L' ]- w! [8 x F" w- _( k
04、物理内存管理+ X/ _' i: s* ]+ X$ E
05、无处不在的缺页异常
7 p/ w' }' P8 T5 F, \- r2 b* u! v# K% l
(二)保护模式
* ?" C5 \+ _6 Y001、保护模式. s5 x: b! x) [9 k- l: o
002、段寄存器结构
0 C2 I$ T5 e, M/ y9 z7 D003、段寄存器属性探测
3 T% e' f" t' i, W6 A005、段描述符属性_P位_G位0 `$ l8 Z) [3 i: q( f4 j3 x
006、段描述符属性_S位_TYPE域$ ] k, w$ X8 J M% i2 U
007、段描述符属性_DB位
3 d( n& i& j$ M008、段权限检查
( B) [; d9 ]7 O+ V$ K009、代码跨段跳转流程
. d- J6 H* B& E" r% h8 E& F( I010、代码跨段跳转实验
8 n& M. F/ ?& G3 E; }011、长调用与短调用
5 \! j; n- a0 \012、调用门(上)
% X$ `! Q' i+ d! j0 w, Q: U013、调用门(下)3 F7 ]+ k3 S9 M, r0 r! A
014、中断门; g) a+ {6 H! g3 |& A q# K
015、陷阱门) ^8 u7 \0 c; U/ s* o" h/ d5 ^
016、任务段(上)% J; N% c9 d" c5 q: B
017、任务段(下)
7 {8 v9 B. e+ Q: B0 C# s3 ~' V018、任务门
8 v. a/ v$ h, U) Q1 a020、PDE_PTE
: D0 b2 w! i! R# o. x$ Q3 h8 N021、PDE_PTE属性(P_RW)2 v6 P0 X! r6 [* l( t5 Y
022、PDE_PTE属性- O4 G. M" c9 U! K& n1 ~, [
023、页目录表基址
8 t; `0 U P/ Q; Z+ Z: D024、断面描述符与段选择子$ ~. y9 q8 H& h t$ }
025、2-9-9-12分页! v7 f4 w% P4 ?5 |+ c2 H. h
027、TLB9 ~7 |* Y3 H$ u, I( h
028、中断与异常) c* Z+ I; W$ \5 ?$ j
029、控制寄存器* {5 G$ E+ k: X. }
030、PWT_PCD属性
; D! c0 l1 n9 P7 L& u" i6 q0 }) w1 M; X031、保护模式阶段测试
+ ^9 u/ v' w+ O2 W# F* U3 l; `
o! J3 Z3 ]/ |/ A0 S8 c, C/ |(三)进程与线程
) b# {+ }$ N3 T: U$ K001、进程机构体& W7 d& e' P) }6 k2 m
002、线程结构体) l0 o; z- C8 |: k; B
003、KPCR
. R# u- i5 K( c1 [% a, x004、等待链表_调度链表7 M6 R# D, @8 M* i% S
005、模拟线程切换
7 c; w6 m- y# a. Q) Q3 b; ^, V006、Windows进程切换主动切换, t. }! o% Z0 p" f8 ?1 c
007、Windows线程管理时钟中断切换6 Z7 f6 a' J: U$ L
008、Windows线程切换时间片管理$ y# R7 R8 D _% h, D
009、Windows线程切换_TSS
3 A) J. n: j, v P0 {; e& I6 G3 T010、Windows线程切换_FS
1 y K& h3 s2 Y' ^011、Windows线程切换_线程优先级
" d& L* ~ l" x. @$ C& O7 W012、进程挂靠" y) ]4 z+ o5 `( y( ~5 g+ y* g( j' z4 G
013、跨进程读写内存: p+ {7 ?, J( b+ }* c8 ~
5 I: F- u' |9 C* p(四)异常4 P8 y9 T" d5 B% C% r" `! Z+ t
01、CPU异常记录9 P5 P3 F+ A; w
02、模拟异常记录
0 Z) e/ a$ o* Z s, W03、内核异常的处理流程 `1 Y: C- u% E
04、拥护异常的分发! C X9 }' V5 l( ]+ @0 r6 Z/ N
05、VEH
( g1 S; q: x& h/ t9 Q% w06、SEH q0 q% ?9 ^5 V0 r5 R
07、编译器扩展SEH课堂代码_1
( u- ?" q3 y5 S! V. R9 L08、编译器扩展EEH_2
5 [: ~. g9 c4 G( g G09、编译器扩展EEH_3* I9 \: N8 F* \" J0 V5 W3 b, H
10、编译器扩展EEH_4/ o) q( p8 m6 F& `2 T. }. }+ ?
11、未处理异常
# \2 k# u' {9 @3 W( b3 ]2 _' x1 H/ l& y. r
(五)APC机制5 U; c6 g3 _" d6 y
01、APC本质
* w4 q# q9 ~) D3 m02、备用APC队列 q0 r( a+ C: X; v; ?7 g
03、APC挂入过程' @1 o! E! N' \0 t- \ t
04、内核APC执行过程
5 F) q" q9 K1 n9 A05、用户APC执行过程; |) K" X, Y) O6 H5 F
+ X" V( T7 j$ ?% q(六)软件调试
* B. b( u2 |" F( b( p' o M. e01、调试对象
}; \3 h8 x3 w y" z! `$ {6 G! c02、调试事件的采集
. A; s4 G* R3 F9 E) m) }) q03、调试事件的处理0 ?% o* G* P2 B! {# B
04、异常的处理流程! t% F) I: q& P+ u( C' a
05、软件断点+ b% M8 T/ N; g# T# d6 J
06、内存断点. N/ I# G# U! j4 e$ h4 n2 N
07、硬件断点3 q8 `9 s( V: z2 m$ B7 ^
08、单步异常) x" K. i1 i6 I$ C9 D
09、单步步过7 }, i% }6 s. d! J2 f0 ^
10、硬件HOOK过检测& i/ C3 b- y' u% r1 X
( B8 l" T) J( g" e(七)句柄表4 v$ @! O5 j( q( a" A/ m, P
01、句柄表6 c( d9 I6 R2 g+ ^* ?/ N
02、全局句柄表
9 F5 w6 ^ O M4 K( Z* J4 B; s8 y7 J
$ [# f5 u" i, K8 C/ j(八)驱动开发- i5 H5 D, f; t3 z. H+ Z9 \& r( K
01、驱动开发环境配置9 d9 F6 l6 Q1 X/ f
02、第一个驱动程序
, g$ x8 d* x& k& i5 f03、如何调试驱动程序) r! r9 b, J& J. [1 Q7 F% ]
04、内核编程基础9 r$ m* L* M: I% v
05、内核空间与内核模块
$ ^) O9 L* y: @2 I- t! b: V n06、0环与3环通信
9 v) X3 w. W2 ]3 Z$ Y5 h07、SSTD HOOK
n# d* |7 l: j, ]2 L b08、INLINE HOOK
" Z X( s' J/ W2 H1 L09、多核同步之临界区
* n1 ]6 P* I* h: M4 ?2 i10、多核同步之自旋锁
8 ]& s* ^+ Y# \9 J; Q, |) u6 o11、重载内核 X a+ s) W; g* Z1 Q2 o
! i4 N2 [# G6 M; F. m v0 ~- S& S# d
(九)事件等待6 q! c, \. Q: O9 b
01、临界区7 D% k9 w- i+ ^, Z3 `
02、自旋锁
- h; X; B" n) }. a( m2 v6 v03、线程等待与唤醒3 Q6 o) L5 {+ o H9 P0 I
04、WaitForSingleObject函数分析! Y5 a% U. Y2 A* [
05、事件
& y+ e" w, r, O2 d* `1 Y& B0 r4 A06、信号量. p4 X! [- ~1 o, }. N5 r9 l. X+ `7 ]1 v
07、互斥体
; ^/ {6 g% g! A8 I2 P: Y/ N+ Y0 K. c D6 ?
(十)消息调用, J& {3 Y1 z: A* B
01、API函数的调用过程(3环部分)! [1 |8 E: s# u' J& ~ B3 p& ^
02、API函数的调用过程(3环进0环上)3 U' P7 V1 _$ }. f- ?4 T. m
03、API函数的调用过程(3环进0环下)
2 ^, K9 X' B" x9 b04、API函数的调用过程(保存现场)& ?/ I4 _9 c: I5 B& J" Y
05、API函数的调用过程(系统服务表)" n1 n! {+ I0 z( B: P: K* e( Q- d
06、API函数的调用过程(SSDT); K# K! Z3 r2 m* I4 o- |6 V- y& @; m
$ x: ?1 n% r0 J: C(十一)消息机制/ O0 O( b$ U8 \ L
01、消息队列在哪0 T# j8 @0 }& w1 V1 E
02、窗口与线程: F9 V# g. f$ I( V' r E: z |
03、消息的接收+ ?: Y8 P0 H4 Z
04、消息的分发. K7 i3 b- m/ X$ }
05、内核回调机制. k9 C! f6 p ]& O3 h0 i* G1 H/ T" A
; d" H& i; q+ t |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|