|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。1 N; Z1 c7 d8 b2 n
课程内容:
0 `# i; U& O. T8 U00.课程介绍
2 h5 ]. T f: Z( o" w' ^: \1 H01.环境配置2 E; X+ K+ D8 N* D2 D1 A2 j$ W& O
02.对象属性的访问方式8 i/ Y# {4 G$ V' J* q7 v- A( b
04.unicode字符串
! S! R# f/ x+ R% m6 T2 k% @05.字符串ASCII码混淆
( q/ q3 Q" V7 C# p( X/ }% o06.字符串常量加密2 w k1 E+ @0 T( P( g: o: H0 f
07.数值常量加密
+ I0 v) j2 F/ S+ h3 T08.数组混淆- W/ C) y5 I/ V9 e2 o4 }* V
09.数组乱序) s$ w' V) t/ @, Z3 Y- g
10.增加JS逆向工作量(花指令)* S1 B; v9 p4 F* G" c; C- y) K
11.jsfuck
# a& B6 h3 r- d, j12.流程平坦化
: q8 L g& E- F% \3 H6 Q, w13.逗号表达式混淆1
4 {3 X7 |1 e. J" s! s: W& H. w/ C- w14.逗号表达式混淆2
; T5 X* d1 n: r" L8 L5 z; Y6 O) I15.eval加密 ^! i% ~ i% E7 k) x
16.内存爆破
9 ^) t) i) z- D |& x8 V5 C17.检测代码是否格式化
5 D* ^! f. A3 J& Y1 \1 y- Y18.AST的基本结构% B4 l' P9 @3 A2 W# S
19.代码的基本结构
% M: V$ p) x8 y! R! ^$ \20.parser与generator
0 y* K6 q# W1 E; e) [( ]2 |' }% X21.traverse与visitor
5 K \) f* S/ i2 d22.types
( q% l0 c6 U) G6 f' r: Y3 x23.Path对象详解(Path与Node的区别)
6 A3 c z$ S n" t% D5 `& D; J3 ?) J24.Path对象详解(Path中的方法)) z$ g: `* O6 O3 d8 c( m7 f6 V. o/ T) q
25.Path对象详解(父级Path)4 r4 ^# ]8 t* f% `
26.Path对象详解(同级Path)
2 @- J0 J5 _" u9 P7 n6 v+ V27.scope详解(作用域)
( x9 }2 j8 ~' o3 r$ e28.scope详解(Binding)) |# l% |1 ~- A$ `2 J
29.scope详解(referencePaths与constantViolations)) D5 E( I6 Q" L# {- [0 i+ o
3.十六进制字符串6 i1 W& T) I, `$ d# b; B: y' K
30.scope详解(遍历作用域)
% r5 \+ ]: W8 s1 E# p, e31.scope详解(标识符重命名)
, i5 R+ d2 n! z6 N! M* @0 _0 S- O) N32.scope详解(scope的其他方法)' k0 H" P" R5 j6 c/ Q* w
33.改变对象属性的访问方式- Z) F4 P8 C4 b! R( x# u3 w: P, m* [( M; O
34.JS标准内置对象的处理3 v H2 j4 g0 Y9 N% j& f* X' s
35.实现数值常量加密1 `8 Y8 P1 t3 L& B
36.实现字符串常量加密
7 Y9 Z2 ~% v6 T2 e) t! r37.实现数组混淆* r) r0 v6 I2 U# e9 w* m
38.实现数组乱序- k, u, ?7 O$ E/ _0 A
39.实现十六进制与unicode字符串2 h# x" j1 Y q
40.实现标识符混淆
4 l8 J ~, V- o. b2 _ h41.标识符的随机生成$ h1 l! W% C( `) W% ]. j6 g5 |) B
42.二项式转函数花指令4 J0 [6 _- K9 o# A
43.代码的逐行加密- H( }( R& A# H, U) d7 }
44.代码的逐行ASCII码混淆
$ ^" d* t7 r& [3 P. B$ p45.完整的代码与处理后的效果, B* p! V6 |6 ]+ k; \6 {0 D5 e' F' j
46.实现流程平坦化混淆1
. B z' I( q$ Y. S! U47.实现流程平坦化混淆2
3 z; }% d- e- q' _48.实现逗号表达式混淆11 [/ x! T# m7 }9 f4 n
49.实现逗号表达式混淆2) {- x w/ F! g6 c) D
50.分析网站使用的混淆手段5 S% e7 L8 i0 W0 k* D
51.还原代码中的常量& h5 c2 L/ L$ | U7 n8 E
52.花指令剔除思路4 ^6 m# g$ u# L" W
53.字符串花指令的剔除" `+ b5 J: ^+ ?/ X/ v
54.函数花指令的剔除" s8 t: F1 w7 g6 v0 P$ X. \3 s
55.还原流程平坦化9 W ^' \. x, X3 o
1 T& R) ]! u+ U, f
|
|