Dinalmask: Add exp to noise (#902)

* Finalmask: Add "tag" to noise items

* Finalmask: Rename noise "tag" to "exp"

* Finalmask: Move noise "exp" into "type"
This commit is contained in:
Cluvex
2026-10-03 14:11:21 +08:00
committed by GitHub
parent cbc4132383
commit f2b3064153
3 changed files with 39 additions and 3 deletions
+13 -1
View File
@@ -314,10 +314,22 @@ n-й элемент массива задаёт, сколько ждать по
`randRange`: диапазон значений случайных байтов. По умолчанию `0-255`.
`type`: тип `packet`. Поддерживаются `array`, `str`, `hex` и `base64`. Значение по умолчанию - `array`.
`type`: тип `packet`. Поддерживаются `array`, `str`, `hex`, `base64` и `exp`. Значение по умолчанию - `array`.
`packet`: добавляет фиксированные данные. Несовместимо с `rand`.
При `"type": "exp"` `packet` - это строка-выражение, из которой собирается один пакет шума. Он генерируется заново при каждой отправке, поэтому может содержать меняющиеся данные, например метку времени. Части выражения склеиваются по порядку в один пакет:
- `<b hex>`: фиксированные байты в шестнадцатеричном виде, необязательный префикс `0x` игнорируется
- `<r N>` или `<r A-B>`: `N` случайных байтов или случайное количество от `A` до `B`
- `<rc N>` или `<rc A-B>`: то же, случайные буквы (`a-zA-Z`)
- `<rd N>` или `<rd A-B>`: то же, случайные цифры (`0-9`)
- `<t>`: текущее Unix-время в секундах, 4 байта big-endian
- `<c>`: счётчик, 4 байта big-endian, каждый раз увеличивается на единицу
- `<n>`: 8 случайных байтов
Например, `{"type": "exp", "packet": "<b 0d0a0d0a><t><r 24>"}` отправляет `\r\n\r\n`, метку времени и 24 случайных байта одним пакетом.
`delay`: задержка в миллисекундах. После отправки одного элемента шума Xray ждёт указанное время перед отправкой следующего.
### salamander