|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
6 q( z; }; J* {# B& T1 X5 R( }, i课程内容:# |' e% ^5 R, ^
00.课程介绍* V( M: O n0 \; L5 d
01.环境配置
. Q- G; ~7 ~+ ~- m% {02.对象属性的访问方式
y6 a! E, N* Y, c" V04.unicode字符串
( X4 T+ S7 q/ c: g05.字符串ASCII码混淆( ~9 l1 [7 b: C+ u
06.字符串常量加密
$ j- z" j( j+ _9 i07.数值常量加密, `2 ]! q# t! F( m. I# c
08.数组混淆! T/ i6 M8 d5 |: z9 v5 \
09.数组乱序
7 c. ?% N! B. q+ g6 y, p10.增加JS逆向工作量(花指令)
4 y0 V4 {/ q* Y1 M6 E, |4 u% Q11.jsfuck9 U/ T3 N# C2 i; I6 E
12.流程平坦化0 H- @5 ]# @8 m' E+ p
13.逗号表达式混淆1
4 |% P7 R' V9 w. {* s* s14.逗号表达式混淆2
* W K) i M# x) c$ m* |15.eval加密
, y* w4 g+ }' }' c6 v/ }8 Y16.内存爆破6 C H. h, i& C
17.检测代码是否格式化
& o& D# m: l/ z' e. e% ?18.AST的基本结构
`2 m+ _0 i6 n' T& y* C19.代码的基本结构2 T1 U6 o. l s: G3 t- z
20.parser与generator3 @2 V& n7 Q; c! w7 ^9 T
21.traverse与visitor* T0 y9 y' G% q( ?7 h* {
22.types
; G6 t7 d( C; U7 ?$ z23.Path对象详解(Path与Node的区别)' t# b8 U% ~/ u; B1 V& k) }3 G" _
24.Path对象详解(Path中的方法)1 V( Q1 B& s$ G% o: [4 }
25.Path对象详解(父级Path)* d; Q6 V8 l+ v# _' c
26.Path对象详解(同级Path)$ V; V8 z/ J& a; |9 g5 a0 I
27.scope详解(作用域)
+ |& G) |9 }( l# u( B& l$ X$ G28.scope详解(Binding)8 I$ A7 @8 V8 ], H8 C
29.scope详解(referencePaths与constantViolations)
, o, r" r5 G/ Z, F( n, U7 j3.十六进制字符串
! j+ C( S' i+ y$ W+ P" H) U30.scope详解(遍历作用域)
% d' D! N/ I- {7 ^% @8 J! J- r* k31.scope详解(标识符重命名)
& w) w% [5 ?* X8 P' R# v3 d32.scope详解(scope的其他方法)
2 ^) E/ U: U2 M0 E* m33.改变对象属性的访问方式2 z. X! R% t4 z4 ]' B2 L9 z. q4 i
34.JS标准内置对象的处理
+ Y5 ~$ i$ q, i35.实现数值常量加密+ ?6 v. l9 k# k
36.实现字符串常量加密: T+ O, C! F5 d' u4 u& | s
37.实现数组混淆
% H5 C I: N7 j; r ?38.实现数组乱序
. [ N7 y$ j8 l6 O* O1 P a# k39.实现十六进制与unicode字符串
* `) U( w! b" [- r8 i40.实现标识符混淆: a: G+ b, K Z
41.标识符的随机生成0 C" y' Y5 f* G: o2 |: K
42.二项式转函数花指令
! Y2 Z6 Y) b5 N8 e& }2 b& y/ r8 G43.代码的逐行加密' ]: B6 O1 d7 }2 z2 |& [4 V' J
44.代码的逐行ASCII码混淆2 ^* A/ [7 b0 L$ H8 q0 Z. U
45.完整的代码与处理后的效果
% c. o0 O* c* B3 l6 J3 n- f3 d) q2 I46.实现流程平坦化混淆1
9 Z. t: o( i0 A4 z1 v4 R. {4 J" Q% M47.实现流程平坦化混淆2
/ S! C( ]4 p. l% a0 D3 e48.实现逗号表达式混淆1/ r& j; q5 I# U$ b% {
49.实现逗号表达式混淆2& k+ |& S6 {4 q) F+ U" S0 l
50.分析网站使用的混淆手段
( s# a: a @0 R, l; n& _51.还原代码中的常量
" v( ]; @; \/ z2 @6 P$ P/ ~52.花指令剔除思路$ L# D% T" V1 {- [ W7 }
53.字符串花指令的剔除
; M/ I' \! A3 F$ O1 m/ V54.函数花指令的剔除' ?! t$ r! D1 a |5 n3 S! B! h
55.还原流程平坦化! ^+ H2 s) P+ u) p6 Q
8 r& G& p% C9 I0 R& @) z
|
|