&wH:aD
2020.5~2021.5 第1期<软件逆向工程特训>历时12个月 IfdI|ya
2021.5~2022.7 第2期<软件逆向工程特训>历时14个月,目前已圆满结束,第3期增加了一些新的内容,老师高超的技术水平+周到的交流辅导服务,这可能是最好的线上windows逆向安全培训班! d 4{FDqto
2022.9-2023.10 第3期 h=VqxGC&
2023.10-2025.1 第四期(快完结) =5]n\"/
2025.2 第五期招生中 Q%=YM4;
X!,@j\L
8}p8r|d!ls
逆向工程存在于各行各业,于IT行业来说,无论是开发还是安全,软件逆向一直充斥着重要的作用,学习软件逆向可以更好的理解甚至反推软件的设计框架、原理、实现思路、解决方案以及软件的操作行为,也是为了更好的做相关正向开发、软件安全和病毒分析,同时也需要掌握很多相关的技术知识点,难度较大,正因如此,逆向工程师人才紧缺,供不应求,薪资待遇处于IT业顶峰! 认真学习本课程、多与老师交流并加以实践将能达到就业水平。 B;zt#H4
互联网已经全面渗透于各行各业,逆向工程将关系到众多企业乃至国家的安全,所谓懂进攻知防守,精易作为国内最具影响力的PC软件开发社区之一,将带领大家从开发到安全,从正向到逆向,为社会和国家输出更多的安全人才。 ~Vh =5J~
课程会着重对基础知识及原理的加固,让大家能够循序渐进,知其然和所以然,课程中将穿插大量的实例和项目以及每节课都会布置作业,只要跟着老师的学习路线,不懂就问,经过1年的实践,定会有所成就。 }6zbT-i
42) mM#
开课日期 培训周期 教学模式 教学费用 (联系方式:QQ 727446985)
<+`(\
1年左右 直播+录播,周一~周五晚上2小时讲课+2小时答疑交流,白天通过QQ群/群语音交流 32000 限时惊爆价10600元 $ACx*e%
oW}!vf3z
JMV50 y
第一章 进制、寄存器与汇编指令(汇编与C语言相结合) 3000元 t={0(
学习汇编能做什么(逆向,游戏安全,加固/脱壳,反病毒,漏洞挖掘等等必备基础) {Q(}DI
1.1 计算机的基本构造及其运行原理 c-]fKj7
1.2 不同进制的书写方法 dz9Y}\2tf
1.3 为什么计算机要用二进制 gvavs+H%
1.4 不同进制间如何运算1 U..<iNQE5
1.5 不同进制间如何运算2 ".2K9j7$
1.6 为什么要用十六进制 $< %B#axL
1.7 什么是逻辑运算 '"YYj$>
'
1.8 计算机的计数与数学计数的区别 *MM#Z?mP
1.9 谁能告诉我计算机有多少通用寄存器 `$;+g ,
1.10 安装VC2012/VC6,写简单的汇编 w_-+o^
1.11 怎么操作汇编指令 OYwGz
1.12 什么是内存 -e -e9uP
1.13 寄存器与内存有什么区别 7_jE[10
1.14 怎么把[ ]里面的值变成地址 mX# "+X|
1.15 堆栈的作用。 I+?hG6NM
1.16 函数的调用过程1 L&2u[ml
1.17 函数的调用过程2 3!9Z=-tD
1.18 汇编指令运算过程中,出现进位借位,或者溢出该怎么办 C*~aSl7
1.19 对寄存器ESI或者EDI操作的指令有哪些
)$M,Ul
1.20 指令和内存有什么联系 %uDG75KP{
1.21 如何用汇编写程序 AHh#Fx+K
1.22 逆向的起源。什么是内存框架 M].8HwC +
1.23 用汇编怎么调用函数 T|4snU2M
1.24 不用CALL指令,如何调用函数 Zc5
:]]
考试:用汇编写一个程序 OKue" p
dDcZ!rRaL@
J\co1kO9/
第二章 C语言(软件开发必备) 2500元 iw]k5<qKj
2.1 C语言有哪些规则,如何赋值 sa-9$},z4
2.2 什么是C语言表达式 6F0(aGs
2.3 “如果”代表C语言的哪条语句 v"6 \=@
2.4 “如果明天下雨,我不去逛街”该如何用C语言表达 $xW**&
2.5 假设(a*4)怎么用移位表达,a向哪边移,移多少 |Ur"za;%@
2.6 C语言有哪些循环语句 >9K//co"of
2.7 C语言for 语句该如何使用 85Y|CN] vQ
2.8 什么是C语言变量 =]>%t]
2.9 “现在有相同类型的100个变量”,怎么用一条C语句实现 **;p(CI
2.10 什么是二维数组,二维数组跟一维数组有本质上的区别吗 loOOmHhJ&
2.11 C语言结构体是什么 -$k>F#
2.12 怎样合理的运用C语言结构体 Lubrn"128
2.13 C语言变参函数有什么作用
'ig, ATY
2.14 深刻理解switch 语句1 v"lf-c
2.15 深刻理解switch 语句2 D,;\F,p
2.16 C语言宏定义有什么好处 ]KK`5Dv|,e
2.17 什么是C语言指针, 指针是怎么赋值的 t 0O4GcAN
2.18 C语言指针和数组有什么区别 L4'[XcY
2.19 C语言指针是有符号的,还是无符号的 `ii
xq9xi
2.20 “void a ;” 这样定义可以吗?什么是空指针 d"<F!?8
2.21 指针数组和数组指针分别代表什么 F@W*\3)
2.22 指针数组和数组指针的区别在哪里 pWaPC/,g
2.23 怎样定义C语言函数指针 JJk#,AP
2.24 C语言函数指针有什么作用 7XAvd-
2.25 数据结构之单链表 ? Nj)6_&
2.26 数据结构之双链表 ^$?qT60%d|
2.27 数据结构之数组 L:f)i,S"5q
2.28 数据结构之队列 Lk,+Tfk"
2.29 数据结构之二叉树 {[#(w75R{
项目:学生管理系统或者贪吃蛇小游戏 n'w,n1z7
v548ysE)
wT_^'i*@I
第三章 C++与MFC/逆向练习 4000元 W4(?HTWZ
3.1 结构体与类有什么区别 %vqT#+x
3.2 封装之this指针的本质 pO/%N94s
3.3 构造函数和析构函数 a5c'V
3.4 继承有什么好处 __N.#c/l{
3.5 多继承与菱形继承 RI.2F*|
3.6 纯虚函数和虚函数 q? z>
3.7 多态与虚函数有什么联系
M[P^]J@
3.8 虚继承以及析构调用虚函数 T 1Cs>#)
3.9 函数重载的妙用 !C&%T]
3.10 什么是运算符重载 dk5|@?pe
3.11 模板是怎么运用的 ]|oJ)5P
3.12 类模板以及命名空间 DZ`k[Z.VZ
3.13 容器之string l gq=GHW
3.14容器之vector J\`^:tcG
3.15 容器之deque oK+Lzb\d{M
3.16 容器之list 8C&x MA^
3.17 迭代器的用法 U6j/BJT"
3.18 输入流和文件流
ZXXiL#^
3.19set map v <h;Di@
3.20 stl之 元素计数以及最小值 "dCzWFet
3.21 函数对象和一元谓词 &a #GXf
3.22stl之 查找 删除 \9m*(_Q
f
3.23 C++异常 S`g;Y
'
3.24 一个Win32程序的执行过程(消息机制的本质) F?]N8W
3.25 win32之创建显示窗口 kq/u,16@
3.26 win32之消息派发流程 2<6j1D^jM
3.27 win32之消息循环及消息函数 Z7#7N wy4
3.28 win32 对话框消息流程 BQrL7y
3.29 MFC与Win32程序的关系 ,)#.a%EKA
3.30 MFC类层次结构以及消息流程 gY5l.&
3.31 操纵控件的几种方法 ,;i
A2
3.32 MFC之对话框 Jq1 n0O
3.33 MFC之菜单 "sbBe73 m
3.34 MFC之画图 9D_wG\g
3.35 MFC之文本操作 d<T%`:s<
3.36MFC之单文档和多文档 _/x&<,3
3.37 C++版本超市管理系统 __\P`S_
bx;
f`8SN
tbur$00
数据库:(新增) h_ ZX/k
1. 数据库的基础 wq\G|/%
2. 关系数据库的基础 rz
3. 表的管理和数据类型 (2txM"Dja
4. 基础查询 _Z#eS/,O@
5. 创建表,添加和删除 Ye|G44z
6. 数据库设计
P;U@y"s
7. 创建数据库 ww,Z )m
8. 存储过程 #x)}29%e#
9. 触发器 )x\z@g
10. 事务 dr]
&kqm
11. 锁 UxqWnHH.`
12. 数据备份和恢复 5si}i'in
13. 数据库的安全性 ?!S
GiARW?
*\q8BZ
e
E
3-t/=
SOCKET编程:(新增) @YZ
4AC
1. 什么是 socket ;'1Apy
2. Internet 套接字的两种类型 r%-n*_?.s
3. 网络理论 eV;me>,
4. 结构体 y^s1t2]%
5. 本机转换 3M*Y= ?pI
6. IP 地址和如何处理它们
i^/54
7. socket()函数 sR79
K1*j
8. bind()函数 V5s&hZZYa
9. connect()程序 ]P3[.$z
10. listen()函数 dU+0dZdKO
11. accept()函数 ~ x`7)3
12. send() and recv()函数 ^, wnp@
13. sendto() 和 recvfrom()函数 eP |)SU
14. close()和shutdown()函数 Oxa5Kfpa
15. getpeername()函数 SaNN;X0
16. gethostname()函数 Gpu_=9vzv
17. 域名服务(DNS) l%PnB
)F
18. 客户-服务器背景知识
`]>on`n?
19. 简单的服务器 R}k69
-1vL
20. 简单的客户程序 (,tHL
21. 数据包 Sockets VkXn8J
22. 阻塞 F
6&P ~H
23. select()–多路同步 I/O G8P+A1
f/>
WOb8"*OM
Xp^$
E6YFy
逆向练习: `o-*Tr
1. OD和IDA的基本用法 lU$X4JBzS
2. C语言全部语法逆向 !R{em4 8D
3. C++全部语法逆向 )%
#?3X^sI
4. 按钮以及其他控件的入口方法 I#c(J
5. 逆向窗口程序的通杀方法 _LLshV3
练习:SOFTICE核心文件逆向 3^ ~Zj95M
s`vSt*
]K
B$7[8h
第四章 汇编编码 3000元 %UG/ak%z
学习硬编码的好处:(HOOK函数,系统HOOK, 代码变形,VM还原,TMD还原,解释器,调试器必备基础,这就是杀毒软件可以横行的法宝) ^pw7o6}
机器码,简称汇编编码,俗称硬编码 %EIUAG
4.0 寄存器 (32位汇编;64位汇编) m/?h2McS
4.01 汇编指令 J|?[.h7tO
4.02 堆栈 NcM3P G
4.03 逆向框架 XGk}e4;_
4.04 函数内部运行机制 3 2y[
4.1 定长编码 (0x40-0x4f 0x50-0x5f 0x70-0x7f 0x0f 0x80 – 0x0f 0x8f) M,G8*HI"
4.2 定长编码(0x04-0x07 0x0c-0x0f 0x14-0x17 0x1c-0x1d 0x24-0x27 0x2c-0x2d 0x34-0x37 0x3c-0x3d.) T{HfP
4.3 定长编码 (0x60 0x61 0x90-0x97 0xa8 0xa9 0xb0-0xbf 0xc2 0xc3 0xcc 0xcd 0xd4 0xd5 0xe0-0xe3 0xe8 0xe90 0xf8-0xfd等等) |_I[1%&`N
4.4 硬编码4 (写程序把定长编码打印出来) gMay
4.5 硬编码5 (写程序把定长编码打印出来) <G9<"{
4.6 变长编码 (0x88 0x89 0x8a 0x8b) )0F^NU
4.7 变长编码 (0x88 0x89 0x8a 0x8b) RAOKZ~`
4.8 变长编码 (0x00-0x03 0x08-0x0b 0x10-0x13 0x18-0x1b 0x20-0x23 0x2b-0x2b 0x30-0x33 0x38-0x3b ) .EzSSU7n)
4.9 变长编码 (0x84-0x87 0x8c-0x8e 等等) yk#rd~2Z0
4.10 写程序把变长编码打印出来 [x$;Xq
A
4.11 写程序把变长编码打印出来 .+uVgSN
4.12 写程序把变长编码打印出来 -x?Hj/
4.13 前缀 (0x26 0x2e 0x36 0x3e 0x66 0x67 0xf0 0xf2 0xf3) 3N3*`?5c<
4.14 写程序处理前缀 Nuq(4Yf1W
4.15 写程序处理前缀 ASq`)Rz
4.16 组编码 (0x80-83 0xc6-0xc7 0xd0-0xd3 等等) hXnw..0"
4.17 写程序处理硬编码 k(9s+0qe
4.18 0F开头两个字节的编码 T>5wQYh$'
4.19 编写反汇编引擎 `skH-lk,
4.20 VMP的核心解释器基本原理 $w `veP
d~/xGB`<
项目:反汇编引擎,解释器框架 40+fGRyOL
](n
69XX_
Xv&%2-V;
第五章 Win32 API (只要是项目,都会调用API) 2500元 PHQcst
W
5.1 文件操作 k!
vHO
5.2 内存管理 QRiF!D)Nk
5.3 进程线程 0STk)>3$-
5.4 线程同步 8E-Ip>{>
5.5 进程间通信 2;}xN! 8
5.6 网络通信 (xQI($Wq*M
5.7 未公开API的使用 w'XSb.\)_m
vC-[#]<
8E=vR 8
第六章 PE 3500元 V^WQ6G1
学习PE的好处(加密解密,写壳,脱壳,注入,重载操作系统) %|bN@@
6.1 PE有哪些结构1 ~QO<
B2hS}
6.2 PE有哪些结构2 Ks51:M
6.3 为什么要有节表,节表有什么好处 #'KY`&Tw&
6.4 PE 磁盘拷贝到内存 (写程序) qw)Key
6.5 PE 内存拷贝到拷贝磁盘,存盘(写程序) #4lHaFq
6.6 怎么给PE添加一个节 -BjEL;
6.7 PE扩大节有什么好处 &gJW6<
6.8 PE合并节有什么作用 !8Y3V/)NU
6.9 PE 输入表 (写程序打印输入表) %cd
]xQpCp
6.10 PE 输入表 (写程序打印输入表) G\uU- z$)
6.11 PE 输出表 (写程序打印输出表) Uv'uqt
6.12 PE 输出表 (写程序打印输出表) Es:5yX!
6.13 PE 重定位表 DbQBVy
6.14 修改OEP 弹出MessageBox ec#_olG%
6.15 添加节,拷贝一段函数进去 uzO{{S-
6.16 病毒的框架
'l8eH$
6.17 病毒是如何在函数入口植入的 4a1BGNI%SW
6.18 病毒是如何写入PE的 epYj+T
6.19 DLL应用及书写方式 o
KlF5I
6.20 UPX壳的源码及其运用 U#iT<#!l2
6.21 加密壳原理和方式 ~6MMErSj
项目: 手写PE分析工具LoadPe g\qX7nIH?
(\tq<h0
y]MWd#U
进阶篇 WEps.]s
先复习 前面的基础篇的知识,然后写一个解释器完整版(20天) &!4(
0u
{#0Tl
第七章 保护模式(段寄存器)(2个多月) 5000元 t3K>\ :
7.1 段寄存器构成 XCV0.u|
7.2 保护模式 GDTR IDTR ud
.poh~|
7.3 GDTR,IDTR均为48bit结构体 PQQgDtiH
7.4 超线程与多核 65uZLsQ
7.5 保护模式 获取段寄存器的值 svF*@(-P#
7.6 保护模式 GDTR.ATTRIBUTES VDPxue
7.7 保护模式之修改段寄存器 H]U"+52h
7.8 保护模式 调用门 Fr<Pe&d