|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
1 g8 _2 @4 c* B课程内容:
% d; i j- X8 t% x* C, e$ X00.课程介绍
! W4 T- n; C: S5 T% c! s8 ^* F01.环境配置3 K; n4 Q2 N, p' L4 L7 u8 d+ S* e
02.对象属性的访问方式
0 Y( i6 k2 M8 i1 y: U( u) R, S. S- ~04.unicode字符串$ s' _7 C7 S+ Y8 Q7 g+ z- l
05.字符串ASCII码混淆
! R; o( j; H" H- R0 s" y% V06.字符串常量加密- R6 ?+ e) m% J2 r0 W/ k* o; X
07.数值常量加密
. X* Y8 K0 b' j$ O+ p+ ?) e, t08.数组混淆
7 s9 d$ H5 f" t, z3 A; m' V! A09.数组乱序
. ]4 R( ^+ t. T10.增加JS逆向工作量(花指令)
- _& I0 t; G. u8 @$ \11.jsfuck
- V' s& f6 A7 }1 w1 ]/ J; f% `4 W12.流程平坦化0 a" X- L( t9 v, y1 ?3 {
13.逗号表达式混淆1
4 a0 b1 `; l* I2 e/ Z" u14.逗号表达式混淆26 v2 L5 L) A9 U3 `; M
15.eval加密+ x) j) n' e- ]$ w: H7 p- T
16.内存爆破+ t5 D: X7 I+ e" }; s2 v. ]$ A! c
17.检测代码是否格式化8 y# B4 z' L; c, O6 O( g
18.AST的基本结构0 F# a7 q3 X/ ~. H+ F2 H1 q
19.代码的基本结构
$ F7 k% T( M; c4 w1 `20.parser与generator6 b5 F g% m d+ S! d7 r1 _4 p- v
21.traverse与visitor# z* a( W+ E& _# n2 H* C1 y
22.types/ ]; P" [ T' H+ ?. M
23.Path对象详解(Path与Node的区别)
& ~# H4 Z9 J4 K8 \+ R0 P0 m24.Path对象详解(Path中的方法), x6 f: h, t7 F4 h1 _
25.Path对象详解(父级Path)# @9 h3 v5 r# g1 a5 k
26.Path对象详解(同级Path)4 c5 A+ l( w' S' M
27.scope详解(作用域)
5 q7 R' |9 _. u4 N, A28.scope详解(Binding)7 U7 ^9 b. C2 I. I9 b r
29.scope详解(referencePaths与constantViolations)2 |3 H3 d: W3 H1 l# B! g4 N. Z
3.十六进制字符串
g5 M! f8 m. G* n; z( D9 P30.scope详解(遍历作用域)8 |0 U1 t0 A. T5 {4 b
31.scope详解(标识符重命名)
: r/ d0 _% _# z: l+ N' f9 ~32.scope详解(scope的其他方法)7 c0 D9 t3 ?: C
33.改变对象属性的访问方式$ L6 I) s: ?/ y4 T# F* L
34.JS标准内置对象的处理) z8 E, s$ s9 c: d1 {
35.实现数值常量加密; F6 R" f* B4 a" I/ h6 K
36.实现字符串常量加密
# d- o5 R: Q0 c37.实现数组混淆
& \$ p/ C5 J$ N38.实现数组乱序! ~, C* V0 u }0 ?) H5 L' U4 ]7 b, ]
39.实现十六进制与unicode字符串
/ ~* F: u2 M9 |$ _& f40.实现标识符混淆
" j8 ] t; L3 z$ S( |- w2 E41.标识符的随机生成
) F% v: I: W& b1 M2 ]42.二项式转函数花指令
9 a2 G* M6 t6 a43.代码的逐行加密
( ^, M& \6 T9 t: g/ v/ W/ ~1 w44.代码的逐行ASCII码混淆$ J1 Z$ ? P) N/ F+ B) G5 H2 c6 \: I
45.完整的代码与处理后的效果
& m/ X, u3 K9 }7 }" Y6 x+ B9 D! }46.实现流程平坦化混淆14 g$ x% {! I) V0 r/ k8 M
47.实现流程平坦化混淆21 ?! k6 J2 q& N2 T
48.实现逗号表达式混淆1
1 O# n/ [* J) \9 @* T49.实现逗号表达式混淆2- ^; p* [% e2 h3 e" ^
50.分析网站使用的混淆手段
7 K, B1 L/ g; [51.还原代码中的常量9 ?$ u# `7 r ^
52.花指令剔除思路
% V9 u$ g) S1 u0 }" ]( |) ]% C53.字符串花指令的剔除. Y4 p& X; b# x% _$ t* m7 x
54.函数花指令的剔除5 R/ W7 n/ }. b- t( h$ s. D
55.还原流程平坦化- Y! j" j3 R2 ~; k9 f7 b' H9 c
2 U+ \% `3 A! W1 D, O! n* s4 M" H6 A
|
|