mirror of
https://github.com/2dust/v2rayN.git
synced 2026-09-14 02:12:06 +03:00
2a65e5ac80512befc50853db024f1e758b203ecb
`Utils.ParseQueryString` already unescapes every value, and `BaseFmt.GetQueryDecoded` unescaped it again. A value that still held a valid percent sequence after the first pass decayed on the second: an obfuscation password of `ob%41fs` is exported as `ob%2541fs` and imported back as `obAfs`. Only well-formed sequences are affected, which is why the damage is silent - `100%` and `66%ff` survive untouched. The same function also split each pair on every `=`, and skipped the pair unless exactly two halves came out. RFC 3986 lists `=` among the sub-delimiters a query value may carry, so only the first one separates the key from the value, and `HttpUtility.ParseQueryString` reads a query string the same way. Splitting on all of them discarded a syntactically valid pair: `?ech=AAj+DQAEAAAAAA==` was lost entirely, and so was a `plugin` value in the non-canonical SIP002 spelling, since those are `;` separated `key=value` lists. v2rayN percent-encodes both on export, so its own links were never affected; what changes is that the parser now follows the grammar instead of discarding a pair it cannot split in two. Splitting on the first `=` only, and reading the value the parser already decoded, fixes both. `ParseQueryString` keeps decoding because `ConfigHandler` reads its result directly. `GetQueryDecoded` and `GetQueryValue` are now equivalent; they are left separate to keep this change small, and can be collapsed if you prefer.
Remove extra .gitignore file and move .gitattributes to the root folder for consistent storage of .git-related files. (#6545)
v2rayN
A GUI client for Windows, Linux and macOS. Support Xray and sing-box and others
Download / 下载
Download the latest release here:
在这里下载最新版本:
https://github.com/2dust/v2rayN/releases
Tip
v2rayN is the desktop version. For the mobile version, please visit the v2rayNG
v2rayN 是电脑版,手机版请访问 v2rayNG
Documentation / 使用文档
Read the Wiki for usage guides and configuration details.
请阅读 Wiki 获取使用说明和配置教程。
https://github.com/2dust/v2rayN/wiki
Supported Platforms / 支持平台
| Platform / 平台 | x64 | x86 | arm64 | riscv64 | loong64 |
|---|---|---|---|---|---|
| Windows | ✅ | ✅ | ✅ | - | - |
| Linux | ✅ | - | ✅ | ✅ | ✅ |
| macOS | ✅ | - | ✅ | - | - |
Minimum OS requirements: Release files introduction / 最低系统要求:发布文件介绍
GPG Verification / GPG 签名校验
Release files are signed with GPG to verify authenticity and integrity, helping prevent mirror, ISP, or CDN hijacking.
发布文件已使用 GPG 签名,可用于校验文件真实性与完整性,预防镜像站、运营商或 CDN 劫持。
Fingerprint / 公钥指纹
7694 5E9F 3E9A 168F 8070 F195 805D 661C
134D FAF6 8903 C199 463C 31E5 AE90 3AE0
Community / 社区
Telegram Group / Telegram 群组:
Telegram Channel / Telegram 频道:
Languages
C#
92.3%
Shell
7.7%