|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。! y4 A' x5 i" V' j1 f# ~- b' z
课程内容:% k# g; Z% s5 }; U! u
00.课程介绍
- f2 }8 D$ O( S- N; j1 ^/ j01.环境配置( W! L. ^) C9 r+ N2 q: v' A
02.对象属性的访问方式
8 r' \& v. ]) {+ H! R7 p04.unicode字符串
+ g1 `# G; t2 R P* G7 i }05.字符串ASCII码混淆 [ a* e9 m" {- g! {
06.字符串常量加密
" ?& M+ j* T0 I0 o6 K7 x5 U07.数值常量加密. ?7 F8 T, }# [
08.数组混淆
3 P; j1 P5 W* H$ N09.数组乱序
) y1 K1 k' d6 e" ~7 l9 F10.增加JS逆向工作量(花指令)
: ]! n; z$ m2 G |7 H0 o, ]7 I11.jsfuck
) o& x; x7 T5 y8 B1 ~. n12.流程平坦化6 j2 W8 _- O1 I3 G* Z' f, K
13.逗号表达式混淆1( m1 G5 A4 v9 X* j# _
14.逗号表达式混淆2
7 Z6 n" y. a0 o0 ^" E( q" c- ~15.eval加密& {1 E9 _ w2 ]" F# z
16.内存爆破0 O7 E) X0 F& F0 E0 J( o
17.检测代码是否格式化5 p4 K1 \ o; R1 _1 D) |
18.AST的基本结构
$ R/ W8 _/ _' d1 q2 @19.代码的基本结构
& Q3 P, J5 \& U' k. a20.parser与generator2 [0 X$ d. G5 p' r* A' J
21.traverse与visitor6 N" P7 B/ E$ \5 C
22.types7 U! \! c7 E* ]; {
23.Path对象详解(Path与Node的区别)
" T$ q, V/ I3 o9 Z& K24.Path对象详解(Path中的方法)
) G# }! ?9 |# S) ?" D; f, Q" i25.Path对象详解(父级Path)
& Y; q: Q* G* t$ h) G26.Path对象详解(同级Path)
& \( i z$ h" y% u" [0 Y27.scope详解(作用域)
! }( A. H9 A% ^4 D/ e+ M- Q28.scope详解(Binding)
% T% f' B7 B% j; Y( Q! z29.scope详解(referencePaths与constantViolations) a! L: L: H: _0 ]8 G/ \
3.十六进制字符串6 C3 U, _' S; f7 [
30.scope详解(遍历作用域)
9 z2 O7 k" Q7 r1 L/ `# w31.scope详解(标识符重命名), m( u/ ~* g" ^4 _, s& t
32.scope详解(scope的其他方法)
5 v8 c# L1 N. S7 ?1 l33.改变对象属性的访问方式9 ^$ g0 n$ ?8 A: @
34.JS标准内置对象的处理( h& ?4 _5 Q/ R, Q0 Q. {; _; T
35.实现数值常量加密
! v$ P% \2 F* C9 N# ?36.实现字符串常量加密
# U7 M/ U# ^2 r4 T4 \8 S9 f' Y37.实现数组混淆# P) y& `: I4 m
38.实现数组乱序+ ?1 N, Y; b( \
39.实现十六进制与unicode字符串: u) `2 l8 \, @7 x$ W
40.实现标识符混淆
, O, Z% E+ N) l# z* W41.标识符的随机生成
& F' ?7 q: g) m) ?& V42.二项式转函数花指令
$ w' b4 { U" ?43.代码的逐行加密
- j+ h% l3 w8 o/ H5 _1 r& Q6 ?5 M9 k44.代码的逐行ASCII码混淆
1 h. {! l2 o3 g& C45.完整的代码与处理后的效果
' i& j5 o7 f* k) P46.实现流程平坦化混淆1
* |: S6 M' p8 B# k: U* m1 u5 d47.实现流程平坦化混淆2! P/ d0 W( n3 T( j$ u7 L0 F
48.实现逗号表达式混淆1 @$ k( J6 a9 d* L- `
49.实现逗号表达式混淆2
; m) G5 O& J( q3 ]( r" v50.分析网站使用的混淆手段8 U! L: [% x3 F* |
51.还原代码中的常量 [, V" R3 H& o# Y1 ?3 l5 g& L& Q
52.花指令剔除思路
8 T5 y f- W0 K6 w+ U, t1 r6 t53.字符串花指令的剔除, k Y2 n: }$ J; p1 T& |' e
54.函数花指令的剔除
, J/ ~# d9 S* m9 E$ O55.还原流程平坦化
9 I) b3 R# N2 r" w ) ?/ q9 d. a$ A8 f
|
|