|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。! R: S+ z, r% o/ R6 ]* M
课程内容: L+ H, F4 B. \ Y% g
00.课程介绍0 }: s5 R( j4 m2 |3 ~0 ?
01.环境配置; C# S3 ~, n* l! F) p: ~& T. g c
02.对象属性的访问方式! B( f1 [' o5 s) f
04.unicode字符串
" H' l- o( W1 ~4 Q7 L% N& q8 G05.字符串ASCII码混淆2 K. }. R0 Z+ Z8 Q7 N
06.字符串常量加密) P* M2 w. q& ?, N# y8 W# L
07.数值常量加密% l8 ^9 c# n' d2 C4 b6 Z6 g4 {
08.数组混淆
: |& C0 U1 d8 |# @09.数组乱序* z) M' c, J' M: Y h
10.增加JS逆向工作量(花指令)2 j4 F* D2 e) N
11.jsfuck) _! y! F5 _6 P8 X3 R& Q: `2 D8 N
12.流程平坦化
+ z; H7 Z6 n, Q/ B0 [4 `1 i Z13.逗号表达式混淆1
1 p( f" N& D* k9 Y X14.逗号表达式混淆2
! y% C8 F9 A. L$ A: W4 `15.eval加密" A9 F9 A. Y$ ~1 Q- ?$ l9 |
16.内存爆破
" O5 l, P( i# N7 E17.检测代码是否格式化
3 R4 j) B& l1 H, H* b% l$ q18.AST的基本结构6 X8 E4 ~. j: c4 {
19.代码的基本结构4 B& E; _+ K3 h5 Z/ M
20.parser与generator
7 z; o' W/ r/ c21.traverse与visitor
* g X Z8 P/ C, E, m9 t9 X" j22.types8 t$ Y) p! u( M# g! l
23.Path对象详解(Path与Node的区别)
& m! O! A' u9 P5 Z7 |* w; ?24.Path对象详解(Path中的方法)/ ^1 w- b0 B! [8 z
25.Path对象详解(父级Path)
& [; b, U; Y; O9 }26.Path对象详解(同级Path)* @( G7 r Z8 r: S% {
27.scope详解(作用域)
" K$ ^2 P1 G+ p; C1 ]2 B28.scope详解(Binding)
+ V. c- D! |8 Q& o! [5 j# e# y29.scope详解(referencePaths与constantViolations)
- T4 ]0 q; f& k* Q; o3.十六进制字符串
9 `. V+ |" V; ]5 `30.scope详解(遍历作用域)
: a% d6 S1 t; w7 s31.scope详解(标识符重命名)
3 V: ]5 E1 J! Z32.scope详解(scope的其他方法)8 L" `! i: s% j. @& ]& J
33.改变对象属性的访问方式5 W7 F# k8 [6 V: M/ w8 D
34.JS标准内置对象的处理7 m4 w8 ]9 H, W6 X# H; G
35.实现数值常量加密+ t7 E2 i5 c3 q# I1 s& P$ a
36.实现字符串常量加密$ |3 B4 J/ _9 R" e2 j( P/ s
37.实现数组混淆2 T% m, N- \ W" ?
38.实现数组乱序
7 G1 q4 l! G8 h( z6 s9 Y+ F39.实现十六进制与unicode字符串
) Q9 U4 I. m, `2 g" k40.实现标识符混淆! O3 @* {, t. k% W8 v
41.标识符的随机生成
T/ Q9 w+ Q# c% J- W42.二项式转函数花指令
3 ^! h# J; l3 ^2 ?43.代码的逐行加密
# L) i7 w! u3 U" ^! |& d7 a44.代码的逐行ASCII码混淆
! x+ l- X( s* g& m3 {8 p. Y45.完整的代码与处理后的效果" {+ t E/ q ^" t" K" y
46.实现流程平坦化混淆1
" a4 }4 \6 d e47.实现流程平坦化混淆2+ D9 n& \* ?3 @* U" q7 W
48.实现逗号表达式混淆1) r2 r* [; Y+ E6 K4 U0 {
49.实现逗号表达式混淆2, s o2 f; m/ Q6 B8 J
50.分析网站使用的混淆手段9 |8 E+ Y6 C: i4 P2 w
51.还原代码中的常量- g9 H0 E D. Q* Y+ X
52.花指令剔除思路$ u7 L1 m+ v8 Z# I1 f: p. }
53.字符串花指令的剔除
# g8 ?7 ?- {0 x" V$ O6 r& p) v& u54.函数花指令的剔除
5 |& k! J f3 A9 y3 t55.还原流程平坦化
$ N8 I7 v% i5 G, {" T2 p0 z: n: F
' r2 ` t" m. f( Y
|
|