|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
# W, x: B6 e" D* k- \8 R0 m% V课程内容:
: T, [/ l5 ~; J- v, S00.课程介绍! g* S2 B; T# s; G* g
01.环境配置1 C) [+ _# K5 I1 M) X1 Q; j( ]
02.对象属性的访问方式* x; B+ p: K) n* h- M
04.unicode字符串
- r+ m* ?3 {7 T" r% A. i05.字符串ASCII码混淆' C+ k$ u* ~5 m- X Z3 i
06.字符串常量加密
( m* y! a# D* d% H) c7 ^07.数值常量加密
6 I7 z% G5 n$ f5 A! [8 J08.数组混淆
& y2 S4 K" e* W( m; j- U09.数组乱序) z3 u" H5 V' {. O0 p
10.增加JS逆向工作量(花指令); E4 `8 i2 [5 o+ p9 T, f- C( e
11.jsfuck/ N& h6 B$ i2 ~$ V: _( f
12.流程平坦化
- G& f$ z6 H6 ]2 f, p5 e ?13.逗号表达式混淆1
9 Z$ @# q% D1 |8 p14.逗号表达式混淆2
+ z9 N4 g, X" R6 ^- E+ C* x& V& k2 A3 h4 U15.eval加密0 X) C) E& g# D6 P% D" x% J
16.内存爆破
. ^' f/ c y( y' d$ ^17.检测代码是否格式化
; `) Y4 S3 {( d( a; Y0 ^3 Z3 E18.AST的基本结构& H% x1 v" \2 ^4 w2 ~
19.代码的基本结构' z6 j& j5 z g. S
20.parser与generator
( r) P4 w' H5 q0 t21.traverse与visitor# R, I+ D% c1 b& a% N9 s# u' Z+ d1 U
22.types
, {5 V7 F1 o1 l' k5 q23.Path对象详解(Path与Node的区别)
9 b. i: e" U& ^9 X a/ l$ L/ H24.Path对象详解(Path中的方法)
: L+ @7 ~* \1 {$ _0 T; {% l25.Path对象详解(父级Path)5 Q+ x' W' E4 P# e8 a2 ?* K5 r# _4 @
26.Path对象详解(同级Path)& [- p: Z- J2 {: S2 d% k. O
27.scope详解(作用域), v y% e) }/ C7 b% d0 t- L
28.scope详解(Binding)& p: T+ t* u1 r3 Y
29.scope详解(referencePaths与constantViolations)
7 g% M, M- Z6 Z3.十六进制字符串( t, b2 A9 y) d" `: ~6 A
30.scope详解(遍历作用域)0 J5 [: X0 `" K C' g
31.scope详解(标识符重命名)
?3 \( m+ U8 L5 F2 R, T32.scope详解(scope的其他方法)2 y" ?8 x# ? b
33.改变对象属性的访问方式4 `6 B8 t5 L; b' d" Z1 I; I; N
34.JS标准内置对象的处理) Z# d p& M; b! u9 {2 y
35.实现数值常量加密/ v, z9 G9 i. P
36.实现字符串常量加密
* C" s0 }6 a% t) f. Z37.实现数组混淆
8 H; f! a; W Y9 v; o) Z7 t38.实现数组乱序/ A2 Q2 @8 I& ~ v* l. m0 o. C
39.实现十六进制与unicode字符串% v4 r) _ u8 ~4 q* g" w9 M" Y' H( ]
40.实现标识符混淆
1 [# I1 ?. p, X1 K8 c4 [% W41.标识符的随机生成, N' _5 e3 G. g/ ?, I
42.二项式转函数花指令6 h, `* u9 P W( _: e7 o- p
43.代码的逐行加密
1 `5 i, O& ~% \4 y44.代码的逐行ASCII码混淆7 o& L: {* Y: x5 i
45.完整的代码与处理后的效果
) D5 Q# S9 Z( B E2 `5 b; U- [46.实现流程平坦化混淆1
% H6 }0 |2 u; n3 W3 h5 n47.实现流程平坦化混淆2
6 {" I7 ?. N- w7 Y2 x- [48.实现逗号表达式混淆1- l8 {2 _( L* X) h0 Z
49.实现逗号表达式混淆2
' q5 s( N8 s- ?8 J2 R50.分析网站使用的混淆手段
/ R \% ~% t/ p- f6 I0 E51.还原代码中的常量- J/ |: w$ a7 Y3 Q1 k8 t! B
52.花指令剔除思路, B* L% _) M" }
53.字符串花指令的剔除
* D5 |0 V% m* v: b54.函数花指令的剔除5 v; l$ n2 N& D7 U% M& Z: Z8 Z* [
55.还原流程平坦化& x4 B2 b, }/ f, }& B
9 P3 M, s- X6 L6 X h- r
|
|