2020.5~2021.5 第1期<软件逆向工程特训>历时12个月 <e@+w6Kp'7
2021.5~2022.7 第2期<软件逆向工程特训>历时14个月,目前已圆满结束,第3期增加了一些新的内容,老师高超的技术水平+周到的交流辅导服务,这可能是最好的线上windows逆向安全培训班! xv>]e <":
2022.9-2023.10 第3期 ='<789wT
2023.10-2025.3 第四期 =/MA`>
2025.2-2026.2 第五期(快完结) Iju9#b6
2026.4 第六期招生中。。 ^K'@W
D
$3Mg
Q?
]-/v
逆向工程存在于各行各业,于IT行业来说,无论是开发还是安全,软件逆向一直充斥着重要的作用,学习软件逆向可以更好的理解甚至反推软件的设计框架、原理、实现思路、解决方案以及软件的操作行为,也是为了更好的做相关正向开发、软件安全和病毒分析,同时也需要掌握很多相关的技术知识点,难度较大,正因如此,逆向工程师人才紧缺,供不应求,薪资待遇处于IT业顶峰! 认真学习本课程、多与老师交流并加以实践将能达到就业水平。 GEUC<bL+
互联网已经全面渗透于各行各业,逆向工程将关系到众多企业乃至国家的安全,所谓懂进攻知防守,精易作为国内最具影响力的PC软件开发社区之一,将带领大家从开发到安全,从正向到逆向,为社会和国家输出更多的安全人才。 j NkobJ1
课程会着重对基础知识及原理的加固,让大家能够循序渐进,知其然和所以然,课程中将穿插大量的实例和项目以及每节课都会布置作业,只要跟着老师的学习路线,不懂就问,经过1年的实践,定会有所成就。 Y2Y)| <FH
z6;6 o!ej
开课日期 培训周期 教学模式 教学费用 (联系方式:QQ 727446985) B6xM#)
1年左右 直播+录播,周一~周五晚上2小时讲课+2小时答疑交流,白天通过QQ群/群语音交流 32000 限时惊爆价10600元 VH7nyqEM
~X!Z+Vg
?n(OH~@$i
第一章 进制、寄存器与汇编指令(汇编与C语言相结合) 3000元 0*yD
学习汇编能做什么(逆向,游戏安全,加固/脱壳,反病毒,漏洞挖掘等等必备基础) <S68UN(Ke
1.1 计算机的基本构造及其运行原理 \x;`8H
1.2 不同进制的书写方法 6,a:s:$>}R
1.3 为什么计算机要用二进制
+Fa!<txn
1.4 不同进制间如何运算1 (rm*KD"]
1.5 不同进制间如何运算2 1V:I}~\
1.6 为什么要用十六进制 S^T
><C
1.7 什么是逻辑运算 Z|$M 9E
1.8 计算机的计数与数学计数的区别 2rPmu
1.9 谁能告诉我计算机有多少通用寄存器 _kXq0~
1.10 安装VC2012/VC6,写简单的汇编 ~EtwX YkRZ
1.11 怎么操作汇编指令 v8f1o$R
1.12 什么是内存 Wmc@:
(n
1.13 寄存器与内存有什么区别 cK.z&y0]
1.14 怎么把[ ]里面的值变成地址 #%7)a; '
1.15 堆栈的作用。 zv0bE?W9
1.16 函数的调用过程1 O_\%8*;
1.17 函数的调用过程2 %8{nuq+c
1.18 汇编指令运算过程中,出现进位借位,或者溢出该怎么办 d J>~
1.19 对寄存器ESI或者EDI操作的指令有哪些 qV79bK
1.20 指令和内存有什么联系 #ADm^UT^
1.21 如何用汇编写程序 `IV7\}I|
1.22 逆向的起源。什么是内存框架 YpI|=mv
1.23 用汇编怎么调用函数 M>[e1y>7
1.24 不用CALL指令,如何调用函数 c*.-mS~Z`
考试:用汇编写一个程序 Q>(a JF
*}) W>
OXJ'-EZH
第二章 C语言(软件开发必备) 2500元 JIPBJ
2.1 C语言有哪些规则,如何赋值 e2^TQv2(=e
2.2 什么是C语言表达式 1]69S(
2.3 “如果”代表C语言的哪条语句 v=d16
2.4 “如果明天下雨,我不去逛街”该如何用C语言表达 bEm9hFvd
2.5 假设(a*4)怎么用移位表达,a向哪边移,移多少 vb6kr?-i*
2.6 C语言有哪些循环语句 lHAWZyO
2.7 C语言for 语句该如何使用 %
:h
%i|
2.8 什么是C语言变量 2Gh&h(
2.9 “现在有相同类型的100个变量”,怎么用一条C语句实现 @;\0cEn>
2.10 什么是二维数组,二维数组跟一维数组有本质上的区别吗 < 1[K1'7h
2.11 C语言结构体是什么 k(he<-GF\
2.12 怎样合理的运用C语言结构体 !_P&SmK3
2.13 C语言变参函数有什么作用 +pRNrg?k
2.14 深刻理解switch 语句1 9l(T>B2a
2.15 深刻理解switch 语句2 XY#.?<"Q8
2.16 C语言宏定义有什么好处 aW-6$=W
2.17 什么是C语言指针, 指针是怎么赋值的 0j;q^>
2.18 C语言指针和数组有什么区别 #%EHcgF
2.19 C语言指针是有符号的,还是无符号的 +PS
jBO4!
2.20 “void a ;” 这样定义可以吗?什么是空指针 [5!dO\-[
2.21 指针数组和数组指针分别代表什么 1yVhO2`7]
2.22 指针数组和数组指针的区别在哪里 t{s*,X\b
2.23 怎样定义C语言函数指针 df!i}L
2.24 C语言函数指针有什么作用 flT6y-d
2.25 数据结构之单链表 Q':hmulT!
2.26 数据结构之双链表 "([/G?QAG
2.27 数据结构之数组 rr,w/[
2.28 数据结构之队列 Re&"Q8I.8
2.29 数据结构之二叉树 SL-;h#-y
4
项目:学生管理系统或者贪吃蛇小游戏 G[1\5dK*uR
-n8d#Qm)
NBHpM}1xtU
第三章 C++与MFC/逆向练习 4000元 <{GVA0nr
3.1 结构体与类有什么区别 FgL892[
3.2 封装之this指针的本质 QFMAy>Gdn
3.3 构造函数和析构函数 Vd(n2JMtG
3.4 继承有什么好处 ^GyZycch
3.5 多继承与菱形继承 'qvj[lpGr
3.6 纯虚函数和虚函数 <Se9aD
3.7 多态与虚函数有什么联系 z$WLx
3.8 虚继承以及析构调用虚函数 7B)1U_L0H
3.9 函数重载的妙用 U(#JC(E-#
3.10 什么是运算符重载 !|up"T I
3.11 模板是怎么运用的 |R1T;J<[
3.12 类模板以及命名空间 [}]yJ+)
3.13 容器之string ^sB0$|DU
3.14容器之vector ypyKRsx
3.15 容器之deque 4M|uT
9-
3.16 容器之list 1I{8 |
3.17 迭代器的用法 r*]pL<
3.18 输入流和文件流 3 ye
3.19set map O`Gq7=X
3.20 stl之 元素计数以及最小值 xhOoZ-
3.21 函数对象和一元谓词 (
*Xn"o
3.22stl之 查找 删除 <l$ d>,
3.23 C++异常 p |1u,N
3.24 一个Win32程序的执行过程(消息机制的本质) 50j8+xJPV
3.25 win32之创建显示窗口 8lL|j
3.26 win32之消息派发流程 V*{rHp{=p
3.27 win32之消息循环及消息函数 !TJ,:c]4{!
3.28 win32 对话框消息流程 &'x~<rx
3.29 MFC与Win32程序的关系 f+Sb>$
3.30 MFC类层次结构以及消息流程 >
a,D8M?
3.31 操纵控件的几种方法 80wzn,o
S
3.32 MFC之对话框 )muNfs m
3.33 MFC之菜单
+)iMJ]>
3.34 MFC之画图 uTxa5j
3.35 MFC之文本操作 m$kQbPlatN
3.36MFC之单文档和多文档 c&!mKMrk
3.37 C++版本超市管理系统 7P7OTN
*Bq}.Yn
B+j]C$8}
数据库:(新增) 8&)v%TX
1. 数据库的基础 . \"k49M`
2. 关系数据库的基础 ]MV8rC[\
3. 表的管理和数据类型 8~]D!c8; a
4. 基础查询 67YC;J]n=z
5. 创建表,添加和删除 :q]9F4im
6. 数据库设计 (Z
SaAn),
7. 创建数据库 .mt%8
GM
8. 存储过程 a+E&{pV
9. 触发器 4=xi)qF/@
10. 事务 -f)fi
Q-<
11. 锁 La;G S
12. 数据备份和恢复 15\m.Ix
13. 数据库的安全性 X,7y| tb
S{rltT-
T)rE#"_]{
SOCKET编程:(新增) .p&@;fZ
1. 什么是 socket ,erf{"Nh
2. Internet 套接字的两种类型 IW3k{z
3. 网络理论 ,vJt!}}
4. 结构体 Nr4:Gih
5. 本机转换 ff\~`n~WZ
6. IP 地址和如何处理它们 XH"+oW
7. socket()函数 LH8jT
8. bind()函数 `hi=y BO
9. connect()程序 :$MOdL[ir
10. listen()函数
5&&4-
11. accept()函数 <Kd(fFe
12. send() and recv()函数 =_7wd*,
13. sendto() 和 recvfrom()函数 elOeXYO0
14. close()和shutdown()函数 9=%zd z2_S
15. getpeername()函数 |h>PUt@LL
16. gethostname()函数 cz>,sz~i
17. 域名服务(DNS) HTJ2D@h
18. 客户-服务器背景知识 GM%+yS}(P
19. 简单的服务器 3!"N;Q"
20. 简单的客户程序 z8Q!~NN-K
21. 数据包 Sockets ,c p2Fac
22. 阻塞 0
&zp
23. select()–多路同步 I/O {ez$kz
lkn|>U[
#DTKz]i?
逆向练习: t'eqk#rq
1. OD和IDA的基本用法 B0fOAP1
2. C语言全部语法逆向 {PHH1dC{
3. C++全部语法逆向 w,LtQhQ
4. 按钮以及其他控件的入口方法 m&UP@hUV-
5. 逆向窗口程序的通杀方法 m[9.'@ye
练习:SOFTICE核心文件逆向 eUyF
<j
T*z]<0E]
pP. _%5
第四章 汇编编码 3000元 A6N6e\*
学习硬编码的好处:(HOOK函数,系统HOOK, 代码变形,VM还原,TMD还原,解释器,调试器必备基础,这就是杀毒软件可以横行的法宝) c/;
;zc
机器码,简称汇编编码,俗称硬编码 f%Q{}fC{*
4.0 寄存器 (32位汇编;64位汇编) Dyov}y
4.01 汇编指令 4T@:_G2b
4.02 堆栈 N9e'jM>Oos
4.03 逆向框架 q2qi~}l
4.04 函数内部运行机制 g{8RPw]
4.1 定长编码 (0x40-0x4f 0x50-0x5f 0x70-0x7f 0x0f 0x80 – 0x0f 0x8f) CVj^{||eF
4.2 定长编码(0x04-0x07 0x0c-0x0f 0x14-0x17 0x1c-0x1d 0x24-0x27 0x2c-0x2d 0x34-0x37 0x3c-0x3d.) {i5?R,a)
4.3 定长编码 (0x60 0x61 0x90-0x97 0xa8 0xa9 0xb0-0xbf 0xc2 0xc3 0xcc 0xcd 0xd4 0xd5 0xe0-0xe3 0xe8 0xe90 0xf8-0xfd等等) p@m0Oi,=
4.4 硬编码4 (写程序把定长编码打印出来) BQ@7^E[
4.5 硬编码5 (写程序把定长编码打印出来) @IT[-d
4.6 变长编码 (0x88 0x89 0x8a 0x8b) #@XBHJ
D\#
4.7 变长编码 (0x88 0x89 0x8a 0x8b) _Cmmx`ln
4.8 变长编码 (0x00-0x03 0x08-0x0b 0x10-0x13 0x18-0x1b 0x20-0x23 0x2b-0x2b 0x30-0x33 0x38-0x3b ) .Ro/ioq
4.9 变长编码 (0x84-0x87 0x8c-0x8e 等等) d>NGCe
4.10 写程序把变长编码打印出来 D tsZP
(
4.11 写程序把变长编码打印出来 p@<Q?
4.12 写程序把变长编码打印出来 mxa~JAlN_
4.13 前缀 (0x26 0x2e 0x36 0x3e 0x66 0x67 0xf0 0xf2 0xf3) 3<0b_b
4.14 写程序处理前缀 =~#mF<z5
4.15 写程序处理前缀 #lYyL`B+~
4.16 组编码 (0x80-83 0xc6-0xc7 0xd0-0xd3 等等) VF%QM;I[Rc
4.17 写程序处理硬编码 #8$?#
dT
4.18 0F开头两个字节的编码 h<9s&
p
4.19 编写反汇编引擎 *}?[tR5
4.20 VMP的核心解释器基本原理 ]z'&oz
q6
CrUn
项目:反汇编引擎,解释器框架 L4By5)
oV|O`n
l=@ B 'a
第五章 Win32 API (只要是项目,都会调用API) 2500元 9:j?Jvw$
5.1 文件操作 +C(
-f
5.2 内存管理 /<LZt<K
5.3 进程线程 ^&zCPUH
5.4 线程同步 5cSiV7#Y:
5.5 进程间通信 > I2rj2M#
5.6 网络通信 JGs:RD'
5.7 未公开API的使用 +;N]34>S7
2g.lb&3W
YIQD9
第六章 PE 3500元 PmR].Ohzi
学习PE的好处(加密解密,写壳,脱壳,注入,重载操作系统)
L9GLjRp-
6.1 PE有哪些结构1 inh0p
^
6.2 PE有哪些结构2 /K=OsMl2b8
6.3 为什么要有节表,节表有什么好处 |/Nh#
6.4 PE 磁盘拷贝到内存 (写程序) *"%TAe7?~+
6.5 PE 内存拷贝到拷贝磁盘,存盘(写程序) 6h 0qtXn-
6.6 怎么给PE添加一个节 z0"t]4s
6.7 PE扩大节有什么好处 6'qkD<