|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
- ?! e0 `" S* n9 J& P+ h% L4 g课程内容:
3 E+ k6 Z' A. J6 F00.课程介绍
2 {( J2 F' W7 F& {01.环境配置" b; }; P- G% |" t3 c, G# e3 R
02.对象属性的访问方式- q# | _1 B1 n4 y" _
04.unicode字符串$ a7 ]4 O/ B J0 T5 X
05.字符串ASCII码混淆
# E$ h5 k: C/ e# g5 f+ [; p, W06.字符串常量加密8 N( }. {1 b7 m7 ~0 y5 {
07.数值常量加密7 M* L6 `1 y! I( y! J7 A r
08.数组混淆
9 H( I D* f7 u. f+ _; N/ _% c09.数组乱序
4 j" S3 l( T4 a6 k7 r* e9 E7 f10.增加JS逆向工作量(花指令), x/ a" S* R7 f J: E9 o% q
11.jsfuck
* X/ m. n: v! }$ Z12.流程平坦化
0 X0 Q1 r; X/ X) ~8 s! i13.逗号表达式混淆1) \1 X) s _# L3 a5 C4 l4 {0 a' C8 ^
14.逗号表达式混淆2
. H. k5 R6 ?, a& R. t15.eval加密. {1 E4 R- K0 n& Y" c6 ^
16.内存爆破
& B8 Y2 M- j, \& e) T17.检测代码是否格式化. R, W/ R0 Z/ s
18.AST的基本结构
- J5 q0 O; y$ ]7 B" K: T& w19.代码的基本结构
9 B% [. F: E; w1 l U- y2 O20.parser与generator
, s6 u* D! r) C3 J# Q- d21.traverse与visitor
7 W: A. c5 J+ `* c4 }: T+ n* V3 k7 f22.types# F8 @( f/ V- K3 ^4 i6 h. k
23.Path对象详解(Path与Node的区别)
7 T. Y7 {5 v1 _- p/ k. X24.Path对象详解(Path中的方法)( b. j: }* [/ a# B( G! r& C( a
25.Path对象详解(父级Path)1 C' C$ u+ K1 ^% D: w1 G
26.Path对象详解(同级Path)
2 q" H' E+ N0 Y, a1 I8 U* i27.scope详解(作用域)
o2 _/ W6 B* X4 d& t. b, h28.scope详解(Binding)! I$ i4 d" e# X: Z8 s0 ]. Z6 y/ v9 @# W
29.scope详解(referencePaths与constantViolations)% P. n, M& Q) u
3.十六进制字符串
* H; U% x, l1 E30.scope详解(遍历作用域)
& H. T* n, G8 p31.scope详解(标识符重命名)7 f s& w* g& v& ^( q z
32.scope详解(scope的其他方法): }2 O* l, j& W9 v) y3 \ h% H
33.改变对象属性的访问方式
6 E" \. l) D/ j# B9 y7 E7 X4 `) i34.JS标准内置对象的处理
4 t& G! ~( ^8 q. e& `% a+ O; `35.实现数值常量加密$ {' x3 C5 F; @; H( `; C/ ~
36.实现字符串常量加密 v: I% Z+ {/ U, A* w" u
37.实现数组混淆
6 q7 _: k9 }2 {6 J' w38.实现数组乱序
+ B) B7 q/ h" |39.实现十六进制与unicode字符串
M! n! ~" k W/ M" u) d40.实现标识符混淆/ Z( V( `8 e" w
41.标识符的随机生成" F. @1 s& o, Y3 _
42.二项式转函数花指令
: F/ h+ H4 I8 d8 V( r# y43.代码的逐行加密1 P2 N4 o7 D1 e1 A+ ]5 N$ H
44.代码的逐行ASCII码混淆
$ y0 Y0 B2 b( j45.完整的代码与处理后的效果
) _2 r0 Y2 ?. l, b9 R( d46.实现流程平坦化混淆15 }1 Q( `! V# R( l
47.实现流程平坦化混淆2
) W+ z1 {) x5 S' j* l5 @: U) ?48.实现逗号表达式混淆18 s" y {2 k" q) {$ ]0 k3 s
49.实现逗号表达式混淆2# n0 g7 v- j" H( S
50.分析网站使用的混淆手段* t# \- h4 @0 K% a
51.还原代码中的常量) |# N8 {. P% d! {" {, Z* C! Q1 t
52.花指令剔除思路( ~* D2 g+ C, q. L {5 b$ j, _6 L
53.字符串花指令的剔除
, B9 A' p" ?9 I54.函数花指令的剔除
! ~6 r4 q) L& Z9 I) C6 R55.还原流程平坦化( s2 D8 d0 I/ s) m# u5 D( X
* E: W1 J7 N0 d% p
|
|