|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
0 W3 m% s7 M: c/ N& n2 i/ }课程内容:
* u! h7 U# g) i0 u0 |3 G00.课程介绍& ?; c9 m4 `; V
01.环境配置
6 [0 l8 ]9 Y; R, L' ~6 }02.对象属性的访问方式6 H+ x8 Q: {+ |7 m X
04.unicode字符串- R% s8 H. @1 b
05.字符串ASCII码混淆$ j/ w, D' H% |0 ~
06.字符串常量加密
6 d* d, Y1 L. s4 d1 M7 l9 }$ \. c b07.数值常量加密0 h3 v& d8 W5 g# H7 @% i
08.数组混淆
- S; H) Y2 e& c6 M* [09.数组乱序
* @8 I; H: l/ h0 F10.增加JS逆向工作量(花指令)
" x7 o# `" J# x" F. {1 |' h, g6 _11.jsfuck6 x2 n" T3 e& N" b1 i% q: o; F
12.流程平坦化9 V" C9 ? H5 u3 `# f
13.逗号表达式混淆19 D8 O% C* M5 z! i- D' M Y
14.逗号表达式混淆2% V3 X% f3 e7 C7 _! [
15.eval加密
* j. R& K9 D/ i16.内存爆破, v) S% Y. P* n, M- j3 ]3 ^" I
17.检测代码是否格式化
9 B6 I+ ^ Z; m; }+ [5 z18.AST的基本结构- n8 `1 p! |4 [) ^
19.代码的基本结构+ [8 k/ p* A o' r: U' ~
20.parser与generator# T* x; Z* e' P$ @8 Z1 d8 G& e6 N
21.traverse与visitor
" S5 O- P& X4 J: _8 ?9 U+ l22.types
- u; N2 g U: i5 d9 s+ \% N! n23.Path对象详解(Path与Node的区别)
7 b6 L, N+ R! b/ w1 [& [24.Path对象详解(Path中的方法), w8 W+ I N# D+ I+ h2 x7 T) m
25.Path对象详解(父级Path)- r. k. z+ F& `! z" T6 X, u g
26.Path对象详解(同级Path)
4 z- M6 M- o% O0 w0 L4 M* z27.scope详解(作用域) R$ C3 _# z$ w- W* }
28.scope详解(Binding)
! U3 ]* G* E' J/ c- e29.scope详解(referencePaths与constantViolations)
. {/ `; x) p; N0 l) ?5 ?$ S6 G3.十六进制字符串
8 J& W: d' s& f! R4 x0 _8 i30.scope详解(遍历作用域)& b* d, F& w9 S! i# l
31.scope详解(标识符重命名)
" T3 x4 m$ b- _; _: y8 x32.scope详解(scope的其他方法)# [- X) w' i+ v' d/ j3 l. p
33.改变对象属性的访问方式& G8 p* n1 @& x6 g" ~
34.JS标准内置对象的处理, n0 o- S0 D( t q
35.实现数值常量加密1 H( C! e* l' @
36.实现字符串常量加密0 b4 p$ t& y( G, W( F* v& \/ ?- J! L
37.实现数组混淆
4 |3 L/ P ?2 [& b- n k38.实现数组乱序
9 B: Z5 a! D) b39.实现十六进制与unicode字符串! k% a7 }- O c, |
40.实现标识符混淆) `5 ^8 Q. }- r
41.标识符的随机生成) z3 C* k- _8 X7 ^8 ^( y
42.二项式转函数花指令5 m' a$ a2 j; f1 N2 s" v
43.代码的逐行加密
1 q/ k6 L( V* h! r44.代码的逐行ASCII码混淆0 m* V- J# I/ n a H* y1 \
45.完整的代码与处理后的效果
, `% i( |# F% f46.实现流程平坦化混淆1! X! P- R; l0 D; G u, {
47.实现流程平坦化混淆2
2 F9 `4 u) ^% a; O% E8 r48.实现逗号表达式混淆1* P2 k4 h9 g; I/ r' x
49.实现逗号表达式混淆27 ]* O w) j) B8 e: [# B# c
50.分析网站使用的混淆手段
6 u; N7 c: ~, n8 h4 i. E51.还原代码中的常量' x7 r- z7 C0 q# j
52.花指令剔除思路& _) b& g R9 M
53.字符串花指令的剔除
! k9 ~9 r. c. B3 o, `/ {' R3 c. U54.函数花指令的剔除( a' ~* ^; v4 h/ A1 \ [" a
55.还原流程平坦化8 U' t6 q: i0 u% U
4 w; c& o @& X
|
|