|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。' t, i( N- E: ^
课程内容:8 w4 A. W" j- U& D8 h' K1 T
00.课程介绍0 B2 @( @% E: x( m/ c. g$ D, N
01.环境配置
+ L# C) O( C0 P02.对象属性的访问方式# s/ o( x4 v1 M' W' x5 o+ t
04.unicode字符串
$ h7 D. L/ f, b7 H05.字符串ASCII码混淆+ ]6 u9 P$ K+ F5 z, O( K
06.字符串常量加密
7 k& s" R' w- j2 M07.数值常量加密( ~$ \2 Y* d0 J1 D- C
08.数组混淆
3 E7 ?. X# v5 W: ]- }6 E, k09.数组乱序/ p! G7 ]# \; D2 z: J" [
10.增加JS逆向工作量(花指令)
9 M& ?& U: e# C& R7 X8 P' a11.jsfuck5 m. X S1 E1 \/ _2 j
12.流程平坦化
8 T$ \8 T2 J7 p+ [9 ]( s. d7 j, _13.逗号表达式混淆11 |) [- ? `- c4 {0 U1 C7 r% e) u6 c/ e
14.逗号表达式混淆2$ A, Z+ g6 E% c" d! n5 x# V# K
15.eval加密0 y5 A' N" y3 ^( X
16.内存爆破" b5 F/ k8 a( J5 M
17.检测代码是否格式化
7 s1 C% E- X8 q8 C# y18.AST的基本结构' A; {+ z$ j2 c) P. K: b; v2 w' j) \
19.代码的基本结构' Z, f/ {$ ^- w6 A z, n2 }: s
20.parser与generator
8 R* K4 S5 q% d21.traverse与visitor
" O G3 T: U7 K9 y22.types
" A- ?1 `4 _2 b* H9 p; H; D23.Path对象详解(Path与Node的区别)4 ^& w: ^: Z8 u1 M& k1 ~6 Y, u% G. \7 P
24.Path对象详解(Path中的方法)
9 g8 U# w1 b5 O. Z' [* C25.Path对象详解(父级Path)" Q7 t/ G2 y; j" d, D9 x, I
26.Path对象详解(同级Path)
" c! [2 `4 ^8 m) a @27.scope详解(作用域)
$ k+ P' p$ R- ?% H( j28.scope详解(Binding)
# z; l( @$ r9 Y5 W29.scope详解(referencePaths与constantViolations)
0 h6 U. C" `) n7 [' D3.十六进制字符串
( [0 E. C9 `7 s$ ^30.scope详解(遍历作用域)
: f/ {* Z! v/ j! u1 X31.scope详解(标识符重命名); U8 o w% j, E
32.scope详解(scope的其他方法)* q8 X+ y7 {* o
33.改变对象属性的访问方式
5 P7 T% |# S) u& \/ M3 D34.JS标准内置对象的处理
d% k7 I8 n6 O& m2 {35.实现数值常量加密
' k4 D4 i) w' P# H' O4 g6 I36.实现字符串常量加密0 ]( x5 l2 N& D$ V# \$ N
37.实现数组混淆
, @1 L$ f! h7 Z& _3 O5 F. C1 W' ]! ^: }+ v38.实现数组乱序
& T3 }2 n& D$ C- j: C# R; B39.实现十六进制与unicode字符串( n' t! [( X1 f& N. W2 J" g
40.实现标识符混淆
! z! ]% e# }! ]" Z$ B41.标识符的随机生成: B8 V8 q m: f7 X/ ?8 d ~- l
42.二项式转函数花指令
) |' B! C# T5 ~. T5 r( K% U43.代码的逐行加密
9 P, @5 g9 G: x9 `' a* d44.代码的逐行ASCII码混淆
! b u. r( ]0 H4 b K4 K45.完整的代码与处理后的效果
s! u' i2 t; E" I46.实现流程平坦化混淆1
( g5 l0 C- i( `4 ^9 w: }2 d! c' P47.实现流程平坦化混淆2
; k( ]3 l3 Z7 y# z0 H% g48.实现逗号表达式混淆1
. X+ P8 m6 G/ R% c49.实现逗号表达式混淆2
8 T+ j+ v1 D: r- T1 ]3 M( D$ _, w# T5 C* L. m50.分析网站使用的混淆手段# E% a( o( _7 e& b( s0 A
51.还原代码中的常量2 j% t1 m7 K: Y, k9 k" D
52.花指令剔除思路
- i2 d7 H/ v/ |6 a. y& J: S53.字符串花指令的剔除5 m* U# z, G( d! D) g/ E# ]# Q
54.函数花指令的剔除
; n |" G0 h+ z* z- B" e9 w8 G55.还原流程平坦化
7 K, m$ j& W& _
5 X* V( G/ [( d* F6 k! S
|
|