|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
2 @5 o4 |" F9 a4 n: \; R* t课程内容:* n4 _9 u7 y& B+ X ^$ ^
00.课程介绍/ q3 o- p$ Y1 X3 s+ O
01.环境配置0 G: i \( L; i7 u
02.对象属性的访问方式
; o* B" }( R0 a M4 S04.unicode字符串+ G- r' k3 ~- H0 N- l
05.字符串ASCII码混淆
: K; W( K: }7 i' P3 @7 X* @, {06.字符串常量加密
1 U8 P( h0 l6 P$ e& K07.数值常量加密! |3 S: Z' r% U b! X7 m
08.数组混淆4 e9 a- p j2 a) M* H9 P3 W# \* U
09.数组乱序
$ u+ j" B" f# o- I& {& @10.增加JS逆向工作量(花指令)& x7 R; }$ b1 l: }+ \
11.jsfuck
; U0 Q: @# ]/ m12.流程平坦化# F. V7 h& w/ o" q0 r! T0 L
13.逗号表达式混淆1
; |# {; Q7 I7 w" v: O14.逗号表达式混淆2% _9 h! c$ M/ c$ O& b: @- B
15.eval加密
2 \0 X. o# \2 ` W! r16.内存爆破: t& Z. K( z- M. q# }5 K* I
17.检测代码是否格式化) I3 f$ L" b/ I- V$ `* ^
18.AST的基本结构
' ` G$ h; G Q0 \+ H19.代码的基本结构4 P7 x% t$ O. W# @9 E1 R& z
20.parser与generator9 v% t4 N5 @- I! X. t3 D
21.traverse与visitor9 z/ F* D# N- `4 w
22.types
9 ~6 J; y3 `! \# k$ ~+ Y1 ~23.Path对象详解(Path与Node的区别)
5 V/ ~6 x8 N* `+ O7 A6 `2 m24.Path对象详解(Path中的方法)
! e( W& b( V h& y, u0 Q25.Path对象详解(父级Path)
6 ~1 z) L: {+ `3 x8 m# L26.Path对象详解(同级Path)9 C2 B: X$ T1 r8 A3 z
27.scope详解(作用域)
' }" g! d* |0 P$ u; r28.scope详解(Binding)1 k, }; `. i D$ S
29.scope详解(referencePaths与constantViolations)
B% V! F4 X( h( j6 \2 O3.十六进制字符串. t9 l% L0 O: X: P4 N# Y) H4 O
30.scope详解(遍历作用域)
) {. V, I- L/ S$ ^9 `2 ?; `6 d31.scope详解(标识符重命名)- e7 `) b$ g: t) l% t
32.scope详解(scope的其他方法)
# ^8 U. Z' k$ t* r% z( k6 v) A33.改变对象属性的访问方式/ i& Z0 K5 Y+ a/ ^
34.JS标准内置对象的处理
+ e& c8 r, |; J35.实现数值常量加密
3 T$ M* ^/ Y& u8 `* d) Z36.实现字符串常量加密
5 ^' n8 v; M9 t& E/ H& @37.实现数组混淆
5 l% B5 ?; H+ |. D! M/ u3 G, d2 ^38.实现数组乱序" f0 o4 K" a% R3 y( @3 k E# B
39.实现十六进制与unicode字符串: ~; k2 q2 q7 b, z
40.实现标识符混淆
3 D4 l, ]+ p' {$ P4 Z) `% l& A6 M41.标识符的随机生成
& h1 F3 g8 q2 N0 D1 G; X, ?0 b42.二项式转函数花指令" ?8 T* `3 z: N a3 L* }' U5 z$ V
43.代码的逐行加密1 |, H" N* K, v7 L! Z9 R: Z) u( B2 c5 A
44.代码的逐行ASCII码混淆
5 r0 `2 N+ n% ]$ `- D2 t p45.完整的代码与处理后的效果+ Q, H# C( t: g# ~8 d) [$ R7 j! e" |
46.实现流程平坦化混淆1* U6 b6 w `6 v8 Z0 X. a8 H) a
47.实现流程平坦化混淆2$ A+ j( ]! c! L; w2 M) H, ?
48.实现逗号表达式混淆1" {3 _8 ~8 I4 [# s7 P- y' Z- i
49.实现逗号表达式混淆22 _5 a+ G: [& d p( _ b
50.分析网站使用的混淆手段
! g: R& _6 S- T9 b: E2 e51.还原代码中的常量4 O# o& z4 }" @$ L6 `5 _
52.花指令剔除思路 a+ E% w+ K' M$ O; j7 j
53.字符串花指令的剔除
0 s" h! I4 v. T8 c F54.函数花指令的剔除# G, z; m/ h `, ` l
55.还原流程平坦化
' P+ t: D% @* ]' o 1 U* ]6 J L4 c
|
|