2020.5~2021.5 第1期<软件逆向工程特训>历时12个月 &p1Et
2021.5~2022.7 第2期<软件逆向工程特训>历时14个月,目前已圆满结束,第3期增加了一些新的内容,老师高超的技术水平+周到的交流辅导服务,这可能是最好的线上windows逆向安全培训班! $cri"G
2022.9-2023.10 第3期 }>cQ}6n.
2023.10-2025.3 第四期 |IqQ%;H
2025.2-2026.2 第五期(快完结) +_gPZFpbx
2026.4 第六期招生中。。 `z$<1QT
&|7pu=
t)74(
逆向工程存在于各行各业,于IT行业来说,无论是开发还是安全,软件逆向一直充斥着重要的作用,学习软件逆向可以更好的理解甚至反推软件的设计框架、原理、实现思路、解决方案以及软件的操作行为,也是为了更好的做相关正向开发、软件安全和病毒分析,同时也需要掌握很多相关的技术知识点,难度较大,正因如此,逆向工程师人才紧缺,供不应求,薪资待遇处于IT业顶峰! 认真学习本课程、多与老师交流并加以实践将能达到就业水平。 NTk"W!<Cl2
互联网已经全面渗透于各行各业,逆向工程将关系到众多企业乃至国家的安全,所谓懂进攻知防守,精易作为国内最具影响力的PC软件开发社区之一,将带领大家从开发到安全,从正向到逆向,为社会和国家输出更多的安全人才。 )o'&f"/
课程会着重对基础知识及原理的加固,让大家能够循序渐进,知其然和所以然,课程中将穿插大量的实例和项目以及每节课都会布置作业,只要跟着老师的学习路线,不懂就问,经过1年的实践,定会有所成就。 qlJP2Ig~
8CxC`*L(
开课日期 培训周期 教学模式 教学费用 (联系方式:QQ 727446985) I
U/HYBJH
1年左右 直播+录播,周一~周五晚上2小时讲课+2小时答疑交流,白天通过QQ群/群语音交流 32000 限时惊爆价10600元 N(v<*jn
8t!/Op?
)TxAhaz+
第一章 进制、寄存器与汇编指令(汇编与C语言相结合) 3000元 lHwQ'/r
学习汇编能做什么(逆向,游戏安全,加固/脱壳,反病毒,漏洞挖掘等等必备基础) d18%zY>
1.1 计算机的基本构造及其运行原理 {~a=aOS
1.2 不同进制的书写方法 m'$]lf;*
1.3 为什么计算机要用二进制 Y@._dliM
1.4 不同进制间如何运算1 }O<u
1.5 不同进制间如何运算2 tL1"Dt>
1.6 为什么要用十六进制 B*A{@)_
1.7 什么是逻辑运算 3&kHAXzM
1.8 计算机的计数与数学计数的区别 IZczHHEL`b
1.9 谁能告诉我计算机有多少通用寄存器 rrei6$H&
1.10 安装VC2012/VC6,写简单的汇编 NAjK0]SRY
1.11 怎么操作汇编指令 }"j7Qy)cs
1.12 什么是内存 xX`P-h>V`c
1.13 寄存器与内存有什么区别 X8Px
1.14 怎么把[ ]里面的值变成地址
Vkdchc
1.15 堆栈的作用。 ~xqRCf{8
1.16 函数的调用过程1 AD4KoT&
1.17 函数的调用过程2 -Cwx %
1.18 汇编指令运算过程中,出现进位借位,或者溢出该怎么办 08&DP^NS
1.19 对寄存器ESI或者EDI操作的指令有哪些 N^A&DrMF
1.20 指令和内存有什么联系 )/h~csy:~
1.21 如何用汇编写程序 LuS]D%
1.22 逆向的起源。什么是内存框架 IiV:bHUE}0
1.23 用汇编怎么调用函数 N<$U:!Z
1.24 不用CALL指令,如何调用函数 hf
rF7{yj
考试:用汇编写一个程序 "gXz{$q
<4,>`#NEo
XCO{}wU)>
第二章 C语言(软件开发必备) 2500元 [^B04x@
2.1 C语言有哪些规则,如何赋值 I ;N)jj`b
2.2 什么是C语言表达式 \3(d$_:b
2.3 “如果”代表C语言的哪条语句 +]/_gz
2.4 “如果明天下雨,我不去逛街”该如何用C语言表达 eLcP.;Z
2.5 假设(a*4)怎么用移位表达,a向哪边移,移多少 c6cGl]FL
2.6 C语言有哪些循环语句 MV5'&" ,oB
2.7 C语言for 语句该如何使用 QT /
TZ:
2.8 什么是C语言变量 p`-`(i=iJo
2.9 “现在有相同类型的100个变量”,怎么用一条C语句实现 0n+Wv@/
2.10 什么是二维数组,二维数组跟一维数组有本质上的区别吗 +Gi~VW.
2.11 C语言结构体是什么 uYAPGs#k
2.12 怎样合理的运用C语言结构体 RuDn1h#u{
2.13 C语言变参函数有什么作用 OwrzD~
2.14 深刻理解switch 语句1 Ob2H7!
2.15 深刻理解switch 语句2 y\b.0-z
2.16 C语言宏定义有什么好处 ,p/iN9+Z
2.17 什么是C语言指针, 指针是怎么赋值的 /w{DyHT
2.18 C语言指针和数组有什么区别 "; tl>Ot
2.19 C语言指针是有符号的,还是无符号的 .w^M?}dx
2.20 “void a ;” 这样定义可以吗?什么是空指针 stz1e
dP
2.21 指针数组和数组指针分别代表什么 gT*0WgB
2.22 指针数组和数组指针的区别在哪里 CZv.$H"lW
2.23 怎样定义C语言函数指针 hHF YAh
2.24 C语言函数指针有什么作用 dhpEBJ
2.25 数据结构之单链表 #P$=P2o
2.26 数据结构之双链表 ^EE3E'
2.27 数据结构之数组 WK]SHiHD
2.28 数据结构之队列 zr%lBHuW
2.29 数据结构之二叉树 LX[J6YKR
项目:学生管理系统或者贪吃蛇小游戏 W'6~`
t
e!b?SmNN
wxEFM)zr
第三章 C++与MFC/逆向练习 4000元 _H(m
4~M
3.1 结构体与类有什么区别
-Y%#z'^-
3.2 封装之this指针的本质
,
/{mRw%
3.3 构造函数和析构函数 "0Uh(9Fv
3.4 继承有什么好处 K~OfC
3.5 多继承与菱形继承 g4_DEBh
3.6 纯虚函数和虚函数 0PD]#.+
3.7 多态与虚函数有什么联系 I&qT3/SVI
3.8 虚继承以及析构调用虚函数 w~QUG^0Fx
3.9 函数重载的妙用 $}r*WZ
3.10 什么是运算符重载 g
PogV(V
3.11 模板是怎么运用的 b5_(Fv
3.12 类模板以及命名空间 w}^z1n
3.13 容器之string ufm`h)
N
3.14容器之vector .P.TqT@)r
3.15 容器之deque &bBK#d*-u?
3.16 容器之list 9'C kV [
3.17 迭代器的用法 iPX6r4-
3.18 输入流和文件流
'n%Ac&kk
3.19set map :)X?ML?
3.20 stl之 元素计数以及最小值 RekTWIspT/
3.21 函数对象和一元谓词 \Rop~gD
3.22stl之 查找 删除 #\*ODMk$4|
3.23 C++异常 S#dkJu]]#
3.24 一个Win32程序的执行过程(消息机制的本质) mw";l$Aq}
3.25 win32之创建显示窗口 C,+6g/{
3.26 win32之消息派发流程 J6/Mm7R
3.27 win32之消息循环及消息函数 #bgW{&_y
3.28 win32 对话框消息流程 1$ez}k,
3.29 MFC与Win32程序的关系 $A,fO~
3.30 MFC类层次结构以及消息流程 h7<Z
kf
3.31 操纵控件的几种方法 gP1~N^hke]
3.32 MFC之对话框 Q[`J=
3.33 MFC之菜单 c%w@-n`
3.34 MFC之画图 r 11:T3
3.35 MFC之文本操作 >tX
n9'S
3.36MFC之单文档和多文档 O79;tA<k
3.37 C++版本超市管理系统 6?Ul)'
*`[dC,+`.
\9dSI
数据库:(新增) u}hQF$a"
1. 数据库的基础 '$*d:1
2. 关系数据库的基础 .g_
BKeU
3. 表的管理和数据类型 Lc(D2=%
4. 基础查询 c)gG
5. 创建表,添加和删除 aW]!$
6. 数据库设计 gsd9QW
7. 创建数据库 |\"vHt?@G
8. 存储过程 qN}kDT
9. 触发器 K <7#
;
10. 事务 EL$"MT}p
11. 锁 |^Nz
/PN
12. 数据备份和恢复 W@v@|D@
13. 数据库的安全性 8WK%g0gm
$>1 'pV
mz;S*ONlV
SOCKET编程:(新增) gBz$RfyF
1. 什么是 socket xnWCio>M
2. Internet 套接字的两种类型 (-Rh%ZHH
3. 网络理论 :D6"h[7
4. 结构体 `X]TIMc:Ad
5. 本机转换 betN-n-
6. IP 地址和如何处理它们 HByk 1
7. socket()函数 @=q,,t$r
8. bind()函数 Vd^_4uqnV
9. connect()程序 mz@`*^7?
10. listen()函数 cMOvM0f
11. accept()函数 :#v8K;C
12. send() and recv()函数 cGiS[-g
13. sendto() 和 recvfrom()函数 FLdO
14. close()和shutdown()函数 {ve86 POY
15. getpeername()函数 n-[J+DdB
16. gethostname()函数 uZ][#[u
17. 域名服务(DNS) w
V&{w7
18. 客户-服务器背景知识 =SPuOy8
19. 简单的服务器 J8I_tF6
20. 简单的客户程序 ei
'=%r8~
21. 数据包 Sockets R[ p. )F7
22. 阻塞 t]LCe\#
23. select()–多路同步 I/O |j53'>N[
*F/ uAI^)
B
MU@J
逆向练习: ]bCeJE.+)
1. OD和IDA的基本用法 c n
#JO^8
2. C语言全部语法逆向 jV)!9+H#
3. C++全部语法逆向 bG=CIa&@
4. 按钮以及其他控件的入口方法 4} uX[~e&
5. 逆向窗口程序的通杀方法 CZyOAoc<
练习:SOFTICE核心文件逆向 ^G%Bj`%
$by-?z((
CL%?K<um
第四章 汇编编码 3000元 /'?Fz*b
学习硬编码的好处:(HOOK函数,系统HOOK, 代码变形,VM还原,TMD还原,解释器,调试器必备基础,这就是杀毒软件可以横行的法宝) 6+"P$Ed#i
机器码,简称汇编编码,俗称硬编码 |1J=wp)#
4.0 寄存器 (32位汇编;64位汇编) *%_:[>
4.01 汇编指令 > ^fY`x,
4.02 堆栈 }ny,Nl
4.03 逆向框架 e\i K
4.04 函数内部运行机制 )iad
u
4.1 定长编码 (0x40-0x4f 0x50-0x5f 0x70-0x7f 0x0f 0x80 – 0x0f 0x8f) ~8~B VwZ_
4.2 定长编码(0x04-0x07 0x0c-0x0f 0x14-0x17 0x1c-0x1d 0x24-0x27 0x2c-0x2d 0x34-0x37 0x3c-0x3d.) JmdXh/X
4.3 定长编码 (0x60 0x61 0x90-0x97 0xa8 0xa9 0xb0-0xbf 0xc2 0xc3 0xcc 0xcd 0xd4 0xd5 0xe0-0xe3 0xe8 0xe90 0xf8-0xfd等等) (x,w/1
4.4 硬编码4 (写程序把定长编码打印出来) 0/P!rH9
4.5 硬编码5 (写程序把定长编码打印出来) +F q`I2l|
4.6 变长编码 (0x88 0x89 0x8a 0x8b) f2Frb
4.7 变长编码 (0x88 0x89 0x8a 0x8b) bf2R15|t5`
4.8 变长编码 (0x00-0x03 0x08-0x0b 0x10-0x13 0x18-0x1b 0x20-0x23 0x2b-0x2b 0x30-0x33 0x38-0x3b ) 2Cn^<(F^4I
4.9 变长编码 (0x84-0x87 0x8c-0x8e 等等) -dbD&8
4.10 写程序把变长编码打印出来 ^ a%U *>P
4.11 写程序把变长编码打印出来 V3baEy>=z
4.12 写程序把变长编码打印出来 (.\GI D+i
4.13 前缀 (0x26 0x2e 0x36 0x3e 0x66 0x67 0xf0 0xf2 0xf3) K1#Y{k5D}
4.14 写程序处理前缀 32jOs|<\
4.15 写程序处理前缀
|5)~WoV/G
4.16 组编码 (0x80-83 0xc6-0xc7 0xd0-0xd3 等等) Srj%6rgsB
4.17 写程序处理硬编码 86O"w*9
4.18 0F开头两个字节的编码 x bF*4;^SI
4.19 编写反汇编引擎 b2c%
0C
4.20 VMP的核心解释器基本原理 cAJK
FuX"
'8`{u[:
项目:反汇编引擎,解释器框架 CBdSgHA3>
7 y}b (q=
bsVms,&
第五章 Win32 API (只要是项目,都会调用API) 2500元 =
aSHb[hO
5.1 文件操作 5 (bG
5.2 内存管理 ,GEMc a,`
5.3 进程线程 j-|YE?AA
5.4 线程同步
c 2j?<F1
5.5 进程间通信 AH`D&V
5.6 网络通信 q:sDNj)R\
5.7 未公开API的使用 6W$ #`N>
"Q9S<O8)
v<bq1QG
第六章 PE 3500元 ])h={gI
学习PE的好处(加密解密,写壳,脱壳,注入,重载操作系统) G?12?2
6.1 PE有哪些结构1 |8}f
6.2 PE有哪些结构2 ie+&@u
6.3 为什么要有节表,节表有什么好处 UN_f2
6.4 PE 磁盘拷贝到内存 (写程序) <b"ynoM.A
6.5 PE 内存拷贝到拷贝磁盘,存盘(写程序) tVQfR*=
6.6 怎么给PE添加一个节 pgz3d{]ua
6.7 PE扩大节有什么好处 I!lz
Og4~
6.8 PE合并节有什么作用 ~LGkc
t
6.9 PE 输入表 (写程序打印输入表) @OAX#iQl
6.10 PE 输入表 (写程序打印输入表) 0(#HMBE8
6.11 PE 输出表 (写程序打印输出表) LB%_FT5
6.12 PE 输出表 (写程序打印输出表) K6=-Zf
6.13 PE 重定位表 Rt~Aud[
6.14 修改OEP 弹出MessageBox &3v{~Xg)
6.15 添加节,拷贝一段函数进去 ; iQ@wOL]
6.16 病毒的框架 0?l|A1I%
6.17 病毒是如何在函数入口植入的 _i~n!
v
6.18 病毒是如何写入PE的 6~GaFmW=
6.19 DLL应用及书写方式 vFY/o,b \
6.20 UPX壳的源码及其运用 ERQa,h/
6.21 加密壳原理和方式 $+Ke$fq.>
项目: 手写PE分析工具LoadPe 0$l=ME(
`*PVFm>
GyJp!
xFB
进阶篇 I$0`U;Xd
先复习 前面的基础篇的知识,然后写一个解释器完整版(20天) Mh'QD)28c
OO_{o
第七章 保护模式(段寄存器)(2个多月) 5000元 WpC@nz?
7.1 段寄存器构成 yAtM|:qq
7.2 保护模式 GDTR IDTR "lLt=s2>L
7.3 GDTR,IDTR均为48bit结构体 T_ Q/KhLU
7.4 超线程与多核 3 2Q/4
7.5 保护模式 获取段寄存器的值 'dM &~LSQ
7.6 保护模式 GDTR.ATTRIBUTES -yfyd$5j
7.7 保护模式之修改段寄存器 #C|:]moe
7.8 保护模式 调用门 #G{}Rd|!
7.9 保护模式 中断门 陷阱门 *2crhI*@>
7.10 保护模式 CS:EIP _dppUUm
7.11 保护模式 RETF,IRETD Pgf$GXE
7.12 保护模式 门Dword Count ba|x?kz
7.13 保护模式 任务门 )/2* <jr
7.14 保护模式 3环进1环 R0+v5E
7.15 保护模式 10-10-12 分页 S]ZO*+
7.16 保护模式 PDT PTE =O1CxsKt6
7.17 保护模式 页的特点 LfyycC2E
7.18 保护模式 TLB gwQL9
UYx
7.19 保护模式 异常与保护 ,HS\
(Z
7.20 保护模式 2-9-9-12 \*6%o0c
7.21 保护模式 CR0~CR4 0:Js{$ZL4
7.22 10-10-12和2-9-9-12分页转换 5b9_6L6
7.23-7.30 编写CE与内存搜索工具(VT引擎) =%Gecj
* b>W
|Z6rP-
第八章 操作系统 (本阶段较枯燥,将通过录播+直播答疑的方式进行) 5000元 isHa4 D0
本章主要讲解及应用于:驱动保护,系统保护,游戏保护,底层开发,系统架构,架构师,引擎开发等… I%%\;Dy
8.1 操作系统 模拟线程切换 O]w &uim
8.2 操作系统 进程线程结构 (rFY8oHD
8.3 操作系统 进程线程链表 U
jVo "K
8.4 操作系统 TEB PEB l3n* b6
8.5 操作系统 kpcr 结构 C]*9:lK
8.6 操作系统 TrapFrame 结构体 e.G&hJr
8.7 操作系统 SSDT 表 4nkH0dJQ
8.8 操作系统 驱动详解 _Pa(5-S'KR
8.9 操作系统 swapcontext函数 yXY8 oE
8.10 操作系统 SwapContext函数 TJ7on.;
8.11操作系统 ntReadVirtualMemory UY
j
8.12操作系统 kiSwapThread hF+YZU]rT
8.13操作系统 kiWaitListHead Jjik~[<q:
8.14操作系统 对象句柄及线程等待快 #!h:w
8.15操作系统 线程等待机制 oe`oUnN
8.16操作系统 等待块及SetEvent 函数 n?@3R#4D3
8.17操作系统 keWaitSingleObject函数 *r p@`W5
8.18操作系统 APC机制 s`Z(f:/6*
8.19操作系统 kiDeliveApc t-dN:
1
8.20操作系统 Apc函数的调度时机 >!E:$;i@
8.21操作系统 异常处理 !l~tBJr*sB
8.22操作系统 kiDispatchException函数 &