|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。9 \3 a% L! Q* [2 }
课程内容:
. o1 |( \" r+ Y$ j+ W00.课程介绍4 Y) y! ?7 g [" N3 v6 V) A9 Z, |
01.环境配置
" e7 O) C* k4 K( O. N: {3 P( o: Y) K `02.对象属性的访问方式
1 |4 Z& S% M9 L( l# v% U04.unicode字符串8 S8 @1 B L4 l$ l) W8 i
05.字符串ASCII码混淆
- v' Z. j" l4 G+ K- v$ ] F06.字符串常量加密- Z2 q- M& A$ ?2 Q( J
07.数值常量加密
! d7 y2 ]' y& C% n+ F) `' R; y08.数组混淆: _6 Y7 r, A7 n1 K5 h3 C4 g$ o
09.数组乱序% b; ~7 n0 j9 _8 t% w5 A
10.增加JS逆向工作量(花指令)
# ]" N: {) B E- j& U11.jsfuck3 [& X N/ \0 H4 `5 r$ A7 s
12.流程平坦化: r5 t! I6 l7 \3 n
13.逗号表达式混淆1* v! L! [ p& I! f1 t5 ^* X0 {3 D
14.逗号表达式混淆21 g# w6 Z5 M4 d$ n5 T* f
15.eval加密7 l: u% v9 H# | o% b
16.内存爆破
' y( |6 V) `2 _/ j3 R9 I17.检测代码是否格式化+ q9 ?/ s2 q6 f! H
18.AST的基本结构
2 C' a, v! F3 T/ X- l19.代码的基本结构
- e+ p/ q, A" N* |; u3 U20.parser与generator
& {+ B3 |3 f& k6 D2 I: p4 o6 d21.traverse与visitor @5 }( G8 _4 o; y3 ] H
22.types, d- M4 `; n2 ~! V# O
23.Path对象详解(Path与Node的区别)9 Y: p' I: I: V7 a
24.Path对象详解(Path中的方法)
1 c% A' E& k& z* M0 t2 r/ X \25.Path对象详解(父级Path)/ t7 N' O0 l; d9 r$ M! w7 T% W
26.Path对象详解(同级Path)
3 t+ i1 H8 v) ]" i27.scope详解(作用域)
* c* q' X) j+ j28.scope详解(Binding)! g# a- W9 q4 c6 a8 E0 }
29.scope详解(referencePaths与constantViolations)! Q8 z% }/ J: x4 Z6 |* V: V) m! f
3.十六进制字符串
$ o. D$ }( m9 a6 L30.scope详解(遍历作用域)
, ?9 I9 E" x3 G, L' g& X1 m: h; ^31.scope详解(标识符重命名)
% k" T- H6 V i' ?* g- c32.scope详解(scope的其他方法)' G& w1 g) S' v( L5 u
33.改变对象属性的访问方式' A- q5 ?* S- |" e* G$ t
34.JS标准内置对象的处理2 Y% f$ B' |# Q7 x" S
35.实现数值常量加密
5 U. [7 {% e, w. l9 h36.实现字符串常量加密, Q, G, ]3 f: [# X# u
37.实现数组混淆
# I. ~3 N6 f2 ~$ I }( A/ a) A4 J8 v38.实现数组乱序3 K( T' x0 {0 `! j* {; Q
39.实现十六进制与unicode字符串
* I& A8 b( N: j$ l, M9 R40.实现标识符混淆5 r6 V: O: K" k. C& L
41.标识符的随机生成5 B2 z2 b8 N8 G+ g$ @
42.二项式转函数花指令
$ I5 ~: s K; q. |43.代码的逐行加密6 a& `: I' b6 `& D; P
44.代码的逐行ASCII码混淆6 }* T2 r* P" F4 J
45.完整的代码与处理后的效果8 L# ^, a7 l3 ~$ V' p
46.实现流程平坦化混淆18 `( n1 l9 A9 u2 O; n4 a6 p
47.实现流程平坦化混淆24 R1 ^; `5 f3 Z6 Y
48.实现逗号表达式混淆1- Y3 D2 G% L: Q0 x* v/ l
49.实现逗号表达式混淆2 X% Y+ \( T7 v0 {- N
50.分析网站使用的混淆手段
& V, Y( u5 @" H* X6 T+ O4 d51.还原代码中的常量* `" r9 Y" g9 R. F. P# ]9 x: a
52.花指令剔除思路
, a+ ]- y' S( y- Y+ \53.字符串花指令的剔除
0 @# u5 [+ d2 m; F' U, g5 u( F54.函数花指令的剔除
G+ q6 E1 z7 C- c/ |! e" H1 I8 h55.还原流程平坦化
% c% d& ?. M1 C6 s- u 2 R6 _! k: e |; o" @. f
|
|