|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。5 E, w5 P- V0 U# e, N* V8 k
课程内容:: O* v5 r. B* d V0 d/ r
00.课程介绍/ I. R2 W# ^% o! c+ [ V. _3 B/ k
01.环境配置
. P4 A8 w) |* _# b4 J; L' I1 J4 ^9 M02.对象属性的访问方式
4 W7 E' b) N! X1 o- T( m: v6 T/ H04.unicode字符串4 v* a9 z+ M' {" H+ u1 I2 j$ p- y
05.字符串ASCII码混淆: e' ~+ I4 y& k5 d6 G$ w W
06.字符串常量加密; D- T a; K' j2 w' m2 k4 O3 w
07.数值常量加密4 m" }- h1 @+ \& `; u
08.数组混淆* o4 ]1 q4 D( y
09.数组乱序
" p; ]/ J3 o, |$ i, Z10.增加JS逆向工作量(花指令)
% v! q5 R! L0 o, y: ]11.jsfuck
* L ^* ^3 B T E12.流程平坦化; \) d* D- @( F, I& b' G7 t) U
13.逗号表达式混淆13 l1 c. l/ d0 k1 c5 R- c+ u
14.逗号表达式混淆26 V5 f* l5 v6 O( W; i1 e
15.eval加密+ X- F f1 }/ X+ P2 W2 c1 F0 J
16.内存爆破% V' y$ k1 @& N$ `% U4 k
17.检测代码是否格式化
. y8 x. @7 ?1 S, l$ e6 @18.AST的基本结构3 A Y9 v' d3 V
19.代码的基本结构5 O; k! ]/ J; q( ]6 X# L+ |, |: R
20.parser与generator
: c- k- U5 Y9 \# Q0 x% U- s# ]21.traverse与visitor
7 v1 P7 G% _5 k2 z: m. V4 m6 W" d8 v% n22.types' t {3 z, f5 y) V9 E# b( @
23.Path对象详解(Path与Node的区别)
. Y9 D$ \. P1 L# ?6 @24.Path对象详解(Path中的方法)3 q5 v. r- Z: C) x
25.Path对象详解(父级Path)5 a9 ^4 c5 N& Y) Z0 `' Q2 k
26.Path对象详解(同级Path); s( C# w, B' M5 D/ s
27.scope详解(作用域)
0 P. @+ t' x* m" i28.scope详解(Binding)
7 w7 \. Y5 v" P& l29.scope详解(referencePaths与constantViolations)8 L5 S% k% K+ h0 [8 x3 O4 l8 x, J
3.十六进制字符串" P( p% c) t/ _
30.scope详解(遍历作用域)4 y/ A2 q2 H5 }* I8 G( _# O
31.scope详解(标识符重命名)7 J% M$ ^5 N" s/ K: `& ~
32.scope详解(scope的其他方法)
# i& R5 w. O- I- \# ?0 ^33.改变对象属性的访问方式
- I# P6 a) V# Y1 p6 g34.JS标准内置对象的处理+ L7 K5 ]2 ~5 B0 \! A: _* q2 d
35.实现数值常量加密; ~! ~, d3 X, K. @. B
36.实现字符串常量加密4 I7 T3 W) {' X$ v
37.实现数组混淆
$ S9 J7 n1 B9 w& ] t! r: c9 t+ f38.实现数组乱序( E% B: P% e. s# I' O0 Q" T7 e
39.实现十六进制与unicode字符串8 H6 }2 e3 B' o U, W. a
40.实现标识符混淆$ e: h+ @. E+ J9 Y+ S; W
41.标识符的随机生成
4 T% r$ s3 c1 J# A9 ^$ a42.二项式转函数花指令
, Y+ F4 L# S) ~" M5 L$ B43.代码的逐行加密
/ K. D5 e2 R$ e, @: [6 N44.代码的逐行ASCII码混淆% ?4 r: ?: g9 ?2 i+ W5 y
45.完整的代码与处理后的效果
6 N F) [9 W/ U/ {46.实现流程平坦化混淆1$ d% P# M9 w* N0 N# l
47.实现流程平坦化混淆23 _7 c9 F! [1 [2 L. A' u; D
48.实现逗号表达式混淆17 A: x8 E1 R9 G- w. i! C
49.实现逗号表达式混淆27 C: M5 m, b# g1 G6 }4 ]
50.分析网站使用的混淆手段
9 e$ b4 k* P% n" M51.还原代码中的常量
0 i2 q, w( L0 ^! U52.花指令剔除思路* P( D9 g' Q# i3 m8 b
53.字符串花指令的剔除+ s5 n" R* F. F: ?" N& n, F
54.函数花指令的剔除, \; e6 w" D2 P9 v: k6 Y5 Z
55.还原流程平坦化
3 C) F. d8 y7 P. K9 l5 i" I
& h" B: V* ?0 N' v" t
|
|