|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。' z2 T) a! m5 E2 C, ?) r
课程内容:- s! p& \3 t }8 e* d
00.课程介绍
p- H9 ~+ g& d2 h2 X* u01.环境配置
( w, a) } }) M02.对象属性的访问方式
% y. B. @5 x3 f1 T8 ^04.unicode字符串; p( s% T' `" ~; V0 w$ O: Y2 K% X
05.字符串ASCII码混淆* B. z( |; y, A9 S6 j+ ]
06.字符串常量加密* h) m$ M; D& s) J. t( G3 D V3 y
07.数值常量加密
$ M6 N; i! t) u% ~) b08.数组混淆- ^; C: ]0 s# N5 G b' H& D
09.数组乱序
+ w1 L: _6 t- {4 t10.增加JS逆向工作量(花指令)
5 i( s9 `. e1 p$ x6 c+ |7 ]5 C11.jsfuck
8 [0 \. D6 k( T2 _$ b12.流程平坦化
8 ], H! M- N6 O T13.逗号表达式混淆1/ K% t7 F/ W7 P2 U7 V$ l
14.逗号表达式混淆2! j! h0 B0 L; v
15.eval加密" }2 d9 L0 w9 d! P) w2 W- H! ?
16.内存爆破' e7 |7 d8 L# u
17.检测代码是否格式化
. \3 n7 x0 i) d+ M9 M' f8 t. n: l18.AST的基本结构
; l" s/ K! D( W* u2 O2 V0 }; k2 i19.代码的基本结构
3 G/ ~/ m5 M: r20.parser与generator
8 S/ Y, A) o' {- y9 X3 G& [5 W21.traverse与visitor* t ?; n0 E3 G i( R, J2 |
22.types
9 t5 t2 M5 z1 S" q+ l2 `6 {23.Path对象详解(Path与Node的区别)1 u/ `, |& ~$ e" O2 X# [! t5 y
24.Path对象详解(Path中的方法)
1 w! A4 \) {( x' G* G+ e4 I6 Y$ X25.Path对象详解(父级Path)5 _5 h$ M: Z, W2 h. o+ T$ m
26.Path对象详解(同级Path)
% [4 d6 V7 N) |# s0 R! r2 Z5 G5 ^27.scope详解(作用域)
/ @9 r* @ W$ v: u; `, t1 Z9 x28.scope详解(Binding)* E3 Y* `: f! C9 A
29.scope详解(referencePaths与constantViolations)1 z/ c: z8 T2 U, W7 |0 u& Z
3.十六进制字符串
2 P) x$ W0 a0 `5 i( K" @- H8 q30.scope详解(遍历作用域) }) N7 O5 q7 ~3 B* Z z
31.scope详解(标识符重命名)
0 s* v6 @( W2 F$ Y: C( j! `32.scope详解(scope的其他方法)
( [; H$ X3 Y* p3 C6 N8 _33.改变对象属性的访问方式
+ |9 r" b3 ~5 `) [9 |34.JS标准内置对象的处理* R l0 B8 h `, |6 j8 S4 i, O0 u8 x! @
35.实现数值常量加密
; I; Q: j/ G2 C8 Q3 [" s36.实现字符串常量加密
7 v7 z/ F1 Q2 Y% e0 D37.实现数组混淆4 [: N. ~8 {- C; J0 F$ E5 ^
38.实现数组乱序
! M4 [0 P6 ]/ s8 a: a# F- T/ m& u# Q39.实现十六进制与unicode字符串
6 [7 ?0 F" ^" R0 s, e40.实现标识符混淆
o" G4 c4 U4 f41.标识符的随机生成/ b! [+ e1 K. ^/ W" t5 o4 q |
42.二项式转函数花指令
3 c' O$ `' x8 H! D* _6 [# \7 J43.代码的逐行加密
) l0 A L0 j+ \6 N9 e44.代码的逐行ASCII码混淆
3 G& c: `0 D" j0 W# Y8 n- `; N45.完整的代码与处理后的效果
3 o+ D7 `% S1 ?* D* w46.实现流程平坦化混淆1. L2 C7 N% P9 Y7 [) I8 `6 p+ u p7 v
47.实现流程平坦化混淆2
8 M3 m* F% v+ q' m" u( w48.实现逗号表达式混淆1
6 N* H. l2 ~8 O& m' U49.实现逗号表达式混淆2
: h% Z5 F8 {( n1 v) i1 R50.分析网站使用的混淆手段
( U: W: i4 O* B$ r3 H" _51.还原代码中的常量
' p7 @* {0 A: v# J8 g0 g3 T5 q6 H52.花指令剔除思路% U ^( \2 q7 w4 g
53.字符串花指令的剔除
$ `3 m) \: C1 \54.函数花指令的剔除
, ~8 a* L! Q) E E- O5 a% Y55.还原流程平坦化
9 }8 ?4 S2 j; p7 L4 m( X! N' \ - I: p! M! o4 Q
|
|