|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
) b$ y0 d2 @( W {1 P; c课程内容:4 ?' ~/ U( f+ @! a
00.课程介绍
0 N6 e( L. {5 k8 I01.环境配置
- ?4 V g3 L# [' t( l4 w8 o02.对象属性的访问方式
9 R) {8 D0 p3 ], r4 L2 c04.unicode字符串
4 V9 [5 w. i+ h! `$ ~& n: y05.字符串ASCII码混淆
- x8 y. v' `9 T; x06.字符串常量加密
+ L1 S4 x; y7 V. `' J8 |+ Y07.数值常量加密5 g% Y( r) M/ g* `: I7 ^
08.数组混淆
' t. T. M6 o. _8 c4 {) z u. @09.数组乱序% f! W8 [; A0 q7 c5 C6 D' y
10.增加JS逆向工作量(花指令)
7 \2 ~' S" U& h/ g" B11.jsfuck
2 D& j1 g5 s0 @; X9 [12.流程平坦化2 ?: f7 ~: J) f; T& r# J
13.逗号表达式混淆1) i2 u: H/ H/ F/ A& }5 w$ o
14.逗号表达式混淆2
1 \% G/ C( X) j( o15.eval加密
2 c5 M5 k |+ l16.内存爆破$ p/ q H# L+ C& h
17.检测代码是否格式化" F: O: C: t0 k+ F% @( S
18.AST的基本结构
! o. ` E; d* f19.代码的基本结构
0 p! k# l5 ]" l2 i2 l7 w20.parser与generator5 p4 ^/ R# A) F) K) t+ X: N
21.traverse与visitor: Z6 W0 I5 S" W) Z$ B$ M0 p8 H. [
22.types5 S: b& e9 \5 X3 ~. ?6 J
23.Path对象详解(Path与Node的区别)6 e; I: J) l4 Y$ v" Z3 P
24.Path对象详解(Path中的方法)* ?4 Z9 _: R; n3 ^: U
25.Path对象详解(父级Path)' E# V$ S# y! b
26.Path对象详解(同级Path)3 Q" P" ^: V* `( @, T9 e! f
27.scope详解(作用域)* ~; j4 d* d0 c1 o; Z) F* @
28.scope详解(Binding)0 L$ o" m0 K6 h# {
29.scope详解(referencePaths与constantViolations)
+ ]2 c: F _* m T& R- l3.十六进制字符串
w0 h0 }8 Q& f' A. l. f30.scope详解(遍历作用域)" M2 X1 ]5 g% k0 P: ~: E G
31.scope详解(标识符重命名)
R$ [. P5 K1 U5 C" J5 k% r5 Y32.scope详解(scope的其他方法)9 T& j* Z; t/ }7 {3 @' b. Q( p
33.改变对象属性的访问方式
/ Z, X8 Y1 S% {) ^& t34.JS标准内置对象的处理
+ f4 T, ]& n, M* I# g7 K1 ^7 J35.实现数值常量加密+ k- n! a, I3 d3 S4 Y6 O
36.实现字符串常量加密* J* u! v% [: O0 P7 \# y$ Q
37.实现数组混淆
( v* C" u. i% ~$ u! W5 t( ?/ A38.实现数组乱序; M3 i, W" H/ R9 D. l4 E
39.实现十六进制与unicode字符串6 X- }# w7 k+ a0 j; T
40.实现标识符混淆: Q, ]4 ] `- q5 N& W6 Q9 K6 a
41.标识符的随机生成
0 \& o' Y* `- d# O42.二项式转函数花指令
0 d$ e+ g' I8 |+ Z43.代码的逐行加密
$ s4 H9 b& m4 c: L44.代码的逐行ASCII码混淆# ^, y* y. a" \* E) X" ?6 k& z
45.完整的代码与处理后的效果
+ g S$ Q9 n- `+ k# I* y! i46.实现流程平坦化混淆16 |; @. F( y" B9 G7 _) R. z8 k1 `8 U
47.实现流程平坦化混淆2
]7 y/ Y' T! b* O" r$ _* ~3 g, r48.实现逗号表达式混淆1* M, P/ i- D1 G7 Q6 _9 ?% b
49.实现逗号表达式混淆2
* r% k* q7 j( K% j' d4 m% U) }50.分析网站使用的混淆手段9 S9 f5 e2 F3 N$ y% d! F4 e
51.还原代码中的常量
0 l/ n( z+ `% S% H52.花指令剔除思路0 H' i2 j& M- A% {; f8 Y
53.字符串花指令的剔除' |, R1 u0 O' O0 t
54.函数花指令的剔除$ ^* E' ~' {! U4 C0 C( D- {
55.还原流程平坦化" {0 y6 ]) Y! a Z& ?0 p- T
F/ ^; b; [( |3 I# D
|
|