|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
' Z$ a9 H+ G4 h3 A9 l& s O! R课程内容:9 e9 u" |& P8 H
00.课程介绍! v1 l% A9 [1 q$ L* w3 w2 N0 m
01.环境配置
+ z, x# D+ H- p02.对象属性的访问方式
# \- ^4 u$ @) _8 ~4 L04.unicode字符串& |6 E5 H2 v+ \3 m/ f8 Z0 ]
05.字符串ASCII码混淆
) L& w9 u# d3 H! [$ s t06.字符串常量加密
) x( @9 v5 F' N( \0 U07.数值常量加密
2 N2 ~0 y' b' N, |/ Y, n08.数组混淆
5 c6 g. T5 H5 \' e09.数组乱序
. p1 V) V/ U: ?3 O10.增加JS逆向工作量(花指令)4 f" ?) I: P! s; n
11.jsfuck
, |3 j" P% k( h- g1 H% H# `12.流程平坦化
, W7 P# U, [* d7 r3 o9 Y, F13.逗号表达式混淆18 Y& R( q, S5 j1 \; X) a0 [. g( a
14.逗号表达式混淆2! C" k$ N( h* K" a$ f! h% v E; Q
15.eval加密
3 n. @& m5 `, J2 ^9 Z16.内存爆破
% ?% J( D5 q7 H k' v1 ~17.检测代码是否格式化
5 D/ j7 R% t" E6 |( w8 U4 w4 n18.AST的基本结构( C6 }8 I2 a, O, m8 M
19.代码的基本结构/ @( u/ N- u' p7 I$ F5 I
20.parser与generator. |/ D- k8 [2 j( p' [
21.traverse与visitor; ~! B' Y% o8 o+ ]8 B8 L
22.types
' N3 ~& N' _9 N' u6 m23.Path对象详解(Path与Node的区别)0 G0 c; s2 g9 ~- e6 y2 N9 g
24.Path对象详解(Path中的方法)0 k* \" ^" L. B% K; o0 Q, Z# f
25.Path对象详解(父级Path)9 m) b( M2 b/ I( }2 X
26.Path对象详解(同级Path)
" D' l7 G3 p8 e. j# d# Q27.scope详解(作用域)
6 s2 v9 {3 }. T: A( l [5 P28.scope详解(Binding)2 t6 G7 H: {0 @
29.scope详解(referencePaths与constantViolations)
9 _; {/ E4 ~+ t+ S$ D3.十六进制字符串
& N7 M& ~+ ~& q5 C& r7 ?2 `4 _30.scope详解(遍历作用域)4 M# t- C3 Q8 l# R/ B" V
31.scope详解(标识符重命名)
0 y% ]% h( H1 \+ _6 R+ x, i4 f32.scope详解(scope的其他方法)
( P6 W) u* Z" U0 B33.改变对象属性的访问方式* }6 O6 k! {# e3 v( w4 q1 k
34.JS标准内置对象的处理6 a/ H/ B+ d* M
35.实现数值常量加密* ?4 P* m$ |: M- y& f
36.实现字符串常量加密
: a y% U z5 u& @: A% j8 g" @2 f37.实现数组混淆7 J% ?+ Q9 l( m' @ o0 q( k6 I) x( o
38.实现数组乱序
, u; J0 [4 h" ~! q) N39.实现十六进制与unicode字符串
$ [2 _) y( ^) s D- r% |" o40.实现标识符混淆9 l2 C& }% t# O. P0 b( G
41.标识符的随机生成
5 t } X5 ?) M42.二项式转函数花指令9 A" ]9 G6 Y# w$ B& Y
43.代码的逐行加密7 w, ^) `; R( @# S5 r7 I
44.代码的逐行ASCII码混淆9 y9 L, l u( [& M' }* g
45.完整的代码与处理后的效果+ d6 S9 ^2 O* O- a1 x+ q# W
46.实现流程平坦化混淆1
6 r3 A9 q1 z) T47.实现流程平坦化混淆2, C& R( a& R j
48.实现逗号表达式混淆1 U6 }/ n+ E7 J
49.实现逗号表达式混淆2; f0 J' ]) Q/ ]- a2 z+ [" A- h+ i
50.分析网站使用的混淆手段( |) G4 c) v8 t! v* j7 u
51.还原代码中的常量
! a4 \2 z' q; J4 n8 V52.花指令剔除思路
2 S- v/ e! P( N2 b53.字符串花指令的剔除
" d* s2 ~) j/ p54.函数花指令的剔除
" B5 N) M: a' i! c& W \7 L) h1 n55.还原流程平坦化
/ [. Q: b- S) i( T4 t$ q
% d) ?. F2 S# `5 q2 a# b
|
|