|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。8 \4 t0 W( U- B1 P
课程内容:) }8 t; e* \* j% K0 }
00.课程介绍8 ]0 P2 b& w1 I5 K# Q
01.环境配置( |- y h9 Z& L* f3 u& ?9 D4 c
02.对象属性的访问方式
$ e" L$ C# F+ g, a/ O- g0 y/ ?04.unicode字符串
- J# {/ L( b! V# d8 f# ~: b7 w05.字符串ASCII码混淆
" Y! _- {& o9 [( V9 v( n2 h# D06.字符串常量加密
. g* [5 ^9 v1 ^: K- [6 ?07.数值常量加密
, K! ]3 _4 s1 [) @) i, a, y08.数组混淆0 W/ @7 U% S3 T. H2 ~8 k
09.数组乱序3 E" Y( g7 d/ C; h6 }8 w% ~
10.增加JS逆向工作量(花指令)
; [) e' q4 _0 f; Y11.jsfuck
0 E- |0 Q( {7 ~2 p8 a12.流程平坦化$ y8 ]3 ^2 q1 F* h
13.逗号表达式混淆1! ?. @' }3 V4 h) N7 x/ v; k7 n5 g
14.逗号表达式混淆2
$ `% u. m" }0 c15.eval加密; o* c9 k3 c- {6 \. h
16.内存爆破' ?: N# r' D0 E7 H
17.检测代码是否格式化
+ _2 q7 T. _ g% ^& D18.AST的基本结构
, b# s# @' d0 l* t7 K+ |) X2 u19.代码的基本结构
( ?! Y) \+ g6 @7 A/ D20.parser与generator
) v+ C9 s3 M; v- F7 l5 v: n: J" W21.traverse与visitor
6 L% C. n( x5 m7 u, |1 v1 |22.types
5 B% y* m; x2 \: ~; w% h6 f" q23.Path对象详解(Path与Node的区别)
4 b7 `, @& w, ?( G! _24.Path对象详解(Path中的方法)
" ?, b& G, o* ~5 Y) r, }25.Path对象详解(父级Path)
. d' s/ D) [3 w }26.Path对象详解(同级Path)# g% B, p- T# Q; Z" P- ~; N1 F
27.scope详解(作用域)
/ z ~7 h+ S! y' a _% _# U28.scope详解(Binding)
' d5 n- h' O: S3 ^7 j+ H29.scope详解(referencePaths与constantViolations)" ~. s; b5 I, m5 ?8 Z
3.十六进制字符串, @6 @9 [2 V) {4 H+ W
30.scope详解(遍历作用域)" I; Q6 e1 V5 ]: ~5 H% h+ F5 t
31.scope详解(标识符重命名)* L# ~# f, S) Y# m( X/ h* A
32.scope详解(scope的其他方法)9 S5 c6 @& s* y! p0 z
33.改变对象属性的访问方式6 Z& V( D; Q# B# p
34.JS标准内置对象的处理; y; p) E2 g4 B8 H8 f
35.实现数值常量加密( S$ U6 |( B0 P0 F3 l: z9 p7 o9 K
36.实现字符串常量加密
( `: i6 o7 G. D, I( z9 i37.实现数组混淆
4 W: Y9 d% Q+ x8 \% `38.实现数组乱序
+ A0 o A; k0 V: r7 R0 w% T39.实现十六进制与unicode字符串0 s8 ?8 m6 B9 z2 d# F) Z: v
40.实现标识符混淆
' O) c6 z8 w, N- A$ ^* f' M41.标识符的随机生成& L. c2 R4 q& M0 ^4 l, N* u
42.二项式转函数花指令
n/ h7 ?: _3 P2 t2 I! s. b! h43.代码的逐行加密
7 X. H/ [2 h9 m# u; D44.代码的逐行ASCII码混淆
- ^6 Z& L6 q' r& p/ \1 S45.完整的代码与处理后的效果
: j- ^ \6 y. m& D% ]' {46.实现流程平坦化混淆1
; b$ }$ w F! n3 K6 t5 c47.实现流程平坦化混淆2
* N& C2 L$ [: c# w+ b0 O, }& i48.实现逗号表达式混淆1
0 r8 Q7 B% g6 M7 S& f49.实现逗号表达式混淆2 q/ P+ S9 O) l; B9 w
50.分析网站使用的混淆手段6 J* x7 B1 }! M1 Z: J% R
51.还原代码中的常量
2 c# P6 k# u* I9 {' h52.花指令剔除思路) Q0 ?/ I, T& @% |, ` V/ U x) b
53.字符串花指令的剔除
, A8 @. y$ r2 x54.函数花指令的剔除
$ \! ?# G0 m- G1 x55.还原流程平坦化
* h% ^+ P4 G( ~) g4 ^ 3 _2 V: B, F. y j
|
|