|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
- K; z1 O0 w% w3 V- |- I课程内容:
?1 s# S; s% |5 i3 D7 t2 y00.课程介绍9 W$ }9 @6 H- c4 b
01.环境配置
; |# k9 K6 U! S* J! Z02.对象属性的访问方式
# l. y# O- l, R) I7 z# M8 a04.unicode字符串/ S k& S' O/ M* Q5 O7 ]# O
05.字符串ASCII码混淆8 y5 E, @0 F4 F! s
06.字符串常量加密
: [; M8 X0 a1 d1 n8 a07.数值常量加密
: s! t$ l' w% Q8 V$ H% Q% c08.数组混淆6 l" s: J6 x! b; g; m7 m; D
09.数组乱序
6 b' M; N- Z! D3 x/ ?; L10.增加JS逆向工作量(花指令)
' T) ^3 g) m- E9 b c* b3 s* o11.jsfuck, J: E$ o1 w- g$ Q, X8 G
12.流程平坦化
7 Z9 X$ p, K' N$ Q4 L13.逗号表达式混淆19 p n3 h' b7 o" F5 y; u; X
14.逗号表达式混淆2& s# e" w7 j! @: C- Q3 J' J; V8 e
15.eval加密
! ~8 D- B& y S" q) j16.内存爆破
. j( H9 Z* P6 Z17.检测代码是否格式化& ^$ Q7 J+ }* y1 S/ l" x
18.AST的基本结构" ^7 P3 v9 n, `, V$ y! L
19.代码的基本结构
}8 U: B6 B/ F$ x2 X ^3 u; j }20.parser与generator
9 h% u* ^! l/ O6 r; @+ ~: }& m21.traverse与visitor$ ]3 n2 P& K9 X
22.types
* [8 f ]8 ? o" ]/ Q2 q! j, m! ?23.Path对象详解(Path与Node的区别)
2 q, X, G1 q1 n7 h8 q% ~) d# v/ @4 s24.Path对象详解(Path中的方法)
% l6 p1 V, Z: @, ^7 ]25.Path对象详解(父级Path)5 b5 x' _# K0 A- b! S
26.Path对象详解(同级Path)
+ m, }) ?3 N0 Y0 e27.scope详解(作用域)
+ @3 h9 P U; S1 [* @( N L28.scope详解(Binding)4 f% S8 [! ~/ f5 ]
29.scope详解(referencePaths与constantViolations)* H3 [- g2 H, w$ V
3.十六进制字符串+ |& Q$ u1 R" X/ ?. J
30.scope详解(遍历作用域)- F$ ^- |+ Q" Z M
31.scope详解(标识符重命名)
4 D, u" ]+ {4 n, M: M4 ^32.scope详解(scope的其他方法)' Y% q( C5 Y& \
33.改变对象属性的访问方式
4 D4 m8 `( t5 u6 _34.JS标准内置对象的处理8 X. `/ V- z& h( P4 v7 E, q
35.实现数值常量加密4 {2 u, D* t2 |; @$ L" O) M! b8 D6 `
36.实现字符串常量加密3 g8 B; d8 y* q6 L8 R0 _0 F
37.实现数组混淆
7 Y" }( B5 ]+ r' m/ G38.实现数组乱序 p' Q o4 R) |6 c
39.实现十六进制与unicode字符串
2 b$ s+ q. ~6 P/ i6 ^( q40.实现标识符混淆
8 T F, U8 a% _- p3 d6 \6 I& z41.标识符的随机生成$ k6 p ?( Z: A9 C, O; @
42.二项式转函数花指令
7 i' G1 _. l8 O# j$ p {: O' S43.代码的逐行加密1 ^7 _+ ^1 X! `: p* c0 x
44.代码的逐行ASCII码混淆) a" J9 v% h! y/ _- K+ P6 z9 b- R: i ]; r
45.完整的代码与处理后的效果0 e# c' ?# `' B( A' V' x
46.实现流程平坦化混淆1
/ R9 M6 C; `5 n47.实现流程平坦化混淆2
4 e3 ^' l7 d j' q48.实现逗号表达式混淆19 Z: Q0 o7 `, ]$ n& i# h
49.实现逗号表达式混淆2
9 a0 ^6 U$ d5 P+ m6 W) Q" d50.分析网站使用的混淆手段
0 ~6 G: j9 g0 Z i. W$ h$ ~51.还原代码中的常量6 D8 W d% Z; w- i, V3 K& b6 {# V
52.花指令剔除思路
8 S) |, I! C/ f5 A$ q, x! Y53.字符串花指令的剔除
' r }# i2 h x( M54.函数花指令的剔除
3 M7 ^! i$ @6 N& ~' ?. L. p: p6 Y; I# h55.还原流程平坦化! c4 h# }( ]' w* _! |, K$ I; @7 M* f
6 N+ H# z; R$ U3 _0 G! N
|
|