|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。 O& \' M' L, K ]0 @
课程内容:# J0 p, B' j6 g6 W. J0 d9 W
00.课程介绍* N. G& x" u0 ^
01.环境配置
. A: C$ o: J8 b8 \: r02.对象属性的访问方式
0 ~" w+ Y6 _. E, c) ]; {5 n04.unicode字符串
, p7 ~* h' V% N+ \* N3 X& I3 p' V05.字符串ASCII码混淆
' d# B; p, t& s( r# C$ O0 e06.字符串常量加密* B$ H# O" n9 `) w0 M, V% O o
07.数值常量加密0 @2 Q& w- L. u% `, y" H9 E; N! C% B& M6 z
08.数组混淆
( o" P* b6 r! _8 U$ P09.数组乱序
1 y) A. ~$ f) c; P/ ?) r3 W1 x( {10.增加JS逆向工作量(花指令)8 C. T' t7 ] d0 B1 C. x
11.jsfuck
1 Y6 o8 ?7 u, G1 w9 u1 b( F) q12.流程平坦化
8 H/ P- c4 D+ y L# Z N9 Q13.逗号表达式混淆1
3 S! N5 c! K3 C1 H14.逗号表达式混淆2
; j( T$ _1 u ]4 ~+ l% g. c/ U15.eval加密& P& B$ b6 ^; D' Q
16.内存爆破9 `4 @ C8 C! z2 ^
17.检测代码是否格式化
3 V* M# ^# q7 X4 P+ h. O18.AST的基本结构
g5 p7 t6 W& Q8 a( f19.代码的基本结构5 U! d! n5 b- @7 d
20.parser与generator
8 G) E$ s# G5 [. P/ i- ^$ p K21.traverse与visitor
$ Y2 _% C, Z" o$ M+ \0 J3 Z22.types) e3 C2 z$ {/ Y! \ F
23.Path对象详解(Path与Node的区别)8 h. |2 R: e: L
24.Path对象详解(Path中的方法)- L5 @! o3 y8 b+ }: K" D
25.Path对象详解(父级Path)0 U" Z3 H: |. _. G w {
26.Path对象详解(同级Path)4 Y+ X# e" g+ b, ?2 e. `1 f- I
27.scope详解(作用域)3 B7 ?4 m0 c% @- w
28.scope详解(Binding)
8 b* G T, }7 `+ a" D0 r5 b29.scope详解(referencePaths与constantViolations)5 [7 K5 E1 t8 Y. e, M, A# Z% A
3.十六进制字符串1 N3 i5 M# ]7 G$ k4 X/ t3 M
30.scope详解(遍历作用域)6 }& I4 y4 L0 k% P
31.scope详解(标识符重命名)
8 h( ^& |& \2 K9 \32.scope详解(scope的其他方法)
9 j4 m( k! N' g6 F6 x; l, n' P33.改变对象属性的访问方式8 ~# O, W' F; W O5 E( l
34.JS标准内置对象的处理( \" W- l& h: @% N# H3 |" t; ^
35.实现数值常量加密
( b8 n3 ^3 {( H) [; L6 Y, p36.实现字符串常量加密
: i- W3 r# L7 \, F0 C1 m& n4 V37.实现数组混淆
* ]: O: H: i' S/ r3 @38.实现数组乱序) J8 \0 Y3 T" U! {1 n
39.实现十六进制与unicode字符串
7 w- |5 a7 g/ I40.实现标识符混淆: Q1 H) D; ^# T
41.标识符的随机生成
0 z/ Z# ?8 c! `8 L* ^42.二项式转函数花指令
, {% T' f& K! n) y; A43.代码的逐行加密
! M T1 n' q5 \! _1 S' o44.代码的逐行ASCII码混淆9 s' Z2 h7 Q; W* L
45.完整的代码与处理后的效果
0 T$ ]- F* {8 e& \5 l( A46.实现流程平坦化混淆1/ V' a) Q% n j( [% R. X+ T
47.实现流程平坦化混淆2/ X5 n' y; C6 E6 E7 c
48.实现逗号表达式混淆1+ {) C7 J5 [5 H7 u
49.实现逗号表达式混淆2; { G7 @$ p" g* ?
50.分析网站使用的混淆手段) I$ ~! t+ A7 G6 X
51.还原代码中的常量
. U& Z3 d" s Q( ?- [; u9 H5 y52.花指令剔除思路' ?! D& P* w- _ ^, O% m' h3 t
53.字符串花指令的剔除
) ?' u: i! ^7 W54.函数花指令的剔除$ D6 Y: N6 T: I' ~7 j
55.还原流程平坦化
) j2 D* c* x. ^, S5 p
2 E& w* u, s. C# H2 y# E' b
|
|