|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。, h8 L( P d/ `: c: d
课程内容:
. ~/ I6 l- A' _00.课程介绍2 G" o# C( Q, Q$ Y3 t! J
01.环境配置
$ S4 w. X" A8 Y5 H" c+ [# Z02.对象属性的访问方式: \% Z+ r- T) s# c J2 u' H( ^- p
04.unicode字符串
+ @9 m! w4 L! f- X8 E05.字符串ASCII码混淆; Z; k( H2 f4 J9 ]% @& Y. [( Z
06.字符串常量加密* h) _3 a) B% i' h* }/ T! F
07.数值常量加密$ }0 |5 w7 r& [2 p3 `4 R6 c
08.数组混淆, _5 D% A$ W9 d' Y6 ]
09.数组乱序
; r3 G; {) @4 w- t9 G d10.增加JS逆向工作量(花指令)
2 R% L5 A/ `' u2 W7 @; l11.jsfuck* o% A4 t! ~9 B; L( G/ ]8 J
12.流程平坦化
2 U4 q5 F# s% \ |13.逗号表达式混淆1
. n% z' S! T; v1 K, @( K4 x; E14.逗号表达式混淆2
" U7 a/ _& u8 m7 y& _: I' T15.eval加密: ^0 o8 g9 q* Z5 I3 T- ]. g
16.内存爆破
- F# m- t7 I8 U3 d$ H; n/ _17.检测代码是否格式化
C$ H: @/ G ]" `% X& Y. o4 a18.AST的基本结构5 b C- e' c, j5 J
19.代码的基本结构" y! \6 o" Y8 U: k
20.parser与generator
9 c' a6 W @, ^6 ^21.traverse与visitor. x6 b0 _# g& a7 `3 J: a( O' K
22.types
2 a2 L* g6 W3 I S) d0 J: w# ~23.Path对象详解(Path与Node的区别)% `# O/ J+ V4 m7 W; |
24.Path对象详解(Path中的方法)
+ d9 _) T/ E: m6 Z$ y7 q25.Path对象详解(父级Path)
' D; v, e: y' T% H26.Path对象详解(同级Path)* x9 \& Y( m& F8 ~: _" }
27.scope详解(作用域)
/ Q/ F% F( R7 H9 b6 f$ u5 z% h# J28.scope详解(Binding), P! I @# d: M- B9 S& B
29.scope详解(referencePaths与constantViolations)& X4 n. e4 ~; _& x$ e+ N( q
3.十六进制字符串
; i& d0 I2 ~* L& |4 T30.scope详解(遍历作用域)2 i/ k3 J- E/ `% K
31.scope详解(标识符重命名)
; X7 P0 a4 w; {1 ?( a: `32.scope详解(scope的其他方法)
$ v! c1 b( @3 E6 ~1 X33.改变对象属性的访问方式0 `. Y- k3 ]; K5 _
34.JS标准内置对象的处理
9 i0 ~: {1 a3 {9 N+ n/ E35.实现数值常量加密' V, P }- s+ X5 i: L
36.实现字符串常量加密
# V' p" i9 e$ j4 j37.实现数组混淆9 o: D( }* s9 {3 E' s: u% D
38.实现数组乱序+ p/ E( Y8 {& D+ ]0 e: @
39.实现十六进制与unicode字符串/ x4 F; v4 d* }6 Q) e8 {
40.实现标识符混淆
% B. J* |7 o: S' n, {. i41.标识符的随机生成$ t2 P+ M* i9 X9 }! [* x- C7 Z
42.二项式转函数花指令
/ @, O* g2 m3 ~2 }43.代码的逐行加密
$ @$ Z' |. t; O) r4 c e1 w4 t. }+ J44.代码的逐行ASCII码混淆. }" D4 l+ `- S2 v' t
45.完整的代码与处理后的效果
* s. q! ]2 H) ?0 @+ [8 C* \! r: t46.实现流程平坦化混淆1- D. U! I9 G: x, l% y
47.实现流程平坦化混淆2
7 M9 @( S0 |. J* U7 U) s8 u3 j% i48.实现逗号表达式混淆1
) {. t% G* ?* y- {+ W o' |49.实现逗号表达式混淆2
0 e! c: z7 g5 f6 E, v6 m50.分析网站使用的混淆手段5 c* `% s7 n% x+ h# v# j0 E8 T' ?
51.还原代码中的常量' ^1 u( R- }/ s& ~/ B) g5 q
52.花指令剔除思路
: g. s, j' T; s; J4 G/ i53.字符串花指令的剔除
0 O# r4 B- G. m8 i; x9 e54.函数花指令的剔除7 i7 e% O0 ^& ?" G7 x) I% ?
55.还原流程平坦化9 o/ A: M9 P# {
( {: D9 O( Y' `- T& L
|
|