From 70069a05e613f9476afa2b403dfb3db5e878e779 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Thu, 4 Jun 2020 08:08:30 +0800 Subject: [PATCH 1/5] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0d557a38..c1197a8b 100644 --- a/README.md +++ b/README.md @@ -7,4 +7,4 @@ ### Requirements - Microsoft [.NET Framework 4.6](https://docs.microsoft.com/zh-cn/dotnet/framework/install/guide-for-developers) or higher -- Project V core [https://github.com/v2ray/v2ray-core/releases](https://github.com/v2ray/v2ray-core/releases) +- Project V core [https://github.com/v2fly/v2ray-core/releases](https://github.com/v2fly/v2ray-core/releases) From a799420d0f86e2cce753e23214131259f0894314 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Thu, 4 Jun 2020 08:31:18 +0800 Subject: [PATCH 2/5] v2fly --- v2rayN/v2rayN/Global.cs | 2 +- v2rayN/v2rayN/Handler/DownloadHandle.cs | 6 +++--- v2rayN/v2rayN/Handler/V2rayHandler.cs | 2 +- v2rayN/v2rayN/Properties/AssemblyInfo.cs | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/v2rayN/v2rayN/Global.cs b/v2rayN/v2rayN/Global.cs index 58ed9d5a..01181dfb 100644 --- a/v2rayN/v2rayN/Global.cs +++ b/v2rayN/v2rayN/Global.cs @@ -6,7 +6,7 @@ namespace v2rayN #region 常量 - public const string v2rayWebsiteUrl = @"https://www.v2ray.com/"; + public const string v2rayWebsiteUrl = @"https://www.v2fly.org/"; public const string AboutUrl = @"https://github.com/2dust/v2rayN"; public const string UpdateUrl = AboutUrl + @"/releases"; diff --git a/v2rayN/v2rayN/Handler/DownloadHandle.cs b/v2rayN/v2rayN/Handler/DownloadHandle.cs index bd3f4e62..67a936f2 100644 --- a/v2rayN/v2rayN/Handler/DownloadHandle.cs +++ b/v2rayN/v2rayN/Handler/DownloadHandle.cs @@ -54,8 +54,8 @@ namespace v2rayN.Handler private readonly string nLatestUrl = "https://github.com/2dust/v2rayN/releases/latest"; private const string nUrl = "https://github.com/2dust/v2rayN/releases/download/{0}/v2rayN.zip"; - private readonly string coreLatestUrl = "https://github.com/v2ray/v2ray-core/releases/latest"; - private const string coreUrl = "https://github.com/v2ray/v2ray-core/releases/download/{0}/v2ray-windows-{1}.zip"; + private readonly string coreLatestUrl = "https://github.com/v2fly/v2ray-core/releases/latest"; + private const string coreUrl = "https://github.com/v2fly/v2ray-core/releases/download/{0}/v2ray-windows-{1}.zip"; public async void CheckUpdateAsync(string type) { @@ -101,7 +101,7 @@ namespace v2rayN.Handler string filePath = Utils.GetPath("V2ray.exe"); if (!File.Exists(filePath)) { - string msg = string.Format(UIRes.I18N("NotFoundCore"), @"https://github.com/v2ray/v2ray-core/releases"); + string msg = string.Format(UIRes.I18N("NotFoundCore"), @"https://github.com/v2fly/v2ray-core/releases"); //ShowMsg(true, msg); return ""; } diff --git a/v2rayN/v2rayN/Handler/V2rayHandler.cs b/v2rayN/v2rayN/Handler/V2rayHandler.cs index e367bef2..cc6c404e 100644 --- a/v2rayN/v2rayN/Handler/V2rayHandler.cs +++ b/v2rayN/v2rayN/Handler/V2rayHandler.cs @@ -174,7 +174,7 @@ namespace v2rayN.Handler } if (Utils.IsNullOrEmpty(fileName)) { - string msg = string.Format(UIRes.I18N("NotFoundCore"), @"https://github.com/v2ray/v2ray-core/releases"); + string msg = string.Format(UIRes.I18N("NotFoundCore"), @"https://github.com/v2fly/v2ray-core/releases"); ShowMsg(false, msg); } return fileName; diff --git a/v2rayN/v2rayN/Properties/AssemblyInfo.cs b/v2rayN/v2rayN/Properties/AssemblyInfo.cs index 505b9e16..97197c1b 100644 --- a/v2rayN/v2rayN/Properties/AssemblyInfo.cs +++ b/v2rayN/v2rayN/Properties/AssemblyInfo.cs @@ -32,4 +32,4 @@ using System.Runtime.InteropServices; // 方法是按如下所示使用“*”: //[assembly: AssemblyVersion("1.0.*")] //[assembly: AssemblyVersion("1.0.0")] -[assembly: AssemblyFileVersion("3.17")] +[assembly: AssemblyFileVersion("3.19")] From 2615b72cee86f4603bbd102798f070bdab1f01df Mon Sep 17 00:00:00 2001 From: Mozi <29089388+pzhlkj6612@users.noreply.github.com> Date: Sat, 6 Jun 2020 12:09:04 +0800 Subject: [PATCH 3/5] Run `v2rayUpgrade.exe` in the same folder as `v2rayN.exe` --- v2rayN/v2rayN/Forms/MainForm.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index bf61cc5b..3ca10813 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -1298,7 +1298,16 @@ namespace v2rayN.Forms try { string fileName = Utils.GetPath(downloadHandle.DownloadFileName); - Process process = Process.Start("v2rayUpgrade.exe", "\"" + fileName + "\""); + Process process = new Process + { + StartInfo = new ProcessStartInfo + { + FileName = "v2rayUpgrade.exe", + Arguments = "\"" + fileName + "\"", + WorkingDirectory = Utils.StartupPath() + } + }; + process.Start(); if (process.Id > 0) { menuExit_Click(null, null); From 4f39f7a93256c58f8bf9e7d24f9d302042164049 Mon Sep 17 00:00:00 2001 From: Mozi <29089388+pzhlkj6612@users.noreply.github.com> Date: Mon, 8 Jun 2020 15:33:22 +0800 Subject: [PATCH 4/5] Properly parse shadowsocks URL 1. Parse the URL containing "colon" or "at sign" in the password. 2. Check the empty fields in the URL. --- v2rayN/v2rayN/Handler/V2rayConfigHandler.cs | 42 ++++++++++++++++----- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs index 9ea93933..b3f25e06 100644 --- a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs @@ -1266,22 +1266,44 @@ namespace v2rayN.Handler result = Utils.Base64Decode(result); } - string[] arr1 = result.Split('@'); - if (arr1.Length != 2) + //密码中可能包含“@”,所以从后往前搜索 + int indexAddressAndPort = result.LastIndexOf("@"); + if (indexAddressAndPort < 0) { return null; } - string[] arr21 = arr1[0].Split(':'); - //string[] arr22 = arr1[1].Split(':'); - int indexPort = arr1[1].LastIndexOf(":"); - if (arr21.Length != 2 || indexPort < 0) + string addressAndPort = result.Substring(indexAddressAndPort + 1); + string securityAndId = result.Substring(0, indexAddressAndPort); + + //IPv6地址中包含“:”,所以从后往前搜索 + int indexPort = addressAndPort.LastIndexOf(":"); + if (indexPort < 0) { return null; } - vmessItem.address = arr1[1].Substring(0, indexPort); - vmessItem.port = Utils.ToInt(arr1[1].Substring(indexPort + 1, arr1[1].Length - (indexPort + 1))); - vmessItem.security = arr21[0]; - vmessItem.id = arr21[1]; + + //加密方式中不包含“:”,所以从前往后搜索 + int indexId = securityAndId.IndexOf(":"); + if (indexId < 0) + { + return null; + } + + string address = addressAndPort.Substring(0, indexPort); + string port = addressAndPort.Substring(indexPort + 1); + string security = securityAndId.Substring(0, indexId); + string id = securityAndId.Substring(indexId + 1); + + //所有字段均不能为空 + if (address.Length == 0 || port.Length == 0 || security.Length == 0 || id.Length == 0) + { + return null; + } + + vmessItem.address = address; + vmessItem.port = Utils.ToInt(port); + vmessItem.security = security; + vmessItem.id = id; } else if (result.StartsWith(Global.socksProtocol)) { From 088d2e68340b2859eba1d807f90fe968e3eb7d24 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Tue, 30 Jun 2020 16:41:31 +0800 Subject: [PATCH 5/5] Update SpeedtestHandler.cs --- v2rayN/v2rayN/Handler/SpeedtestHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs index d8556722..91523091 100644 --- a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs +++ b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs @@ -190,7 +190,7 @@ namespace v2rayN.Handler _updateFunc(testCounter, args.GetException().Message); }; - var timeout = 12; + var timeout = 10; foreach (int itemIndex in _selecteds) { if (itemIndex >= _config.vmess.Count)