|
rgb适合人群:
8 R$ f+ q4 `# @/ |windows开发程序员,windows开发入门者,大学生,IT转行人员,退伍军人转业& v' E+ H- V/ A/ H+ C1 P/ \
, A6 V. }& N' \- W0 h* T
课程目标:
% Y7 }# J; \2 G4 v/ V6 a通过课程的学习学习以下内容:1. 同步异步IO的原理及编码技巧。2. 线程池的工作原理及编码技巧。3. 动态链接库的原理及调用方式。4. C/C++、C#、VB、Python等语言调用动态链接库的编码技巧。5. 注入DLL的四种方法。6. 拦截API的原理及编码步骤。* y$ B9 y- ~; W! a# ]2 |
! X6 Z* |% |) T8 g
课程简介:+ R' N' D f& s
本部课程共分5章,涵盖了同步异步IO、线程池、动态链接库、注入DLL、拦截API五个主题。学习后可以彻底俯视众多windows初级程序员,尤其是众多专业工具的使用,如:dumpbin、debugview、processexplorer等,可以使你的技术素养再上一个台阶。
: V% m! Z8 m9 Q0 ^) t+ n7 h) D' p8 |课程从原理入手结合大量编码实例讲解了以下具体内容:. g/ b3 v" R% r" b5 J; ~
1. 在windows中如何处理同步异步IO,如何通过debugview进行本地和远程调试。4 [+ E' Y' D5 c2 v
2. 线程池调用的四种方式:异步方式调用;周期性调用;内核对象触发调用;异步IO触发调用。
" E1 N- A: O+ {; C3. 线程池同步的五种方法:Interlocked族函数;临界区;事件内核对象;互斥量;信号量。
# w( H7 G0 n/ E) K4. 线程池资源判断及定制。+ o1 I* r, x8 u `
5. 动态链接库的编写及导出技巧。
. w8 P' [& L; O% g' |. |! ~6. 使用C/C++隐式和显式调用方法。9 s! @- R& ]& E3 i9 H( p0 d
7. 使用C#、VB、Python等多种语言的调用技巧。
0 @) L/ ^/ k0 f6 q; w% b, |8. dll类库工业化设计技巧。" W. ^0 r j3 V
9. 注入DLL的四种方法:注册表法;函数转发;设置挂钩法;远程注入法;
1 k2 _5 E& t, s4 @9 S10. DLL的局部钩子、全局钩子、指定线程钩子。8 D) x* a( B; ?2 X
11. 综合利用dumpbin、Debugview及ProcessExplorer等工具分析DLL内部调用关系。
- ^; |2 O. M* D6 W) l12. 拦截API的原理,导入地址列表(IAT),拦截编码技巧。
w! n, M* t- h. R" g13. 注入DLL结合拦截API实例,崩溃到尖叫!!!7 Z: j, i( h" Z# x, ~! v9 `% L% u7 B
# L0 _6 @3 D( s; c( X课程目录:: `3 F$ g4 n& q# Z& N* o, G$ r
第1章 同步异步IO (3小时43分钟 23节)! W" O% u- e. [" L/ n1 [
1-1七日成蝶课程体系说明(2020)[20:53]9 t' u/ I9 K& B6 e3 M0 Y
1-2课程概览,学我所需[03:02]
) C6 U. p0 `- V5 Q6 X1 G1-3(加餐)VS2019下载安装[11:49]
+ Y$ a. W% a5 }1 q2 ]8 ?1 N% K1-4(加餐)VS2019初体验[07:00]4 x( d8 z7 F5 m+ Y& g* |
1-5(加餐)#pragma once与#ifndef[04:18]
- o6 j" N1 ?$ j- s; e4 k; N1-6Windows IO API详解[21:12]& L, }* K5 x6 b% e( C7 |
1-7打开IO设备[08:17]; R" Z: f* o. x; e$ d6 `
1-8写入文件设备[05:22]
# W% J7 E: B1 T3 p E0 J1-9强制写入设备[03:15]
3 Q) j" n/ u0 Y3 @9 C" ~' t! W& ?1-10读取文件设备[06:02]
! a$ |( h3 S+ m; B1 w1-11解决UNICODE编码问题[13:47]% x2 F0 Z9 e8 y; e; Q
1-12获取文件大小[06:56]
2 v1 i* [2 U4 I1-13设置文件尾[07:49]* h# X: ^; G; I7 c! A
1-14异步读写[13:36]# L: V; @3 J* k9 ~
1-15异步读写判断[03:24]
. i8 O8 B) N4 g2 J- I9 J1-16异步完成IO(一)[06:50]
+ O* T% Z+ k$ m1-17异步完成IO(二)[11:40]' K, M z0 M; O6 G0 |: m- ?; ] _: h
1-18异步完成IO(三)[12:40]- U. ^- Z/ d9 H9 z+ V! B
1-19异步完成IO(四)[17:59]+ B# s$ Y: B2 B" o% Q4 r1 ]
1-20异步完成IO(五)[13:49]; R8 z: d" u+ M: _9 B j
1-21异步完成IO(六)[09:30]0 x$ J3 @9 m; |" J
1-22windows调试之debugview本地调试[07:22]
: S6 _+ Y" Z+ c2 g1-23windows调试之debugview远程调试[06:31]4 \- E8 ^; P6 s) N
# ]# Y: s) q4 S5 P
第2章 线程池 (2小时36分钟 15节)
+ k$ t$ c" V1 U% r2-1课程概览,学我所需[04:06]
) n* f& d6 h8 u! t* ^: N1 C2-2线程池原理及API[16:39]
" _0 T# k1 e h% W2-3异步方式调用(上)[08:40]
1 B) j) {2 [! L8 q( Q" T2-4异步方式调用(下)[08:43]
1 p% M2 u$ Z- c2 V2 [2-5周期性调用[30:15]
3 D1 C# W# s$ B- m2-6内核对象触发调用[12:55] L3 ^8 ^, u z& I4 A7 }* v( n
2-7异步IO完成触发调用[15:54]
$ v. ~ v6 K1 N; f0 ^5 E, s0 N2-8线程池同步-Interlocked族函数[08:36]
3 @" P: U: ~0 K, n" C' _" b2-9线程池同步-临界区[08:09]4 h% _! f5 J7 }( X% q" |
2-10线程池同步-事件内核对象[09:14]* [+ H% h! V( {% O0 v
2-11线程池同步-互斥量[04:13]' d& O& k% k5 z1 X% V' {! W
2-12线程池同步-信号量[06:41]
e6 J. H% d4 }! x2-13逻辑完成-解除等待[02:55], Z4 ^" ?5 u. i6 D3 d4 J O
2-14线程资源判断[07:29]
8 r) m$ I$ D1 I6 u, s8 O" o- p2-15线程资源池定制[12:00]4 n! B% R* z' b
4 R( T" p% O3 q# C1 J) ?6 A
第3章 动态链接库 (4小时16分钟 33节)4 R9 _0 Y8 L1 \+ z
3-1课程概览,学我所需[05:47]
. M% O( L$ K$ N4 j! `" s& q; @0 n3-2原理说明与初步接触[31:58]: V% T( D; |- J# A, x
3-3从HelloWorld开始[07:15]0 d! x& U! W! Z7 G
3-4使用dumpbin查看dll和exe[07:05]
* s( }9 _+ M$ x3 R0 ]3-5初始化加载法调用无参Dll[08:19]
1 |' O a c" ~8 J( S3-6初始加载法调用无参Dll[08:19]( m9 a" E) d( N0 t; `
3-7随用随加载法调用动态链接库[11:59]
* |& z* ]9 f# R0 L B3-8导出函数带参数的DLL[08:38]
8 Y" D: }# a% u g6 {+ r9 F- j3-9初始加载法调用函数带参数的DLL[07:39]
X/ S4 V' }8 f# i/ Q( U" ~3-10隐式调用带参函数的dll[09:23]
: r3 c! M; l+ l0 h6 M3-11C++调用C语言DLL的处理技巧[07:30]
+ i6 Y% [- w4 Q7 ?/ D3-12C++生成的DLL与C语言的区别[04:07]( q# r0 _, i* L! {" A7 F
3-13C++调用C++生成的DLL[05:28]
$ Y3 X" \' ^( e; V- i7 v" `$ E- J3-14DLL导出类[05:35]# F! G4 J5 I, _4 ~7 A
3-15C++调用导出类[03:59], g' ~' ~6 w/ c5 j
3-16类库的工业化设计(上)[10:15]7 {8 o1 y$ n0 }# u2 L7 F
3-17类库的工业化设计(下)[11:18]
* v& x$ ?, T# T4 y' [3-18通过向导自动生成DLL[04:22]
0 N B C9 Y1 d8 ?4 o% C3-19入口函数四种情况详解[17:47]
4 b+ v! U) X. d" T! ~& ?3-20安装C#、VB、Python[03:34]9 L3 Q0 `4 w- v
3-21__cdecl与__stdcall[07:37]
5 o" @' }% I: v# y' S- q) S3-22通过def文件规范C语言导出符号[05:07]
& S R" Q( X3 v( G( A3-23通过def文件规范C++函数导出符号[01:56]. g5 ]- Y+ @' w5 O! |/ N
3-24通过def文件规范C++带参函数导出符号[05:03]+ p g7 B/ Y+ E. E. b* m1 b4 w
3-25C#调用C语言编写的DLL[12:41]0 ]6 H- [# T6 } W2 T
3-26C#无法直接调用C++导出的DLL[04:38]3 |0 ^! M+ H l/ q
3-27C#调用def导出的C++动态链接库[02:51]( r" u& u* o. C4 H+ q+ v
3-28C#调用有参导出函数(上)[06:36]" ^7 {+ u- {8 n# F
3-29C#调用有参导出函数(下)[03:18]
- Z; d% `. e3 p8 a0 Z s1 a3-30VB调用dll动态链接库(上)[07:44]
5 \7 A. c" C, N" j& a/ ^3 J3-31VB调用dll动态链接库(下)[10:42]% g5 D& g5 J4 Y' V y4 H y' r
3-32Python调用dll动态链接库(上)[05:38]
7 k6 T/ c/ V/ j: ]3-33Python调用dll动态链接库(下)[02:44]
0 h! O: O' j$ A G
1 n4 }6 L! s8 b1 S# }2 J1 N第4章 注入DLL (5小时25分钟 33节)
% _# ]1 T5 {9 ~2 ?0 A7 `4-1课程概览,学我所需[04:05]
0 H6 w' K3 |0 K0 ]4-2工作原理及技术说明[33:16]
; O6 R: a$ i. W9 S* M6 D6 o- N4-3VS201X的程序如何在windows XP下跑起来[08:25]$ H, H+ @" u" }$ v6 n: z
4-4注册表知识准备[10:11]
+ ^3 Q1 C" K# G1 p6 m* n* }4-5注册表注入DLL(上)[17:03]5 \. m% |+ ~( {6 {0 A
4-6注册表注入DLL(下)[05:42]
+ @: i7 P9 l+ s0 r% J) L4-7DebugView验证注入DLL[07:34]! l( X* o6 F: v) @! `, J
4-8ProcessExplorer验证注入DLL[03:23]: w( _0 l' O5 I: n. ~8 Z
4-9验证win7系统注入DLL的有效性[06:46]
! O+ l! M% p4 p, G" V/ b4-10函数转发注入DLL(一)[10:32]: F- L4 Y6 Y; ^! s
4-11函数转发注入DLL(二)[08:08]
* s2 ]0 L$ j- [! W$ [0 w5 H: f4-12函数转发注入DLL(三)[13:35]
! u' i, R" V* C# k7 y1 w1 X4-13函数转发注入DLL(四)[04:28]
3 L$ a! l$ e5 N4-14函数转发注入DLL(五)[05:07]
& c- M. F) t6 f, s6 H- p4-15通过SetWindowsHookEx注入DLL(一)[11:04]) p, @! t$ T; g: C
4-16通过SetWindowsHookEx注入DLL(二)[22:12]
8 T6 Z6 ^4 O+ G P6 X% a7 D" B W4-17通过SetWindowsHookEx注入DLL(三)[05:50], r/ l* T. ]! h- t8 {8 g
4-18通过SetWindowsHookEx注入DLL(四)[10:01]3 Q. l. o: j" }# M3 s
4-19通过SetWindowsHookEx注入DLL(五)[05:06]
/ u2 I/ d" P: G% Q* x4-20通过SetWindowsHookEx注入DLL(六)[15:10]
" M M6 |$ j! D4 d; x; h4-21通过SetWindowsHookEx注入DLL(七)[12:47]
9 L# K! r1 |, M5 t2 l: L& d4-22通过SetWindowsHookEx注入DLL(八)[07:10]' ]% Z' U* f1 v4 S7 T
4-23全局钩子(上)[06:48]3 N% V; F3 z% _: F4 k R4 G7 N
4-24全局钩子(下)[14:00]: x: R$ h* W; K5 [3 U
4-25全局钩子之共享段(上)[15:20]+ Z7 C) g9 r0 ~4 z' L1 L9 D
4-26全局钩子之共享段(下)[03:50]
" W& |( G5 K: X% ^" I+ m4-27挂钩指定线程(上)[10:01]" Q0 d4 r; N. N; i
4-28挂钩指定线程(下)[03:12]: V9 O e$ q1 f0 |
4-29远程注入DLL(一)[07:03], a$ c2 Q; j- K C+ O$ N7 P
4-30远程注入DLL(二)[21:40]
; M4 Q6 w: q3 a% A. ?5 g7 N* V! g4-31远程注入DLL(三)[07:10]
, z4 r8 l8 D- B1 {/ l0 F6 W4-32远程注入DLL(四)[05:42]+ E% B. d- H* g1 d- e+ [' A+ d
4-33远程注入DLL(五)[03:32]& w- R6 ], h s( G
2 Y' S+ B; o' y- e2 {8 z7 L5 U第5章 拦截API (1小时39分钟 13节)6 b! u1 G- k0 H/ x5 x
5-1课程概览,学我所需[03:03]
5 O* W# S0 k( s5 H8 k. G+ b9 d `5-2拦截原理说明[06:22]- \ B3 o4 i0 O% e
5-3先睹为快[03:41]# z! o% c8 p. |
5-4制作目标API[04:01]7 c( W6 ^& F. {2 O& Z$ D
5-5导出地址表(IAT)[10:22]' w* I; Y$ s6 j; o$ d6 v
5-6核心编码(上)[25:43]
: h7 M: C' A3 e: Y5-7(加餐)对照IAT表详解核心代码[08:40]
4 V" `: v! p4 h, b: I6 c% W2 m5-8核心编码(下)[05:38]& e$ V( O3 l. L$ J% {
5-9拦截调试[09:36]
* n* {5 J" ]+ h5-10远程注入+拦截API(一)[05:06] \" L7 \. h6 l7 m2 m( A3 R
5-11远程注入+拦截API(二)[06:16]
0 f$ O7 X# @; F: m5-12远程注入+拦截API(三)[04:58]+ ~0 b" k" k- l$ x- X u
5-13远程注入+拦截API(四)[05:43] p3 {; W1 k I% y) n5 `6 l' Y
资源下载地址和密码(百度云盘): [/hide] 百度网盘信息回帖可见
6 \2 e2 l: n, L3 } E: D' {9 h2 v1 J+ M: l' @1 j3 z; @; S4 v. n
! |. w4 P' m) D8 w7 `
0 X: g, J% @/ [% ?) m8 p& i本资源由Java自学网收集整理【www.javazx.com】 |
|