|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
8 |. J- }: ]) P1 C课程内容:+ m5 {8 u/ Y2 i4 [: |
00.课程介绍& t) N/ e: Q. j n% y
01.环境配置
9 ?- `' q9 P) w' {3 ?02.对象属性的访问方式 t' f; t$ p. u/ H! P4 r
04.unicode字符串, t2 Y9 p/ x2 N0 V3 v* _
05.字符串ASCII码混淆4 j' o& T m2 S8 f: b# M* R
06.字符串常量加密' w0 H; T- z5 W& o5 i! D" Q
07.数值常量加密
6 u; L+ v/ y6 \: L0 e08.数组混淆 @. }% ^& `1 q4 U# |; s
09.数组乱序
3 w) |6 G+ \; |10.增加JS逆向工作量(花指令)' x7 X3 n% x0 Z+ C: r6 d
11.jsfuck; D: [6 R+ ]7 B0 _1 \1 t+ x
12.流程平坦化
9 a$ v1 d7 i# c- x" H1 s- I13.逗号表达式混淆1* w( `" J% s; f1 K
14.逗号表达式混淆2
6 \$ N$ K2 s# e+ _3 w9 @% o15.eval加密
0 s9 |2 y' J! q" p7 C/ o8 \, G16.内存爆破4 ~7 Y8 ~! A1 m' S7 T
17.检测代码是否格式化8 e) V" ^7 w* s9 z) e1 Z
18.AST的基本结构7 x& J, _- \* ], \" S* N, _: R- E* _
19.代码的基本结构* I3 g% B; e: @" ]* Y: q( g# P
20.parser与generator( O1 k$ {; O' i6 k. ~$ ]5 R
21.traverse与visitor
- u# Y7 r7 t- S7 S: R" o ~! P; B22.types/ c) W& r9 n: Z# B$ F. m: F: R3 b# u" X
23.Path对象详解(Path与Node的区别). V: p* x# J( o
24.Path对象详解(Path中的方法); W6 \6 M3 h9 c6 n, |5 Y' d
25.Path对象详解(父级Path)
+ I. o. x- Q7 \6 X7 _4 W26.Path对象详解(同级Path)
3 v2 y6 c X9 b+ f* \27.scope详解(作用域)
$ s' F8 d4 V6 I2 c8 H, K' x3 l* H( Y: ^+ w28.scope详解(Binding)( X( V) x# f- p0 U
29.scope详解(referencePaths与constantViolations)
' G$ F9 K# F3 l) t4 |5 o8 \) O& Q3.十六进制字符串& _0 S; C6 C! i' o
30.scope详解(遍历作用域)
8 H6 M! p$ B1 D! z4 M& I31.scope详解(标识符重命名)
4 W. K5 ?5 p5 O1 t) a5 O32.scope详解(scope的其他方法)
9 z5 u9 \8 g, o; `, e+ \33.改变对象属性的访问方式7 m, {" b; `2 L& S4 R, e2 s0 ]
34.JS标准内置对象的处理5 `, ^9 r0 E3 i: X) N
35.实现数值常量加密
8 d& W+ i6 u% ]9 A7 ]9 E5 d0 D36.实现字符串常量加密
0 v) @& }- @" C a1 _) G$ C. d37.实现数组混淆
" Z' R- M0 I% L! U38.实现数组乱序% \$ U [9 f |
39.实现十六进制与unicode字符串
5 }( z/ F" H: C6 w7 N40.实现标识符混淆5 j2 J& B. D, x' M' c. u; F- G
41.标识符的随机生成
& v: p6 @5 b$ I' g$ n' ]* ~42.二项式转函数花指令! M5 s. k) r% G
43.代码的逐行加密* ~: K: Y9 h% p. b6 t
44.代码的逐行ASCII码混淆' f0 J* j7 w0 y- y" z0 [1 E
45.完整的代码与处理后的效果
7 M; _1 [. j! R" ]46.实现流程平坦化混淆1
( ^+ f& B1 o5 H6 m; Q5 A47.实现流程平坦化混淆2$ [% |- q0 X0 G7 U7 Z
48.实现逗号表达式混淆1! I% V0 R4 E4 S/ v
49.实现逗号表达式混淆2
A6 z- C# D; `" ]+ S50.分析网站使用的混淆手段
9 Z2 p2 c' M5 s8 i. o51.还原代码中的常量" N0 c/ d# q6 \
52.花指令剔除思路
3 q# a9 \& i' c: T0 R7 {53.字符串花指令的剔除
. F+ T$ ]( g$ V& |' ]54.函数花指令的剔除
8 R6 S1 S& g- g+ n* B, P( L: }" [( D55.还原流程平坦化
; S/ H5 B% U, [# @7 {* | 0 N8 F! ?7 s' F L1 `, f
|
|