|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。3 e( W3 I; `, `8 q
课程内容:, \/ k: V2 v4 h) K4 k1 E; ?
00.课程介绍/ s0 ^$ @6 z# J2 L7 R; J+ f
01.环境配置' {4 k) [' w7 X+ n! A) d4 O
02.对象属性的访问方式
; U2 _7 ^3 U7 `. B1 z& A, G04.unicode字符串
* H) s( W e. v- a2 \05.字符串ASCII码混淆
: O _% _3 u S9 L' ^06.字符串常量加密
2 }. [' |5 {# w/ e, q07.数值常量加密- X% R( p. O. R/ E7 l" @
08.数组混淆
# Y7 [! y' U9 _$ l' ^09.数组乱序
3 F+ A& [ E# p: ^/ |3 ^10.增加JS逆向工作量(花指令)2 Y3 U2 |' i' ]
11.jsfuck
; W9 c/ z/ ?3 d12.流程平坦化" q1 x8 D7 h2 P, g5 I' P
13.逗号表达式混淆1* K) v- p4 J* f+ W6 Y
14.逗号表达式混淆2: [0 U$ p- t4 I
15.eval加密
3 ^: D/ V, ~) q7 A5 w% q16.内存爆破
8 g5 P, z+ I& v2 a, x {# `7 R; n17.检测代码是否格式化
0 J- [9 m: o5 ~/ B0 l) l7 C, S' e18.AST的基本结构
+ p1 r% n5 b) `8 |' T7 j) B; O19.代码的基本结构
" e a0 V! w# {" b9 P) e2 R20.parser与generator; I& Y5 U. A8 Q F4 y7 B
21.traverse与visitor
. H7 W0 Q: j+ o2 S" p( x" D22.types% l( \7 V9 z& G8 S9 y/ @5 u, E
23.Path对象详解(Path与Node的区别)
& D# Z$ h0 F( x( z24.Path对象详解(Path中的方法). q6 \% ^# G# v, U0 V: ]7 j- X
25.Path对象详解(父级Path)* p9 b! p+ D7 k4 Q7 u* R: U
26.Path对象详解(同级Path)
- D g& c4 v1 P* k# R1 p' I& Q27.scope详解(作用域)+ \3 x$ G- x1 |/ _7 u
28.scope详解(Binding)
3 u# S; F+ t5 F9 T9 Z5 r$ L6 t- z29.scope详解(referencePaths与constantViolations)
) [* F. P# _9 g p9 B4 r6 X3.十六进制字符串 z2 X1 b; a# Q4 M! H) S7 h0 Z" m
30.scope详解(遍历作用域) F; G2 R, X% Z- x
31.scope详解(标识符重命名)( U8 A% [( Y% q9 M% o* R
32.scope详解(scope的其他方法)
4 f) s- a% C9 Y) ` S# P0 j33.改变对象属性的访问方式
. i. M$ t, i1 y+ _34.JS标准内置对象的处理
: a4 O8 u3 r7 }- Q' g* }( {; L7 Z35.实现数值常量加密/ g; w# Q4 h( J# N4 t8 ?
36.实现字符串常量加密
( @2 V) a8 L/ D5 l3 _9 X. w37.实现数组混淆$ ~( U0 u2 L- V& G5 p; E# s: s
38.实现数组乱序
; |7 m0 j0 ], b7 Q39.实现十六进制与unicode字符串
5 `) x" L7 T7 h5 u. C40.实现标识符混淆
7 M5 F$ O, T% x7 S! [41.标识符的随机生成
1 r6 s0 C/ a8 n8 \42.二项式转函数花指令
# | h6 t1 n1 ]8 l" { ?+ P43.代码的逐行加密
K' a* K) Y% s: C4 S5 G* A+ G- t44.代码的逐行ASCII码混淆2 P$ e% H) p. N/ q
45.完整的代码与处理后的效果4 o/ A9 f0 z3 }2 I' D
46.实现流程平坦化混淆1
& ^ V* q, _4 f7 o+ E3 m47.实现流程平坦化混淆2
5 H+ t5 ]# N) a6 u$ s( S48.实现逗号表达式混淆13 H" ` n! \8 s, ?
49.实现逗号表达式混淆2/ C( ?5 W; }4 M( I* f: o0 l1 J
50.分析网站使用的混淆手段7 L6 n3 Q4 P+ F
51.还原代码中的常量$ F; w- a5 Q* x: B5 W" `% s# S
52.花指令剔除思路
% D' {3 f) i7 l) v4 E* K53.字符串花指令的剔除/ s% @5 a' S: J0 Z; E% K$ T, E3 D
54.函数花指令的剔除
+ o: J, W" l) [! O55.还原流程平坦化0 J0 O9 D/ ~: D- B8 z
( s, j5 t: l$ y
|
|