|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
# o3 Y0 x. p w: I课程内容:/ P0 U1 D2 u T) W$ }
00.课程介绍
% n$ B/ p: X/ P7 I: E( A01.环境配置
& a" p, a( |. v1 j. r) ~8 N+ v02.对象属性的访问方式
" f6 K- o5 W- \4 v04.unicode字符串
" M" z, Y' s+ U& p7 F1 p05.字符串ASCII码混淆
1 ~, ^9 t* J+ J+ p7 A- a06.字符串常量加密
$ Y5 h s& Q( Q5 h8 b7 Y' R07.数值常量加密. O. l( t/ @; X# e1 C
08.数组混淆# K$ I; h- L1 O
09.数组乱序% C- `- O: _7 c
10.增加JS逆向工作量(花指令)- ]+ i% u/ r- q
11.jsfuck1 T/ i4 {1 ~/ [" H: J) P! L
12.流程平坦化
( G0 K6 y% x. ?8 y1 p! n13.逗号表达式混淆1
G7 p6 {8 F( L0 D* |9 ~, \; f$ {14.逗号表达式混淆2
; l& Y- G4 u' v0 p! X; c15.eval加密
" s& `- U" o/ a8 m! Y3 n16.内存爆破 p# w, r& P6 X; f9 e6 Z
17.检测代码是否格式化
9 L; m1 C9 D1 u: M5 @18.AST的基本结构* g/ _$ ~4 n, |8 [
19.代码的基本结构
& y: f$ c/ j% b' c% x20.parser与generator' {5 l' y6 V4 W V
21.traverse与visitor
! e5 {/ i# \& @3 s9 _; u7 ^22.types
+ `- M/ s7 Y7 K23.Path对象详解(Path与Node的区别)5 B* \5 h+ ~ P& L0 _
24.Path对象详解(Path中的方法)! _; I: l6 y# F3 f5 `. ]
25.Path对象详解(父级Path)8 W r- t0 I7 z2 [; \8 b
26.Path对象详解(同级Path)
; c) J8 z J: W) x3 t% n27.scope详解(作用域)
# ~8 n. @! ?& e( I+ X28.scope详解(Binding)
, C& {9 i5 n- H- W$ Q2 c2 H29.scope详解(referencePaths与constantViolations)' r% n! ], Z- ~3 ~2 D
3.十六进制字符串' d6 R7 }; R% `: G/ N1 M7 D
30.scope详解(遍历作用域)! l' w( S8 g4 R' e" ?
31.scope详解(标识符重命名)( q* z+ w5 j2 I( }9 d) z u5 {0 b5 R
32.scope详解(scope的其他方法)
' S* o; s8 j# I( w33.改变对象属性的访问方式
# z6 V' z$ ]% O' S& W5 c9 r) B34.JS标准内置对象的处理
; S8 ^2 w" A1 j6 b0 K- T) H35.实现数值常量加密
! k: G1 v% L g; T; O/ @' d36.实现字符串常量加密2 n+ y' X. {; ?- @6 K" [$ o8 w
37.实现数组混淆
2 w" F& w" k* Y/ G: P% o9 P7 Y38.实现数组乱序1 l0 P1 ~2 a9 y: @5 O, l
39.实现十六进制与unicode字符串- f8 h1 `* j X& I$ z6 ^- A
40.实现标识符混淆1 H. t% p' U9 b' O
41.标识符的随机生成
2 y5 B" S/ ?3 u3 S' s3 u42.二项式转函数花指令3 ?- e4 }, k3 |8 M+ m' E y8 f
43.代码的逐行加密
" t6 Z9 M7 t4 ^! P1 E) C% u9 p% Q0 L1 Z44.代码的逐行ASCII码混淆+ W9 w5 Y! b7 h8 m! U- D
45.完整的代码与处理后的效果
/ d- l* h9 @* a/ M+ U- M9 J46.实现流程平坦化混淆13 L) j, T% Q2 ]7 N$ D/ K
47.实现流程平坦化混淆2& L! e/ j Q' x e; e
48.实现逗号表达式混淆1
g. Y% r/ d# a1 E49.实现逗号表达式混淆2
+ I. r' F+ }: i6 E6 [50.分析网站使用的混淆手段/ b" S3 Q" l& @. Q
51.还原代码中的常量# e8 J" M/ @! Z V6 D, Z* }
52.花指令剔除思路. f7 T ~7 z# e4 y7 B
53.字符串花指令的剔除# }3 [ U3 V% e2 r: m
54.函数花指令的剔除: ?) |7 U# v f
55.还原流程平坦化
% p' U. m2 A- B" ?
9 l/ M4 u- E/ b+ w: i3 t) r
|
|