|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
$ v0 f; i. u, {4 R, ~/ w课程内容:
. k% R c9 x% m00.课程介绍% B5 q0 E% i2 A1 m4 `5 A3 J
01.环境配置
9 Y- T/ D8 Q! l) o3 x8 A% Y0 d: d02.对象属性的访问方式; g) |5 i/ L; i7 p2 W6 v
04.unicode字符串
! a* F% |# l/ O05.字符串ASCII码混淆+ D) ~4 [0 c6 F, _# w; R. m
06.字符串常量加密
% |% U' v, D- Y07.数值常量加密! ^1 R3 m1 R9 |- N+ m
08.数组混淆
6 R1 M. o: e9 q09.数组乱序
. o( A' U& P& w* X% H10.增加JS逆向工作量(花指令); C$ ~3 N( ^, Y2 C; K" J
11.jsfuck" ~1 n# a5 y+ K+ M1 \
12.流程平坦化
* c0 r, Y8 w& W! f1 C. l% P1 e13.逗号表达式混淆1
O1 t, G7 X7 |( G) X14.逗号表达式混淆2
0 ]7 F4 h0 D! c) X4 [; O6 o15.eval加密
: X3 Z9 K+ a2 W$ e% b' |/ S16.内存爆破9 Q; J" F- D U# ?- H
17.检测代码是否格式化) H! e$ d, J5 B) E. _
18.AST的基本结构1 o: e4 I9 |, F& p# n: t0 f& q8 S
19.代码的基本结构
7 X; J ?# j0 @+ T- {20.parser与generator
5 h& ~% _; P2 @0 r! m. O0 R21.traverse与visitor8 J. Z, f* K \3 a; V
22.types6 ~0 Z8 W' M0 B
23.Path对象详解(Path与Node的区别); w+ Z% J7 Z$ K% D6 u/ W" Y
24.Path对象详解(Path中的方法)( d4 L; C5 _/ ?6 Q0 H5 C/ ]
25.Path对象详解(父级Path)0 o: M4 z: p4 |) Y5 P
26.Path对象详解(同级Path)+ y! z, U/ O: i }/ b" M7 l$ d. n9 [
27.scope详解(作用域)
8 @, ~, b5 T- S# r) F4 L( F28.scope详解(Binding)9 W Y' Y+ |& @' ~# F) N$ H& R
29.scope详解(referencePaths与constantViolations), q' R c# f6 L# h& k$ g$ e/ K
3.十六进制字符串5 F( S* G& w7 B0 D7 L
30.scope详解(遍历作用域)
; O) z0 ~+ f* d$ Q31.scope详解(标识符重命名)
1 |4 p( v+ W d* I& [32.scope详解(scope的其他方法)
4 w5 K, O( a3 [& Q9 F- w3 X$ F( G6 z33.改变对象属性的访问方式- [7 V' C! d- F- X6 f; V7 ^4 K
34.JS标准内置对象的处理
1 X) x( G7 c1 l5 E1 ?. t35.实现数值常量加密
7 j+ t1 z! n$ ~' } f& _36.实现字符串常量加密
% f* y3 \5 i* \37.实现数组混淆6 p" n- M# e, ]2 g
38.实现数组乱序
& C9 ]1 b; v) N; n# B39.实现十六进制与unicode字符串
/ ] R/ c/ h+ _" {, g1 \5 ?/ w40.实现标识符混淆
' D8 `! m x3 m0 F41.标识符的随机生成* m( g6 |+ A, I4 T Y: H
42.二项式转函数花指令3 U. n3 y8 K& @% O x+ j
43.代码的逐行加密
U" `& J9 v+ I! ?; c44.代码的逐行ASCII码混淆
0 u5 b' c) L: w0 Z2 n! w45.完整的代码与处理后的效果
n8 g( ~# X) T/ L" J46.实现流程平坦化混淆1
' R$ L. y, b, Y g5 h/ ~& H47.实现流程平坦化混淆2
# a, u+ {0 C0 Q% c8 }0 V4 e$ a48.实现逗号表达式混淆1
( p# B* B" S8 K u49.实现逗号表达式混淆28 ?# k& C3 @- j" V- B
50.分析网站使用的混淆手段- B- {# c0 \. ~
51.还原代码中的常量+ M! K* U6 s4 B3 W* Y
52.花指令剔除思路; d; f$ D" G, J
53.字符串花指令的剔除
$ J- G4 J2 |" H5 J9 C( \, Z* D54.函数花指令的剔除
7 q" X& d8 `; @! m55.还原流程平坦化6 K& ?! f4 T; R) p6 b
" _' l5 ^+ X G* r0 i. O
|
|