|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。; e. Q# N: c3 H8 i0 p
课程内容:& I, j7 n2 p. O1 h& J0 t. l1 O- N
00.课程介绍7 S) t1 d, ^0 T9 D8 n/ t
01.环境配置
4 B' m% M% v- U02.对象属性的访问方式& K# O' N6 g: I! R! f( |1 r2 X
04.unicode字符串
- {9 U; Z+ y. c, j) b05.字符串ASCII码混淆
4 R$ w F( K8 U- Z D06.字符串常量加密
$ J( y( O8 F Y2 K* I07.数值常量加密1 _& @0 A ~; v( k( S# Q/ s, ^
08.数组混淆( q# u- n% I) S% n. w
09.数组乱序
( Z* g/ T W: `; ]% q10.增加JS逆向工作量(花指令)
1 ~5 D$ d! m9 h. m+ ], m11.jsfuck, t9 \" n6 z7 H1 K" k' i
12.流程平坦化* u. B+ a% R. r
13.逗号表达式混淆1! R$ i1 Q' U) ]7 G4 ^/ f$ d/ e" g
14.逗号表达式混淆29 [ A8 y7 z! {3 G7 B
15.eval加密
; ~- s7 [! ~4 O$ [$ y16.内存爆破, E2 C$ c ~$ t- c
17.检测代码是否格式化
; T% D& @# b, t! O! Q- p# o18.AST的基本结构
' Q n/ ^+ {3 w19.代码的基本结构
9 k( Z+ ^3 J) ^3 D+ J2 T" d20.parser与generator
: G2 s: W0 G. l1 u2 g! D$ S6 o" p( m21.traverse与visitor
) s" \8 E7 T4 K$ u22.types" S# M. G- `! c Q3 A( S" R: t* [
23.Path对象详解(Path与Node的区别)
g g1 C1 Z) R% |24.Path对象详解(Path中的方法)
: ]) X9 P5 \% q) k; L9 U25.Path对象详解(父级Path)6 Z' P7 f' z- f$ R$ M# }: q# e1 I/ S: W6 I
26.Path对象详解(同级Path)
& ~- q! ]+ D3 S/ L# t/ A. y/ \1 E% g) ?27.scope详解(作用域)
2 Z" Y- L9 j+ ?28.scope详解(Binding) h& C4 |6 b u, C
29.scope详解(referencePaths与constantViolations)
4 V# K. n; `& G, W5 H% _* v/ R3.十六进制字符串
7 B3 A; ^# w5 U8 L3 p% d, j# ~30.scope详解(遍历作用域): R8 C$ B7 I1 j+ L5 p+ ]: i% d, E
31.scope详解(标识符重命名)
9 X4 U `) S @( G, D32.scope详解(scope的其他方法)3 V5 M& {$ {- ^1 z) h% Q# Z
33.改变对象属性的访问方式
: g% V6 ]! Y: B4 _' N34.JS标准内置对象的处理
( i! c& v2 C5 H0 {. x# g& T35.实现数值常量加密1 {" X: A6 F- F: O9 g0 |
36.实现字符串常量加密
* Z, R( C/ N+ j- q f; _8 r! ]37.实现数组混淆" G8 _; T7 a# T7 Q J2 Y v, [
38.实现数组乱序
* Q3 \: S. b& k8 O39.实现十六进制与unicode字符串
c; h5 b0 Q4 t8 ]40.实现标识符混淆
# D. Q9 @6 s- f, Z* p) x; n41.标识符的随机生成4 N1 S1 I2 l- Y+ v3 L4 F, b
42.二项式转函数花指令
1 R( \, c; r$ Y% Q5 b4 X43.代码的逐行加密
; V7 k3 l \! V' q" Y44.代码的逐行ASCII码混淆) r, F$ M9 r' G3 g& f' g: w/ Q0 Z6 g
45.完整的代码与处理后的效果( S1 s# {4 M+ q; v! S/ R
46.实现流程平坦化混淆1! {! D9 l3 o, w+ t
47.实现流程平坦化混淆2
5 Z8 L9 g% e' F& u' k" O7 |48.实现逗号表达式混淆1
6 e9 e7 U* z* m! G8 {3 b49.实现逗号表达式混淆2
/ I% d7 V& p |& R, g50.分析网站使用的混淆手段
* y5 B* c4 H5 P51.还原代码中的常量8 O/ W8 r, k) Y) I, g
52.花指令剔除思路" w8 l8 P$ e7 `% q. P7 v
53.字符串花指令的剔除
; }5 ]6 K9 ~& t54.函数花指令的剔除
5 l* a+ l9 ?; [0 ~1 i55.还原流程平坦化
; c6 ~/ ]5 c( P$ M- v3 K: V0 J( O
- P; g; R% v D+ Y" o6 I" _# c
|
|