|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。. E9 I. C) @. y! s& k% Q' v
课程内容:
/ [0 ]6 B- h0 v# S9 y00.课程介绍' v5 B; y+ u* b" f- A: j6 V. m6 b
01.环境配置1 J7 S( n, R6 c0 W
02.对象属性的访问方式
3 Y+ w6 \, O% @0 a3 u: f. I04.unicode字符串7 K+ x8 e1 H8 ]9 b. p( c& E7 x- [
05.字符串ASCII码混淆
2 d8 |! m- @+ s; \! [9 f* V0 O06.字符串常量加密
. @) j( [2 r F: N8 O, m07.数值常量加密
$ @. m( n, V: o* l( R6 z, f08.数组混淆
% Q6 @$ i1 z y09.数组乱序
9 `& `, L/ P3 W) E10.增加JS逆向工作量(花指令)
- {- \4 K6 V" ^8 Q x2 ?+ }5 U11.jsfuck8 ?& i" G- j2 o% g
12.流程平坦化: p! s' C( v9 P8 Z
13.逗号表达式混淆1
8 D" y; e/ \3 F3 o$ m+ j14.逗号表达式混淆2
, {8 g/ a/ b: v' I0 ~" Z/ I b& f8 k15.eval加密
# H5 X- N6 y7 T& m1 {16.内存爆破3 g U+ d# D( d" k' N. c
17.检测代码是否格式化& u- c( r* X0 k' U' D2 z
18.AST的基本结构; p n4 H3 @6 {) p. W: t
19.代码的基本结构' | F" V" c) n% t
20.parser与generator
7 c5 ], h# ~- @' l$ a6 A21.traverse与visitor9 O% ~- F' O) c% }' C. w# r
22.types
/ o+ \5 W' T* F5 o M) t* y& f23.Path对象详解(Path与Node的区别)/ f+ l6 M; c/ _
24.Path对象详解(Path中的方法)
/ I. @& F7 R; z! Y: y5 y25.Path对象详解(父级Path)
1 J' \/ _. b0 p: O8 e$ a" ?: V8 ~26.Path对象详解(同级Path)6 S# ^1 O7 O6 ~. \9 _! L! ^- d
27.scope详解(作用域): Y# r7 |+ K( u) j S" E9 I
28.scope详解(Binding)
, B5 X6 [6 g6 k/ B" W29.scope详解(referencePaths与constantViolations)
$ Y1 W+ x& M% B# Z3 c3 m3.十六进制字符串8 b; d9 V L# O. e; }# o6 [
30.scope详解(遍历作用域)# V% M3 j5 I! Z3 i4 }
31.scope详解(标识符重命名)9 v; f0 {, }& Y3 M" R! k3 Z
32.scope详解(scope的其他方法)
" ?: y* V! |) D% @. g! }& t33.改变对象属性的访问方式8 ? z' |$ V( [( d2 k0 K; k9 j
34.JS标准内置对象的处理
8 n( C/ L1 O$ G- V! g6 K P6 B35.实现数值常量加密& N! C) b( Z2 E; }. A" c3 j1 v
36.实现字符串常量加密
$ S- D7 z& u- g: b) y6 I5 ^37.实现数组混淆5 L7 E6 g+ ]" \% F4 p# x+ _
38.实现数组乱序
6 H, t+ t5 p2 B4 f( ?2 {39.实现十六进制与unicode字符串$ ~3 u0 P9 n9 T2 ^+ E7 x! e
40.实现标识符混淆
8 G' Z& ^% S5 T' j( Z0 K41.标识符的随机生成
* Q$ e; Q3 ]3 o8 g$ _: ]42.二项式转函数花指令
9 L/ ^# Y& K v# e8 Z2 N# o+ k* K43.代码的逐行加密
) F W0 `4 i3 p, P6 V3 g; x6 s+ W44.代码的逐行ASCII码混淆
# i% R. e, u0 P t# g1 z45.完整的代码与处理后的效果0 J$ C2 a4 n+ p; c
46.实现流程平坦化混淆1# v/ s9 i4 Q/ a. M7 u
47.实现流程平坦化混淆2
/ l8 k* A( v: s9 Y5 V48.实现逗号表达式混淆1# C8 D5 u$ C q0 |9 j
49.实现逗号表达式混淆23 q* \% O/ p2 ^) f6 O& z) F. [
50.分析网站使用的混淆手段, P' M4 Z, w1 r7 Z( p" P2 U: i: O7 ]
51.还原代码中的常量
: V: Y0 R; l( u7 s- S52.花指令剔除思路: g9 |6 l# k4 {% [! ?7 A- p
53.字符串花指令的剔除6 Y) J! M3 U- @2 U9 p% f' F) b1 h Z
54.函数花指令的剔除( ?+ w- ^# u+ h1 P8 Z0 D2 v/ o
55.还原流程平坦化; f5 R/ C$ G1 W) l* d1 J6 T
t p% L& f( M& w% M T
|
|