|
|
本课程属于JavaScipt防护与逆向进阶课程。JavaScript混淆与还原,是当下反爬虫与爬虫对抗的重要手段。本课程从JavaScript混淆原理开始,紧接着介绍Babel库提供的相关API。有了这俩基础,就可以开始着手自动化混淆和还原Java Script了,最后本课程还介绍了AST在实际案例中的应用,以帮助大家更好的融会贯通前面所学的内容。
; \4 w. H y2 w+ B4 R' x课程内容:
' K3 y( `& q6 b5 h00.课程介绍" ~7 A5 d1 Z8 l3 O! B
01.环境配置
9 D: q8 ~; \( D: [; w02.对象属性的访问方式
3 ^* F6 o& t3 y( G( c04.unicode字符串
$ f5 O, g; i. D( n/ S) D" B05.字符串ASCII码混淆 f$ N2 q$ E% h3 F
06.字符串常量加密
! A7 g, [4 \" _; I$ N2 ~07.数值常量加密, G; Q: T7 Y5 p) O& q
08.数组混淆
9 ?8 M9 u& c* @; R09.数组乱序% ?* e- z ?2 \( ^- q" T' v
10.增加JS逆向工作量(花指令)
/ l5 Y; U* T6 x# ]8 I* z- G* Q, e6 L11.jsfuck
, O7 T* K5 P8 j7 J6 a% l+ P12.流程平坦化
3 z& r5 ^0 u: z; a13.逗号表达式混淆1
/ Z& J4 j" C/ K14.逗号表达式混淆22 t( z2 R- W6 P. S% [
15.eval加密; J% H* ] e" r7 F
16.内存爆破9 Y, e5 u; |- p: @ a) m9 K
17.检测代码是否格式化: l \) X8 \5 q8 ^7 C+ |" M8 q
18.AST的基本结构
" B6 w- ]# L6 |& w19.代码的基本结构
7 K, V0 G9 C3 b8 P$ W( E" n5 s20.parser与generator
" B7 z+ X( j) l" g4 @$ ]/ R21.traverse与visitor3 R, a! C# o1 `6 A0 i- s
22.types
; `/ p/ U5 v' U* r: G23.Path对象详解(Path与Node的区别): o/ z/ i) S, Y1 Q% U0 E5 c
24.Path对象详解(Path中的方法)
; q' c# m' z2 x* \& Z+ K8 ]% q& i# K25.Path对象详解(父级Path)
: N$ |- J- c5 G26.Path对象详解(同级Path), s, @- I5 ] Y- B% Q s
27.scope详解(作用域)! @! x: p" l7 x/ Q$ G" ~# W
28.scope详解(Binding)3 |2 n1 M- m. P. ^9 h
29.scope详解(referencePaths与constantViolations)1 s* G3 D: V3 P p O# v: ~# A t
3.十六进制字符串
5 ~ S+ B C% N/ c; \30.scope详解(遍历作用域)
* J- x4 Y7 r. d31.scope详解(标识符重命名); S' V. q; X f" V
32.scope详解(scope的其他方法)
/ |% M/ n1 n; O- l, ?33.改变对象属性的访问方式
- C+ u( A" ~" c" {/ Z34.JS标准内置对象的处理0 o1 U/ w+ |8 }8 O, J) [
35.实现数值常量加密
* A3 V# I. ~( U! v36.实现字符串常量加密5 d$ C, f! k; W7 U1 Q' n% p# K2 a7 o! E
37.实现数组混淆$ r5 H; ?. y; F
38.实现数组乱序
4 }4 S5 ~$ ^# |39.实现十六进制与unicode字符串
5 R$ T" t6 `8 S$ ?: Z: `40.实现标识符混淆
* i* I6 _/ |. |+ h5 l/ s41.标识符的随机生成
; @) `& e2 `/ F3 W O42.二项式转函数花指令
( l. A# p3 K+ o% U$ @; J4 Z* x+ a43.代码的逐行加密, R9 E: U9 C8 v; e2 G
44.代码的逐行ASCII码混淆
- S3 [' F% V, n45.完整的代码与处理后的效果
; u4 I" U/ |) t- n: h46.实现流程平坦化混淆1) @, {! r' b$ T7 E! _! k2 q
47.实现流程平坦化混淆2
* V( I, O) `+ i8 r& ]7 B7 |1 D y48.实现逗号表达式混淆1& c/ r; w* c& y% |
49.实现逗号表达式混淆2: e7 {" G0 f ~3 f1 h3 s" Z. W( ~
50.分析网站使用的混淆手段% A5 Z: ?" h0 g) V/ j2 ]* q4 {
51.还原代码中的常量
2 w4 q3 c; ~5 a; n- P v52.花指令剔除思路8 N q8 d5 B& e1 m, S! q! `1 ?
53.字符串花指令的剔除1 ]0 K1 Z4 [. A& P7 M
54.函数花指令的剔除
8 c6 K d8 Q2 z' @; T/ b55.还原流程平坦化; |& h2 G0 ~( b9 x% g
* `! Q5 I9 s B' O! V V* M. H z
|
|