|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。& o7 T7 V6 f( z1 f3 G, C/ {8 F
课程内容:
7 o% Y% z% ]( H: i6 b, A, L00.课程介绍
) l5 ~* }+ Z+ x5 l01.环境配置
) [5 \+ H: ~0 K p2 |02.对象属性的访问方式
# y: R' ?7 l' g1 a; v04.unicode字符串
% }: Y9 w$ ~) [4 e" b* N05.字符串ASCII码混淆
9 p$ T8 P5 m0 a) {' V06.字符串常量加密
9 u/ F5 s& ?8 W# @- c# R! L07.数值常量加密
7 ^/ }$ r% ^) @+ E5 c" |4 y08.数组混淆
( y! K4 |8 O! {! f! t9 m* Y- u09.数组乱序' ?; _5 u- x2 O% U* Q7 M8 E9 s
10.增加JS逆向工作量(花指令)
0 P* `. v4 O- t( @; O- W: ~- j! }) L11.jsfuck
+ [- O- Z' X' c/ }) d, {$ v12.流程平坦化* z! c, ^8 ?1 H4 a
13.逗号表达式混淆1
4 {: z9 g5 z+ i9 e5 f$ w9 U# ?7 \14.逗号表达式混淆2
+ w4 H. Q/ t; t3 i. l- V* ]( f& }15.eval加密' H) Y, G3 }5 }/ w U3 d* H2 j
16.内存爆破
5 J7 E! T- p5 @% h% y17.检测代码是否格式化
4 @* H% v& P- o/ r18.AST的基本结构
8 u8 T5 g; K" O! L. G, `7 o e) Z6 l19.代码的基本结构5 o& O+ f" m% M5 z% K/ E
20.parser与generator
* z5 F- L9 O8 |* @. `- w21.traverse与visitor
6 G0 T I! G* Q0 f7 M22.types! G, i# y7 L# b" ]* U$ j- Z
23.Path对象详解(Path与Node的区别)
; K6 J2 G1 b( T1 R; `/ _5 F! N24.Path对象详解(Path中的方法)
8 t' D1 V$ M/ h- K25.Path对象详解(父级Path)( j4 U- T7 W* J* {
26.Path对象详解(同级Path)3 `# Q, @% n+ T. D7 x$ T
27.scope详解(作用域)
. `; p/ {* V/ V! X( Y+ X28.scope详解(Binding)
1 x2 b, M% f5 U* J7 k# B. S29.scope详解(referencePaths与constantViolations)! E& C5 d3 Z/ O9 u- _$ T/ m
3.十六进制字符串8 D# o& ^( [0 f$ s6 p4 h
30.scope详解(遍历作用域)
* ` C) d5 g& c& p7 y% `, H2 G6 E I31.scope详解(标识符重命名)
9 y3 L, {& ?8 I0 ~: Q32.scope详解(scope的其他方法). L. i! [) [/ `' ]. n5 m- o
33.改变对象属性的访问方式
/ \& t& h0 l. m- B34.JS标准内置对象的处理
& i2 _- H8 A( `8 ^35.实现数值常量加密
! Z, X* N; I. p0 W. D% j% p& U+ b* B36.实现字符串常量加密
$ Y5 y* {3 m" Y: y, Q# n37.实现数组混淆
1 V1 P9 ]9 A( V. G) k. i2 h38.实现数组乱序7 A$ e; r, ^5 n* @
39.实现十六进制与unicode字符串
7 I; ^. k v3 u8 b2 V40.实现标识符混淆
! G- U# M* U! \. Y% h3 c, p7 O j41.标识符的随机生成4 R! c$ E ?5 m# @3 g
42.二项式转函数花指令
$ u+ A' b( W4 h3 x, s0 s6 ?43.代码的逐行加密9 t, N o; n) x" ^% j8 u: M
44.代码的逐行ASCII码混淆" {: z9 B. B2 x% b2 I. }$ e
45.完整的代码与处理后的效果; K" Q3 S+ n4 I3 z
46.实现流程平坦化混淆19 Z p6 I- D3 R
47.实现流程平坦化混淆2$ H- r. ], l( j' g! g; o! s) o1 h
48.实现逗号表达式混淆13 ~4 m. r: H$ J, T& R. p4 k
49.实现逗号表达式混淆2* o: ^# }6 v$ L
50.分析网站使用的混淆手段
' t5 C K$ q; W& Z& E51.还原代码中的常量
/ ~* O- E4 H( s52.花指令剔除思路. K, n; X& O1 J1 I5 U' K$ f; X, I
53.字符串花指令的剔除
8 L3 O: b6 z( S% T9 }54.函数花指令的剔除6 {2 M) u* G' y& _* |
55.还原流程平坦化
9 C8 n7 M5 N' Q8 C. }6 e# y 2 q, Y& x) B; Z
|
|