|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。* G9 p& x6 @, I5 @% I7 |5 @
课程内容:7 i3 u" V4 v: y/ p( o5 b* A! h6 c
00.课程介绍: W: ?* o" f( w5 k
01.环境配置; D, t2 a3 F9 A2 L/ @
02.对象属性的访问方式 |" c" Z! c* m9 y
04.unicode字符串
$ i" E, c( ^; _( V9 O05.字符串ASCII码混淆# g; A7 `! m& F8 [+ ^4 I: ?& Q! _) @/ X
06.字符串常量加密6 O1 ]! W( k* x' U- K
07.数值常量加密! z+ X& t% B! }; ?" ]
08.数组混淆
) _5 a7 o. G" z- R/ v8 t6 S7 K' i09.数组乱序0 f* `* \) a6 B: l
10.增加JS逆向工作量(花指令)
: c9 |2 U/ V# K$ t' l3 ?1 P( l11.jsfuck' L: `% A; J7 q( G( Z
12.流程平坦化
2 n$ S% f; H6 Y' u, i6 Q7 G0 G13.逗号表达式混淆11 L& K1 M& q* M* L$ z2 I0 d
14.逗号表达式混淆2$ I( t8 w/ S; C$ o( N0 C. B
15.eval加密$ u* r- A0 [* T0 D, n! E
16.内存爆破2 D* S: `/ X9 H1 [' v" X' E- L
17.检测代码是否格式化
/ z. i) P" w0 K18.AST的基本结构
5 ^0 s' f: V+ j. b19.代码的基本结构4 x; t; _. h! ~( q* [7 Y* b/ T9 F
20.parser与generator
% |1 `4 @1 K8 P# m7 Y S- L* v: _5 ~21.traverse与visitor
9 T- _! \" y; r: c. ~/ W22.types
) K1 W; g2 p5 `. H23.Path对象详解(Path与Node的区别)1 E9 v c7 _5 s3 Y: A
24.Path对象详解(Path中的方法)
6 a' d$ b$ h S3 g7 m- T# u: X25.Path对象详解(父级Path)+ w& x0 b- a% N! k3 r+ g
26.Path对象详解(同级Path)
4 ~1 I# V# T; P& O- |27.scope详解(作用域)' [$ ? v. ?' b
28.scope详解(Binding)# `/ b! u; `; p% m
29.scope详解(referencePaths与constantViolations)
$ v3 U$ A- E. m! j U1 r2 [% P3.十六进制字符串
3 D1 G" ~* D- k) \4 L }4 i% ?' Y30.scope详解(遍历作用域)
. f* ^! M x( M2 l+ l4 u31.scope详解(标识符重命名)
- ~+ s+ I" a- ?- d+ Z5 }32.scope详解(scope的其他方法)! m9 u" y: N; y2 W4 w0 ~" M: n
33.改变对象属性的访问方式5 b9 V3 c- _4 J* ?: h7 g7 y
34.JS标准内置对象的处理( |2 k6 k. m: A7 z
35.实现数值常量加密. S$ j4 L# m1 T
36.实现字符串常量加密9 P7 d3 x& r4 p: @
37.实现数组混淆
% l" G0 r; e5 w; a, [/ h38.实现数组乱序& }+ k- x' n/ @ {6 Q
39.实现十六进制与unicode字符串
( n( _% N8 W. c& l9 N40.实现标识符混淆
* d8 ]% b. Y' I+ a3 ?1 O41.标识符的随机生成
: ^; H9 X% Y( V' p5 o. t42.二项式转函数花指令& @; |1 \3 m, k- @# _- m; w
43.代码的逐行加密" n3 C" P7 m% {
44.代码的逐行ASCII码混淆$ L5 F4 T3 \; M6 C/ o7 i1 _0 \
45.完整的代码与处理后的效果
4 V6 c) d+ f+ Z9 ?46.实现流程平坦化混淆1
$ I1 l$ B. B. K7 q! m47.实现流程平坦化混淆2
5 J6 }6 K4 z: F) k48.实现逗号表达式混淆11 i- X8 i ?+ l/ I0 ^, s5 X1 { Z
49.实现逗号表达式混淆28 S. O+ f V+ g; `
50.分析网站使用的混淆手段- }$ k7 l$ |: L# X, T# k K
51.还原代码中的常量4 g3 t1 y/ m: U& F* B. J8 X
52.花指令剔除思路# M1 h; D4 o- o- M$ ^; m
53.字符串花指令的剔除; T8 Y9 w% f. S! w
54.函数花指令的剔除7 ~" D% v9 L- U7 h3 J U
55.还原流程平坦化
5 G7 h% }& L5 X* |+ ` - \9 Q! [# \8 s" t/ W9 z# h
|
|