|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。2 y2 }, V& A$ c2 T4 @; F% Y1 B7 ~
课程内容:
2 G$ o1 t0 a2 X7 F D! K. I00.课程介绍
0 x8 h! x6 |4 T o3 B01.环境配置
: x. s) {6 Q4 B) J02.对象属性的访问方式
# @& T7 i n2 C- E+ M6 s/ F( `04.unicode字符串% X0 `) q0 z( D6 T. T& r
05.字符串ASCII码混淆: H( `# L" U# V, ?! C7 ~
06.字符串常量加密
- V& r0 [; A; Z, w- n2 Z8 Q0 F3 N07.数值常量加密
" f: H3 `4 _& t: s# K# w08.数组混淆
) [! _" d: T3 v4 O: K" ]! w09.数组乱序2 P9 Z4 [# o: d
10.增加JS逆向工作量(花指令)$ P& v& x# m: E
11.jsfuck
1 f8 C( y0 ~( s G- O! L12.流程平坦化
! i& v7 d7 e8 Q- H13.逗号表达式混淆1
# e& u4 U+ d& N# H. `& {14.逗号表达式混淆24 o5 U: E) _1 U2 w& N! m- C5 r7 V! t8 O5 @
15.eval加密& U0 y; K9 ~. J. w
16.内存爆破5 u9 w7 L1 a* m$ T
17.检测代码是否格式化0 I. Z' }8 k2 s: x1 L# U" H
18.AST的基本结构
* p( u' F9 E1 P2 _& l( e* x+ P19.代码的基本结构
& J. I }# h/ m* D @, ]9 v3 N20.parser与generator; L! e" C2 B1 @1 F' p1 _
21.traverse与visitor
! g7 h' b2 q5 k; v' i& d22.types
1 c; h4 H8 w" f, ~% o' O! b23.Path对象详解(Path与Node的区别)- W. }# }5 J7 u* S" z+ e p6 b) R* M
24.Path对象详解(Path中的方法)' ]) B; E: \' d: D o/ Z% v
25.Path对象详解(父级Path)
7 n3 x. W! Z, B" _! y+ _26.Path对象详解(同级Path)
: K- ]' o; l0 z27.scope详解(作用域); Q: U' e& I6 I y
28.scope详解(Binding)
" D7 K0 n& n, q8 K9 t29.scope详解(referencePaths与constantViolations)
8 V# Y" ?* V! i2 j9 }, P0 g+ `3.十六进制字符串7 ~! O0 a5 R% |/ o0 F
30.scope详解(遍历作用域)
# g- |# Z& u$ k% v8 F% P9 o+ N5 N; A' V31.scope详解(标识符重命名)3 f" x+ ? T$ U
32.scope详解(scope的其他方法)1 C$ E0 n6 _4 o7 o$ u6 M6 V& [, L
33.改变对象属性的访问方式- {# U- A, w! G* d: W
34.JS标准内置对象的处理
" B( N, j+ j* n7 i4 @3 }35.实现数值常量加密
! ~" j: a$ q0 |7 x7 H36.实现字符串常量加密0 P! F5 e5 U# o( r+ G
37.实现数组混淆
6 w' T/ |' B8 Z( p38.实现数组乱序
1 ?. Q. Y9 i5 E39.实现十六进制与unicode字符串; ]' A4 u; k1 c
40.实现标识符混淆, A+ R% o# q% A7 K/ {: @
41.标识符的随机生成) N( R, {; H& N) |" g O
42.二项式转函数花指令1 Y3 _& ^ [) J& [! g0 i
43.代码的逐行加密3 v7 [/ h' ^8 H* C
44.代码的逐行ASCII码混淆' y8 J$ {: u3 k- F! s! d6 @4 B( P h
45.完整的代码与处理后的效果
) Q) S/ H& F. k& x" U0 {46.实现流程平坦化混淆16 ~+ y* E7 i1 x- X& W8 [- O
47.实现流程平坦化混淆2
& L! e1 E9 h- E- ^" C48.实现逗号表达式混淆1
0 n- @# r* d. P- h B4 M& O49.实现逗号表达式混淆2
2 s! n) i& L: p' H( {5 ?% w50.分析网站使用的混淆手段2 k5 A# ^$ ?6 G; f& ?$ s p
51.还原代码中的常量6 e( Q3 H1 G7 n& X& q* ^+ m- v+ T
52.花指令剔除思路
5 }0 K3 N- V; p" S6 C* k53.字符串花指令的剔除
% o. A3 ~1 c- U. J% L54.函数花指令的剔除
4 |8 u0 f. `; q# |& Q/ e6 ^55.还原流程平坦化0 [7 U( m$ _2 g9 Z( e" ]9 L( Z
. G( K7 Y, f& U9 D5 D
|
|