|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。4 t& C+ a$ {" T7 B
课程内容:
0 q9 |( u" A% r( f6 g" U00.课程介绍0 c: Y4 a$ o; H. g: O& v
01.环境配置
8 ?8 N( g2 Y( e+ r k: Q02.对象属性的访问方式" D" e# d( E$ @, O* E
04.unicode字符串
8 Q2 @! s8 ?) I! S05.字符串ASCII码混淆: u8 E. K0 {# F4 B Z
06.字符串常量加密6 ]+ W9 b. }) j) V* k, q7 f5 |
07.数值常量加密
. k J3 p4 w+ a# m* [8 k08.数组混淆
- E" D4 ]* s5 v$ y09.数组乱序! C6 a3 c5 r8 g6 Y8 D/ s4 q' D' o+ Z
10.增加JS逆向工作量(花指令)9 G3 a+ w# m+ T. C) X. y
11.jsfuck
5 |8 F, k1 R) `& y0 R! {12.流程平坦化+ V' A/ q0 M$ M5 ?
13.逗号表达式混淆1
X2 K0 e" o& w u7 t14.逗号表达式混淆2/ r; o) ?: ~, t, O4 ]
15.eval加密! a* ?' m5 s* M% Z( ]
16.内存爆破7 W1 {, }5 ~% v" I" P
17.检测代码是否格式化8 x1 i$ x# }$ q" Z* S. Y3 z; x
18.AST的基本结构
" `* x5 |3 f6 l- O, d/ J19.代码的基本结构) p i. i3 `" O F
20.parser与generator) }5 ^0 c& M6 a& h4 K$ o5 v6 u' f
21.traverse与visitor- d( U4 x& T) V% y! t5 Y2 e
22.types" p4 ]5 M& K, S; [4 P/ X( Z2 |' g
23.Path对象详解(Path与Node的区别)
8 d0 g* Q6 O2 d7 J. f6 Q& q& s7 m" ]24.Path对象详解(Path中的方法)
+ U: j5 X/ q$ c, y25.Path对象详解(父级Path)
0 ]- ~1 n8 u1 Q1 m4 U26.Path对象详解(同级Path)) V, T& A% @% U4 ^* Q5 M
27.scope详解(作用域)
, L. w: O6 S/ }! G. [28.scope详解(Binding)6 ]; y& P% e4 g7 i- O: K l* f1 R3 h
29.scope详解(referencePaths与constantViolations)
3 V- c5 P, T+ e4 Z# d- W4 g. t; H3.十六进制字符串
7 K3 |0 U: |4 c1 ?; X3 w D30.scope详解(遍历作用域)
' b3 E3 t" m0 I. u' M! |+ Z3 m31.scope详解(标识符重命名)
8 ^6 Y& f& T0 s0 S8 X. d7 s" x32.scope详解(scope的其他方法)
& _8 |+ S' W) D. u33.改变对象属性的访问方式
7 H3 j( v# L8 F7 @% w& t34.JS标准内置对象的处理
% b' I- r9 F# v1 t/ \9 c/ h% ]" i35.实现数值常量加密
0 Z- v0 d$ w8 N# ?36.实现字符串常量加密$ @0 _0 c# C# h7 `- m$ s6 p# {
37.实现数组混淆5 Z, ^* E9 N! c3 a
38.实现数组乱序
$ o! W, G" g# K4 N, q39.实现十六进制与unicode字符串$ q& f) E1 ]' e$ U z2 {
40.实现标识符混淆
" F0 X/ W! |8 G8 ]' e7 u: y, {41.标识符的随机生成6 a' D1 W1 g# x6 S+ A% N& c( c ]: E
42.二项式转函数花指令
# q' ^0 K' p. V6 s# ?( x5 l8 {43.代码的逐行加密5 A! @8 t1 e7 x! |7 Z2 b7 r
44.代码的逐行ASCII码混淆
( G9 x: }- y% T6 |/ s/ s45.完整的代码与处理后的效果
) s3 Q1 [5 w6 }3 k( V1 ^4 b46.实现流程平坦化混淆1
$ h- g$ K# _7 @( M. r( ?+ Y& c47.实现流程平坦化混淆2
, K: L3 T4 O ?1 i48.实现逗号表达式混淆1
1 f2 P1 d6 n6 R; ?$ I$ K2 D49.实现逗号表达式混淆2" d% W$ I" {4 d" i/ d
50.分析网站使用的混淆手段# N) f8 T' F" @9 ^6 f; ~
51.还原代码中的常量# v5 J9 Y2 l& z( Q) ^7 z
52.花指令剔除思路
/ ~+ N2 b) T( Z53.字符串花指令的剔除! B6 o! D- _- g1 s( D. n
54.函数花指令的剔除1 T6 _4 }" n9 M# k- i1 k
55.还原流程平坦化
6 N8 k/ q3 v, D
" }/ `3 y% }, e" w4 q8 D
|
|