|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。( |2 A9 H) [* g" r9 a2 |% ^- O) C" t- }
课程内容:# S' S9 p9 p2 ]1 h3 @5 i
00.课程介绍
( M; `& v: V& R. F01.环境配置
' q% k+ G3 f7 i6 k02.对象属性的访问方式
( r# O1 G2 p& _) M" \( N04.unicode字符串8 h! E% M1 S$ p) U9 U1 [ R( n
05.字符串ASCII码混淆
8 r0 B- w1 F# U1 ]% P$ ~1 W) w06.字符串常量加密
* f6 c( g0 |+ b6 R2 E- n% _$ ?07.数值常量加密* `2 p" S( L' v' h0 V' s
08.数组混淆! S- I/ m) o. G
09.数组乱序; J! H2 u# P+ F q: y, I( @
10.增加JS逆向工作量(花指令)
( x+ G, f5 V7 B# ]1 F11.jsfuck" C6 d- g/ ]% k/ D5 F# M, _" Q9 x: r
12.流程平坦化1 X3 t. S" t- {
13.逗号表达式混淆19 ^ Y* F* j- w, I
14.逗号表达式混淆2+ k: \; z( T: u) O1 j) v, x
15.eval加密
+ \: \2 w6 L- z: X T& x+ k16.内存爆破! q/ j& j7 K0 o( l9 b) p1 z# p3 ~
17.检测代码是否格式化8 T; z. i$ t# o3 Z1 W! \- G
18.AST的基本结构
8 ]8 l B7 u' k# `8 t' _19.代码的基本结构( C5 G( X6 @* ~/ o* A+ I3 ^
20.parser与generator
( c# A i3 m9 I$ @21.traverse与visitor
- W$ x& h* T) y9 a# z& m22.types+ `/ j F, N8 e& g
23.Path对象详解(Path与Node的区别)+ A% f$ d2 _+ h& g9 p0 G Z
24.Path对象详解(Path中的方法)1 U: G4 [! g1 k. Y9 a
25.Path对象详解(父级Path)
n# N, v; W6 c# R8 \/ Y26.Path对象详解(同级Path)* |7 @, l" O% c3 u
27.scope详解(作用域); T# B0 t) Z K/ i
28.scope详解(Binding)
3 h3 w2 Q& S* ~29.scope详解(referencePaths与constantViolations)' S% f% A, Y7 a" e: F, O v6 N5 ]
3.十六进制字符串- j; P5 V8 D2 c% j- X2 S
30.scope详解(遍历作用域)
$ D1 m( q) I8 L8 N0 N0 ]- s31.scope详解(标识符重命名)$ _6 T# A1 [4 t8 P% P" z- L
32.scope详解(scope的其他方法)3 G& C% \) z. f1 ?
33.改变对象属性的访问方式
' K( E7 i" k0 w* r34.JS标准内置对象的处理
. Z' N" T1 }5 Y4 A: \. |0 x35.实现数值常量加密
, a, e* d1 t; s% z6 H' G# q V% K1 i36.实现字符串常量加密
! I4 j! U( h" o9 W/ \$ {- ]37.实现数组混淆
& o1 H1 j M! C/ c* e38.实现数组乱序* }; I: {4 S' @1 s
39.实现十六进制与unicode字符串
" K& N Q9 [" F4 z7 z5 X6 X3 s40.实现标识符混淆! `$ L5 Q- u1 J0 o4 d
41.标识符的随机生成
2 z9 J7 @: }2 o M. u( i$ q42.二项式转函数花指令
! ^9 z- y5 s K$ h4 H% ~1 ?& _# s43.代码的逐行加密' X1 e7 P% G6 }. v" F
44.代码的逐行ASCII码混淆
5 X9 T1 O T$ F' b45.完整的代码与处理后的效果9 u7 u/ q3 t$ s+ O$ F" N
46.实现流程平坦化混淆1
& a# y, o: c8 q: B) ^: m# w47.实现流程平坦化混淆2+ S' v& a# q8 `% [/ K2 o6 m
48.实现逗号表达式混淆1
$ Z2 @/ u" N% g7 C8 b2 h% w& O5 k49.实现逗号表达式混淆2/ I9 N, n/ W& G5 x
50.分析网站使用的混淆手段
. H: d. \- m7 X7 R( n' I51.还原代码中的常量
/ u8 } }6 J" }( {0 c52.花指令剔除思路+ o5 d) \% M5 `2 B. x* X6 f+ t) R0 y
53.字符串花指令的剔除 x; \; W7 o& S, y L% |8 _
54.函数花指令的剔除
. V" {" B2 k5 I* i55.还原流程平坦化
& c5 R. \5 @1 L' v9 L
2 ] @. G3 r @# ]
|
|