|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
- a* m8 t) P) H) }课程内容:
0 J6 a& h; b' H. `( [0 F8 W00.课程介绍
/ K" J5 P/ {% f7 K01.环境配置# d9 `. s# k" ~; U! I$ h! `
02.对象属性的访问方式
' R( r- n Y) r5 G# U! I% d04.unicode字符串+ W& P/ C- v- n- X0 T
05.字符串ASCII码混淆# R$ j, m% G n
06.字符串常量加密2 S& o1 ~2 }6 s8 J5 u) M
07.数值常量加密$ M/ E. J/ I$ c: J9 w! J. f2 R
08.数组混淆
$ b0 |$ r6 K1 l8 k09.数组乱序
4 l9 G2 b' `- g. O$ b/ E10.增加JS逆向工作量(花指令)
: u+ x* l/ e! p- k P( z& u* e11.jsfuck
+ P& a8 J5 B6 E& Z. R, g12.流程平坦化
9 c$ _2 f' Q. P13.逗号表达式混淆1
* G' q' t! E5 j0 i+ r+ V14.逗号表达式混淆2
4 S" ^( g! _8 l3 X15.eval加密
1 z- Z0 k$ y4 C3 {. T16.内存爆破) u0 C! R: b9 d: }% ^
17.检测代码是否格式化$ S7 W4 f4 [" x/ _0 x# P
18.AST的基本结构
5 ~/ ~2 C6 V; @& e+ m; O+ p19.代码的基本结构# x) @" S. i) o {7 U8 ^, J9 M
20.parser与generator
( t' V8 N( A0 D0 O9 w" [! S8 Z21.traverse与visitor
7 \1 w X! T7 ]# M3 K22.types: P, ]; k7 P9 L# h" A
23.Path对象详解(Path与Node的区别)
( N7 C( f0 D/ {- D( y8 K24.Path对象详解(Path中的方法)
# ~% R# ^1 d% y( C, m25.Path对象详解(父级Path)
) y. r# _% F* U ^3 @* v% U* f26.Path对象详解(同级Path)
! ^1 T! X( y" F) H4 c27.scope详解(作用域)
# |& ~# o* W& @- _7 p) Z. k, O8 T28.scope详解(Binding) D) @1 P( t: [3 \0 j7 `; c7 b
29.scope详解(referencePaths与constantViolations)" |" {1 e' }, q7 @6 @) X& V
3.十六进制字符串: r3 K0 ^$ b3 m& {
30.scope详解(遍历作用域)$ p+ s# A: Z4 ~' W4 ~4 v
31.scope详解(标识符重命名)8 ^2 u1 ~6 e; S/ O* |8 j4 s: o6 e
32.scope详解(scope的其他方法)1 d8 R' u/ b4 ~& U( Z8 t
33.改变对象属性的访问方式 h1 ~+ A! Q6 i, {( n
34.JS标准内置对象的处理$ o/ _ L* n3 k% _9 Z8 d4 x" T
35.实现数值常量加密
2 ` O# ~' D9 n2 h) f36.实现字符串常量加密2 M- |, B( e3 W8 p
37.实现数组混淆6 ^( R( k9 Q& I9 A
38.实现数组乱序
) {% e4 b- n8 d39.实现十六进制与unicode字符串" i$ h' N$ U3 f6 Y5 p$ J" Q
40.实现标识符混淆5 W# R+ _5 Y# [( a4 s
41.标识符的随机生成
$ _) c# ?. Q- x8 V. N42.二项式转函数花指令* k8 b, b1 ]' ~# S; {- y
43.代码的逐行加密
8 T7 }. _! U+ {% R2 c44.代码的逐行ASCII码混淆
; V- Y4 _& t5 U, N$ \8 r; E8 w45.完整的代码与处理后的效果, \) A+ L. y$ Q: L- a$ o
46.实现流程平坦化混淆1
. G1 p' t6 {; i9 E/ u1 y/ u47.实现流程平坦化混淆2) ^$ q7 _! p& t4 D, `( e
48.实现逗号表达式混淆1
& w5 f S) J+ ]0 |3 h8 ?. S. n49.实现逗号表达式混淆2
" y2 w0 b1 _/ u- |% R0 ]+ K/ M+ J50.分析网站使用的混淆手段0 o d. v. Y B# }) C/ `3 |
51.还原代码中的常量
0 v5 { M3 J7 F# `* ?3 z52.花指令剔除思路
# T' _# ^9 f% o p+ G- I% L53.字符串花指令的剔除
& g `* [$ i0 a: M1 F# X54.函数花指令的剔除
* ?6 a j/ \6 ?2 g4 L55.还原流程平坦化, u4 X. D A: y& W# [& d8 V
8 _8 N0 u3 b; O( x M+ z
|
|