|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
! o3 M F: n% w: B: E8 B; r. T课程内容:0 T% [* P: U6 n3 ?
00.课程介绍2 p0 Q* P2 ]3 n( x
01.环境配置$ W2 [ e* W6 N X# ?& |! B
02.对象属性的访问方式
" A+ }! m3 r4 ~0 `8 ?% F04.unicode字符串
. A% y$ Y' ]* q1 M# w9 S05.字符串ASCII码混淆
8 ]' _* u* D& C; r06.字符串常量加密
) K4 n8 m4 i% J; X7 e07.数值常量加密: c! z7 v, L" C( }6 J0 m6 u
08.数组混淆0 ?; l s! b2 s8 s* q( L+ K
09.数组乱序
+ p) P1 Z( f2 X) O; y10.增加JS逆向工作量(花指令)
) J/ s$ @6 Y8 h" _* @/ k11.jsfuck
$ q( Y+ v: K. n+ w( `12.流程平坦化1 H! w$ C- c3 A: `* H
13.逗号表达式混淆1) B8 l- S1 D: V7 ]- P& L3 n
14.逗号表达式混淆2% E3 _. D6 W4 w* H3 b3 }
15.eval加密
+ s6 w/ }/ O& K Y; F16.内存爆破
( {: G% D; J3 H8 f* g17.检测代码是否格式化
0 _3 H5 H/ e" P' o# C18.AST的基本结构
* G! p( o4 d# L* D0 ` M7 I# f19.代码的基本结构
$ G* x8 a4 w `& e9 m* L: ]8 `20.parser与generator3 }# e$ c U* f- }1 E3 n ~
21.traverse与visitor5 t0 _8 H5 ]4 C4 K I
22.types2 g2 x2 m8 n2 p. p7 d1 L+ C; v
23.Path对象详解(Path与Node的区别)
+ p8 Z8 k- _! n5 Q+ L2 L+ N) H24.Path对象详解(Path中的方法)" N: Z' R, f/ ]! G. ^! D
25.Path对象详解(父级Path)3 P/ m6 v; \, M
26.Path对象详解(同级Path)& Q Z; K4 ~9 B1 }
27.scope详解(作用域)
5 R" w* V7 {* l5 h2 E2 A$ ~, c: x28.scope详解(Binding)
" E+ K+ a9 \( a2 f29.scope详解(referencePaths与constantViolations)
+ | X) m) W% d: J3.十六进制字符串; Z( d j2 h7 P' e8 ]
30.scope详解(遍历作用域)4 `2 w1 ^3 v+ i, o3 ]+ ^
31.scope详解(标识符重命名)9 u2 P- U% T% G }7 t- i/ N, @
32.scope详解(scope的其他方法) S1 L2 W& \# U3 s) B+ N) ^ r- @$ O
33.改变对象属性的访问方式
1 u& ]6 m2 L) O34.JS标准内置对象的处理% |1 D' J) M4 H% m* C7 m6 ]
35.实现数值常量加密- B5 b K# A( n% ]$ m+ p0 j" V
36.实现字符串常量加密
4 g5 F- u( H/ { t5 G- U7 K37.实现数组混淆
1 K+ O6 ? K: D: F4 S1 n# O! q2 \! \38.实现数组乱序/ a" t- ]- J. U( C h# p
39.实现十六进制与unicode字符串
) y& B. ^2 ]9 O( Z: P40.实现标识符混淆7 \/ n8 c8 Z/ g/ x% }
41.标识符的随机生成
% E. I+ X1 r' @# K8 k8 n42.二项式转函数花指令) l( }9 k; s. @2 q
43.代码的逐行加密0 g/ J6 c0 x$ t3 E3 \$ ~. n$ F$ h. J
44.代码的逐行ASCII码混淆- s8 S; H( w- a! r: K5 e0 H
45.完整的代码与处理后的效果8 x1 @- s3 k! B( e; P2 _: I
46.实现流程平坦化混淆1! {9 a. r% r7 |. Y4 G/ W* O5 t
47.实现流程平坦化混淆2
+ z2 E5 `: }7 g3 t$ n X6 b" u2 ^1 }48.实现逗号表达式混淆1. X0 @- ?/ f1 C$ \# O8 n
49.实现逗号表达式混淆2" D$ A: q9 r3 B
50.分析网站使用的混淆手段8 ]' G/ l/ z; G, o3 n$ d, T
51.还原代码中的常量0 X6 e* [! Q. f3 ~ g2 ~4 F9 L, X
52.花指令剔除思路
0 ]/ @* M! B* _/ f53.字符串花指令的剔除
4 n3 C2 g( g$ T* h- i& q8 h; g54.函数花指令的剔除' E. Y! g( X. z% I' T
55.还原流程平坦化+ t V8 U# _8 _8 ^
# j9 A# c7 E |) E3 G+ F
|
|