|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
& v" a; B! e3 x) X$ y* C9 R课程内容:3 A# E& I; U# m* s
00.课程介绍, z J; A5 n0 y7 D, A& ^) P& l
01.环境配置- e$ x' j9 p7 j2 Y" x2 z( }
02.对象属性的访问方式) G$ F* T! y8 j% B) H1 ]3 Z+ n% m6 ?
04.unicode字符串( w! ?+ F2 @% s. |* w, ~
05.字符串ASCII码混淆
* q. N" v' H. m06.字符串常量加密
, q' e+ C7 p6 Q0 Z9 y0 ]. y07.数值常量加密- K. w& W E/ R. n/ k( W# ?
08.数组混淆
) a- X3 j6 J6 O8 j# Z. w! S3 R# H09.数组乱序
& B6 ]) T$ {5 n* u10.增加JS逆向工作量(花指令)7 P! \# m, L% S$ e& A3 r x/ _
11.jsfuck( Z( Y, F& ]' |
12.流程平坦化8 u, X, B$ b3 L! o+ \
13.逗号表达式混淆1
# q0 E8 A k: P. i7 U14.逗号表达式混淆2
$ t' N% G1 ?+ x! A: a5 c3 c15.eval加密1 E) \+ W6 S- z( Y( g2 n
16.内存爆破
/ ~6 h6 \8 Y Q17.检测代码是否格式化+ ^9 _% b n- F0 b4 C1 c# I; S3 o3 m
18.AST的基本结构
7 E- H3 e+ k% N5 P; H19.代码的基本结构
, C0 q" T, Z% Y7 t3 y [0 a; g) p20.parser与generator
, N- j) J: x; z6 V. O21.traverse与visitor
7 D6 [ {, R- N22.types
' M+ r5 U( ~ Q23.Path对象详解(Path与Node的区别). C6 D& \3 t! Z H7 s
24.Path对象详解(Path中的方法)4 k% U, _! q. p6 b5 O
25.Path对象详解(父级Path)) ^ B+ ]' v; w6 d3 B/ X7 |& ?
26.Path对象详解(同级Path)2 e6 {. p3 \! X
27.scope详解(作用域)2 M$ c) `, M) R! K4 j6 c( B, M, I7 v
28.scope详解(Binding)
6 H a5 R: r6 j2 P29.scope详解(referencePaths与constantViolations)
j# D" C/ L& K1 |& |: s/ E* q( P5 x7 L1 J3.十六进制字符串
! S" l' a% D9 T, z; w- u# O30.scope详解(遍历作用域): E: ?( f. u# L/ n
31.scope详解(标识符重命名)2 p1 [& X$ n' u6 L, a c
32.scope详解(scope的其他方法)0 c! W% F) @" k2 W$ b; V
33.改变对象属性的访问方式
8 S& T( \) M' A" v- E34.JS标准内置对象的处理
3 z) @3 _$ t1 x! O7 g35.实现数值常量加密( L; x2 b0 R6 S6 H
36.实现字符串常量加密
0 _$ N [5 Z) } I37.实现数组混淆2 b+ z6 F. H2 _" q2 o4 `) j
38.实现数组乱序7 b7 V3 I) }; |& j# Q4 ]
39.实现十六进制与unicode字符串
( U+ `6 }) T2 k) y& y8 f+ z# @, K40.实现标识符混淆( \% O9 N# }: V9 b: b
41.标识符的随机生成
, ~4 c4 ? g8 e: s) u) I( G' A42.二项式转函数花指令( D _9 L; L$ d" e7 r/ L
43.代码的逐行加密
' F9 L+ I% o- j+ V( N7 F$ w8 w: A44.代码的逐行ASCII码混淆
- D2 G6 ~9 Z( f6 Y! A45.完整的代码与处理后的效果8 T) F4 H7 m' n6 A) y
46.实现流程平坦化混淆1
* J- d6 K6 M4 R; b7 c47.实现流程平坦化混淆2# ~. y; x% _9 Y1 u% o
48.实现逗号表达式混淆1
3 ~1 I4 a/ s$ }8 _# e49.实现逗号表达式混淆2
& v' O. n8 h! f) h5 L/ Q* C! p9 k0 Y50.分析网站使用的混淆手段# {5 B9 e1 p" H
51.还原代码中的常量
* ]1 Z; T) d' _, Q e+ z52.花指令剔除思路
. g' l' [1 D" v. N53.字符串花指令的剔除
1 M0 K1 @/ `* f54.函数花指令的剔除
' U: J( I9 y% y) v5 ~" N55.还原流程平坦化
; o7 B2 @% i0 _
5 K( M) D- T1 o' k- [% w4 g
|
|