|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
5 V8 L* L7 Q9 c9 s% M课程内容:" D& N' m$ _ w9 m' C5 |
00.课程介绍
/ _. U6 R% A1 m' Z01.环境配置
6 a; T$ @- Q6 V, u6 p' ~02.对象属性的访问方式% n, f5 q2 f2 Z* n. A. y" x
04.unicode字符串; _. W2 S/ |/ D: g' R/ }+ a9 E
05.字符串ASCII码混淆! i- V; ]' q* N) p( `4 x
06.字符串常量加密
, }* i% \. Y6 d07.数值常量加密
/ U2 a/ o/ _( A6 L* r7 Y g08.数组混淆0 ?/ r% V) ^$ h5 t* c0 F
09.数组乱序
; X" \# u2 e& n9 Z. \5 x10.增加JS逆向工作量(花指令)
a# U+ R) R* D* f2 Y) J) b11.jsfuck9 [8 {! D' o' p
12.流程平坦化
# i' A9 L9 Y4 y+ [' G) _3 P1 F1 H/ a4 N13.逗号表达式混淆1
" f o+ t. W# l: a* `. y& E& c5 @14.逗号表达式混淆2
/ c7 N* E7 F) Z' S& W* ~15.eval加密
/ v' [" N* Q: i5 W7 y( Y B* U7 n: f16.内存爆破4 s) n8 G! C2 l/ r
17.检测代码是否格式化3 g) J' A/ C7 e! z% }
18.AST的基本结构3 w, ~4 C9 q" J4 V# m3 ^% F" t$ [- K
19.代码的基本结构4 I' \0 t9 r( }) n; |& w/ H9 b) m6 a
20.parser与generator
9 s4 j( n2 ~8 @5 v J21.traverse与visitor/ P! W. x" v0 T) h- l6 W
22.types
1 D' h" a2 _% a! ~( ?23.Path对象详解(Path与Node的区别)5 O( i4 W6 n3 G3 w( d0 j
24.Path对象详解(Path中的方法)
5 s/ y3 G3 i* S1 {7 z- U" R/ a25.Path对象详解(父级Path)
7 I3 R4 k( j9 S- H4 u. |26.Path对象详解(同级Path)
8 |, M/ f. x' Q* w27.scope详解(作用域)
" w- N c& X9 H% J' Y. o7 T- h) Y2 P28.scope详解(Binding): B. k4 B' \1 H& T; v: K$ c
29.scope详解(referencePaths与constantViolations)
) O4 M# N; S# i! V" h& O9 }3.十六进制字符串
/ Y/ a' E8 ^$ I2 I8 y% m; q30.scope详解(遍历作用域)% y5 F% l8 d9 h% [2 H# ^& e
31.scope详解(标识符重命名)) |: E& p A$ L5 o/ \% f: i: F
32.scope详解(scope的其他方法)3 G1 s; p2 _' ]0 y A# R
33.改变对象属性的访问方式$ T7 v& W2 t: B) w
34.JS标准内置对象的处理
$ ^) ~7 ~: i( |1 O& X35.实现数值常量加密
w1 c6 F3 P- C) T36.实现字符串常量加密) }. T8 \, F+ s: B0 q
37.实现数组混淆
) i( I" G3 y$ i6 s( H7 V7 y38.实现数组乱序: r3 F: ~) z) x
39.实现十六进制与unicode字符串: _( \% L! K( h4 v# A
40.实现标识符混淆0 P8 v. s/ r- q* q$ }+ R
41.标识符的随机生成
( S* ~7 j, O8 d8 {% ?42.二项式转函数花指令
5 a* r. N8 Y5 r4 {43.代码的逐行加密
" j0 _% d: L( G) X44.代码的逐行ASCII码混淆
7 }: E- j5 g* K1 s8 e0 y45.完整的代码与处理后的效果$ m/ D9 N; T. u
46.实现流程平坦化混淆1% D# U0 Q9 |# U# M% W8 T$ V& O
47.实现流程平坦化混淆2, J3 u5 _! n. \
48.实现逗号表达式混淆1
$ I& H$ f+ K) F4 C1 N |' V( G49.实现逗号表达式混淆2) a/ [. T: h/ h% d& z
50.分析网站使用的混淆手段4 C- y8 P! y. N) ~0 }
51.还原代码中的常量
9 u* G4 x, u0 m# {52.花指令剔除思路# ?4 u, o$ w" c
53.字符串花指令的剔除- K" ^+ S; p: G$ A# ]7 O4 }
54.函数花指令的剔除
# d0 U( k0 H% H1 Z# m7 X55.还原流程平坦化
) k! g+ l% K) ~/ U0 J ' g. n+ P4 J$ E
|
|