|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。2 @1 y8 \. M; H" p# G# @6 u9 e& g
课程内容:
7 U" T$ [) b$ H' u2 c/ {00.课程介绍( _- G2 u5 ^: w2 V! X. e$ r
01.环境配置* i8 Q* Q: O5 `5 ~
02.对象属性的访问方式
1 E. F2 k P8 M0 {6 t4 _4 A04.unicode字符串( A# `7 q- T# Y/ v6 \
05.字符串ASCII码混淆8 E* Y4 D& W( H A9 Q
06.字符串常量加密
6 Q+ ^/ d# S' O5 u% p07.数值常量加密; [7 W/ o. Y0 ^3 p
08.数组混淆) |4 F) n+ n" {' P# q7 [
09.数组乱序
h, y8 o- g; o- j3 h9 `2 ]10.增加JS逆向工作量(花指令)
. O0 ?( z( \* P" D9 B11.jsfuck$ G5 I; F2 x: i3 g- {
12.流程平坦化1 c" |. P9 m i/ J0 z
13.逗号表达式混淆1$ `# ?; X; j, x0 x# p4 |2 ?. }: V
14.逗号表达式混淆2
; c. A' C3 Y0 \- L% `! [* b15.eval加密
' B4 W- }+ e' N4 |. h% N+ X0 Z& Q16.内存爆破" D6 W+ h$ {5 C! \, z4 z
17.检测代码是否格式化
& Z: ?6 J. C3 y K0 E$ T2 v' c3 J18.AST的基本结构: d7 U* D/ Y( U9 I6 a) G
19.代码的基本结构
( V* ~9 |- j* I& {+ F( L4 ^7 H20.parser与generator* n% C; o! b) u, ~% }1 z+ O: q- P
21.traverse与visitor: e4 e; |. c( k# n; j' ^5 y
22.types" J% s2 n( Y2 x; a. b9 |! z; Q
23.Path对象详解(Path与Node的区别)
4 ]+ a5 V2 ^1 J0 c) V24.Path对象详解(Path中的方法)/ |5 J4 f+ n7 T& j4 A3 M
25.Path对象详解(父级Path) R# g, e" {1 ? E7 Q" Z! |* {! ?
26.Path对象详解(同级Path)" b2 R$ A( o% a4 s, Z# t1 s
27.scope详解(作用域)9 }1 g* Y1 `- p$ d# ^' K' D X0 R
28.scope详解(Binding)5 B( d% }. R# F5 I/ j5 _
29.scope详解(referencePaths与constantViolations)
4 @1 z( o3 C- q7 t9 K7 b5 y3.十六进制字符串
" ^, s8 h! F- \) R M! V30.scope详解(遍历作用域)
8 X- y# ?& k6 y/ ?31.scope详解(标识符重命名)' f& z! J( w1 G& H$ d5 Z
32.scope详解(scope的其他方法)
4 {8 {) q3 ^+ m. S33.改变对象属性的访问方式* S5 C+ R4 @" u. O- c, k* w9 ^
34.JS标准内置对象的处理 R" L3 Z4 N5 a' y
35.实现数值常量加密$ N: w: L9 | \( _3 x
36.实现字符串常量加密
2 J- w! U3 L0 s& r' ^- a) u37.实现数组混淆
& h1 v0 Z4 p1 U38.实现数组乱序1 K! N8 t0 M- P/ Z* ]7 g
39.实现十六进制与unicode字符串2 c' B4 W" B8 W) J1 y! }- E$ W
40.实现标识符混淆
1 R1 B) q& l* v6 @- `% Z4 b41.标识符的随机生成
$ s R7 l ?/ Z* \42.二项式转函数花指令) Y+ i' k+ b4 y. q# ^
43.代码的逐行加密8 I- u5 J' b$ U# `
44.代码的逐行ASCII码混淆* h, ^( J( K9 y2 w6 |: Q
45.完整的代码与处理后的效果& `6 I' p( C3 F% F! v
46.实现流程平坦化混淆1
8 z+ p3 F) s# ^6 G47.实现流程平坦化混淆2
- g4 h% P( H: }- |0 f& j& z1 f48.实现逗号表达式混淆1( [/ ^- G& Z# X& ~5 N8 W1 F
49.实现逗号表达式混淆2- I( Q4 Z0 j. c2 u3 J
50.分析网站使用的混淆手段
" N5 \* k- Y6 R! @: S51.还原代码中的常量
$ m$ I. l) X: O3 u1 X52.花指令剔除思路; X" C5 V- W: X+ F8 w
53.字符串花指令的剔除7 {7 h6 H5 @3 | V1 t( T. ]5 W
54.函数花指令的剔除
`4 K0 T: y7 ~55.还原流程平坦化. X- N. t7 r ]+ ~; I
& v7 @# ^7 \8 _8 A1 S# E
|
|