Compare commits

...

125 Commits

Author SHA1 Message Date
dependabot[bot]
876b63c6af Bump andstor/file-existence-action from 2 to 3
Bumps [andstor/file-existence-action](https://github.com/andstor/file-existence-action) from 2 to 3.
- [Release notes](https://github.com/andstor/file-existence-action/releases)
- [Commits](https://github.com/andstor/file-existence-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: andstor/file-existence-action
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-12 16:02:32 +00:00
dependabot[bot]
9d99eb1c5a Bump microsoft/setup-msbuild from 1.1.3 to 1.3.1 (#1005)
Bumps [microsoft/setup-msbuild](https://github.com/microsoft/setup-msbuild) from 1.1.3 to 1.3.1.
- [Release notes](https://github.com/microsoft/setup-msbuild/releases)
- [Changelog](https://github.com/microsoft/setup-msbuild/blob/main/building-release.md)
- [Commits](https://github.com/microsoft/setup-msbuild/compare/v1.1.3...v1.3.1)

---
updated-dependencies:
- dependency-name: microsoft/setup-msbuild
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-10 11:23:44 +08:00
dependabot[bot]
487798f6a1 Bump Microsoft.VisualStudio.Threading from 17.4.33 to 17.5.22 (#1004)
Bumps [Microsoft.VisualStudio.Threading](https://github.com/microsoft/vs-threading) from 17.4.33 to 17.5.22.
- [Release notes](https://github.com/microsoft/vs-threading/releases)
- [Commits](https://github.com/microsoft/vs-threading/commits)

---
updated-dependencies:
- dependency-name: Microsoft.VisualStudio.Threading
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-10 11:23:35 +08:00
dependabot[bot]
30084fbd1e Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.0.6 to 3.0.7 (#998)
Bumps [Microsoft.Diagnostics.Tracing.TraceEvent](https://github.com/Microsoft/perfview) from 3.0.6 to 3.0.7.
- [Release notes](https://github.com/Microsoft/perfview/releases)
- [Commits](https://github.com/Microsoft/perfview/compare/v3.0.6...v3.0.7)

---
updated-dependencies:
- dependency-name: Microsoft.Diagnostics.Tracing.TraceEvent
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-27 22:28:08 +08:00
AmazingDM
abc7821fa5 Merge pull request #991 from netchx/dependabot/nuget/Microsoft.VisualStudio.Threading-17.4.33
Bump Microsoft.VisualStudio.Threading from 17.4.27 to 17.4.33
2023-01-05 00:21:37 +08:00
AmazingDM
45d3e2ac53 Merge pull request #990 from netchx/dependabot/nuget/ConfigureAwait.Fody-3.3.2
Bump ConfigureAwait.Fody from 3.3.1 to 3.3.2
2023-01-05 00:21:28 +08:00
dependabot[bot]
c5c95e2ab9 Bump Microsoft.VisualStudio.Threading from 17.4.27 to 17.4.33
Bumps [Microsoft.VisualStudio.Threading](https://github.com/microsoft/vs-threading) from 17.4.27 to 17.4.33.
- [Release notes](https://github.com/microsoft/vs-threading/releases)
- [Commits](https://github.com/microsoft/vs-threading/compare/v17.4.27...v17.4.33)

---
updated-dependencies:
- dependency-name: Microsoft.VisualStudio.Threading
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-04 16:14:05 +00:00
dependabot[bot]
03ea032e5b Bump ConfigureAwait.Fody from 3.3.1 to 3.3.2
Bumps [ConfigureAwait.Fody](https://github.com/Fody/ConfigureAwait) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/Fody/ConfigureAwait/releases)
- [Commits](https://github.com/Fody/ConfigureAwait/commits)

---
updated-dependencies:
- dependency-name: ConfigureAwait.Fody
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-04 16:13:58 +00:00
dependabot[bot]
d784586628 Bump Microsoft.NET.Test.Sdk from 17.4.0 to 17.4.1 (#987)
Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.4.0 to 17.4.1.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md)
- [Commits](https://github.com/microsoft/vstest/compare/v17.4.0...v17.4.1)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-03 03:28:57 +08:00
Netch
7042fcbadb Update build.ps1 2023-01-02 09:34:20 +08:00
dependabot[bot]
43705b324e Bump MSTest.TestFramework from 2.2.10 to 3.0.2 (#982)
Bumps [MSTest.TestFramework](https://github.com/microsoft/testfx) from 2.2.10 to 3.0.2.
- [Release notes](https://github.com/microsoft/testfx/releases)
- [Changelog](https://github.com/microsoft/testfx/blob/main/docs/releases.md)
- [Commits](https://github.com/microsoft/testfx/compare/v2.2.10...v3.0.2)

---
updated-dependencies:
- dependency-name: MSTest.TestFramework
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 09:29:44 +08:00
Netch
1ab65c9851 Update stale.yml 2023-01-02 09:24:23 +08:00
Netch
206cb18ef5 Update release.yml 2023-01-02 09:22:20 +08:00
Netch
ffa329dd39 Update build.yml 2023-01-02 09:22:07 +08:00
dependabot[bot]
ab1b522e66 Bump Fody from 6.6.3 to 6.6.4 (#984)
Bumps [Fody](https://github.com/Fody/Fody) from 6.6.3 to 6.6.4.
- [Release notes](https://github.com/Fody/Fody/releases)
- [Commits](https://github.com/Fody/Fody/compare/6.6.3...6.6.4)

---
updated-dependencies:
- dependency-name: Fody
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 09:10:16 +08:00
dependabot[bot]
c328f75399 Bump System.Management from 6.0.0 to 7.0.0 (#983)
Bumps [System.Management](https://github.com/dotnet/runtime) from 6.0.0 to 7.0.0.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v6.0.0...v7.0.0)

---
updated-dependencies:
- dependency-name: System.Management
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 09:10:07 +08:00
dependabot[bot]
ca34cfdbb2 Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.0.4 to 3.0.6 (#981)
Bumps [Microsoft.Diagnostics.Tracing.TraceEvent](https://github.com/Microsoft/perfview) from 3.0.4 to 3.0.6.
- [Release notes](https://github.com/Microsoft/perfview/releases)
- [Commits](https://github.com/Microsoft/perfview/compare/v3.0.4...v3.0.6)

---
updated-dependencies:
- dependency-name: Microsoft.Diagnostics.Tracing.TraceEvent
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 09:09:47 +08:00
dependabot[bot]
563565b3b4 Bump andstor/file-existence-action from 1 to 2 (#980)
Bumps [andstor/file-existence-action](https://github.com/andstor/file-existence-action) from 1 to 2.
- [Release notes](https://github.com/andstor/file-existence-action/releases)
- [Commits](https://github.com/andstor/file-existence-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: andstor/file-existence-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 09:09:40 +08:00
dependabot[bot]
752ba1b967 Bump microsoft/setup-msbuild from 1.0.3 to 1.1.3 (#979)
Bumps [microsoft/setup-msbuild](https://github.com/microsoft/setup-msbuild) from 1.0.3 to 1.1.3.
- [Release notes](https://github.com/microsoft/setup-msbuild/releases)
- [Changelog](https://github.com/microsoft/setup-msbuild/blob/main/building-release.md)
- [Commits](https://github.com/microsoft/setup-msbuild/compare/v1.0.3...v1.1.3)

---
updated-dependencies:
- dependency-name: microsoft/setup-msbuild
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 09:09:33 +08:00
dependabot[bot]
996ac3a03f Bump MSTest.TestAdapter from 2.2.10 to 3.0.2 (#978)
Bumps [MSTest.TestAdapter](https://github.com/microsoft/testfx) from 2.2.10 to 3.0.2.
- [Release notes](https://github.com/microsoft/testfx/releases)
- [Changelog](https://github.com/microsoft/testfx/blob/main/docs/releases.md)
- [Commits](https://github.com/microsoft/testfx/compare/v2.2.10...v3.0.2)

---
updated-dependencies:
- dependency-name: MSTest.TestAdapter
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 09:09:24 +08:00
dependabot[bot]
36aa2c2b35 Bump actions/stale from 5 to 7 (#977)
Bumps [actions/stale](https://github.com/actions/stale) from 5 to 7.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v5...v7)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 09:09:13 +08:00
Netch
f4e1334118 Update Netch.csproj 2023-01-02 09:09:02 +08:00
dependabot[bot]
24123174df Bump System.ServiceProcess.ServiceController from 6.0.0 to 7.0.0 (#966)
Bumps [System.ServiceProcess.ServiceController](https://github.com/dotnet/runtime) from 6.0.0 to 7.0.0.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v6.0.0...v7.0.0)

---
updated-dependencies:
- dependency-name: System.ServiceProcess.ServiceController
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Netch <85944622+netch-org@users.noreply.github.com>
2023-01-02 09:08:09 +08:00
Persian Prince
22cbcd48ea Create fa (#972)
Adding a Persian version.
2023-01-02 09:04:04 +08:00
dependabot[bot]
c8f0865808 Bump System.Text.Encoding.CodePages from 6.0.0 to 7.0.0 (#960)
Bumps [System.Text.Encoding.CodePages](https://github.com/dotnet/runtime) from 6.0.0 to 7.0.0.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v6.0.0...v7.0.0)

---
updated-dependencies:
- dependency-name: System.Text.Encoding.CodePages
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 09:03:29 +08:00
dependabot[bot]
db822ea6a0 Bump Microsoft.VisualStudio.Threading from 17.3.44 to 17.4.27 (#958)
Bumps [Microsoft.VisualStudio.Threading](https://github.com/microsoft/vs-threading) from 17.3.44 to 17.4.27.
- [Release notes](https://github.com/microsoft/vs-threading/releases)
- [Commits](https://github.com/microsoft/vs-threading/commits)

---
updated-dependencies:
- dependency-name: Microsoft.VisualStudio.Threading
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 09:03:19 +08:00
dependabot[bot]
516c170a5d Bump Microsoft.NET.Test.Sdk from 17.3.1 to 17.4.0 (#957)
Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.3.1 to 17.4.0.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Commits](https://github.com/microsoft/vstest/compare/v17.3.1...v17.4.0)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 09:03:11 +08:00
dependabot[bot]
7c8290e665 Bump coverlet.collector from 3.1.2 to 3.2.0 (#952)
Bumps [coverlet.collector](https://github.com/coverlet-coverage/coverlet) from 3.1.2 to 3.2.0.
- [Release notes](https://github.com/coverlet-coverage/coverlet/releases)
- [Commits](https://github.com/coverlet-coverage/coverlet/commits/v3.2.0)

---
updated-dependencies:
- dependency-name: coverlet.collector
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 09:02:49 +08:00
Netch
1775221407 Update README.md 2022-09-24 13:16:05 +08:00
Netch
3edcd48d3c Update release.yml 2022-09-15 03:12:24 +08:00
Netch
7d9dec3b76 Update build.yml 2022-09-15 03:12:13 +08:00
dependabot[bot]
9d4e6dde50 Bump Serilog from 2.11.0 to 2.12.0 (#928)
Bumps [Serilog](https://github.com/serilog/serilog) from 2.11.0 to 2.12.0.
- [Release notes](https://github.com/serilog/serilog/releases)
- [Changelog](https://github.com/serilog/serilog/blob/dev/CHANGES.md)
- [Commits](https://github.com/serilog/serilog/compare/v2.11.0...v2.12.0)

---
updated-dependencies:
- dependency-name: Serilog
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-15 03:11:38 +08:00
AmazingDM
e0ca23fd20 Merge pull request #922 from netchx/dependabot/nuget/Serilog.Sinks.Console-4.1.0
Bump Serilog.Sinks.Console from 4.0.1 to 4.1.0
2022-09-08 02:15:43 +08:00
dependabot[bot]
a6831aa8b1 Bump Serilog.Sinks.Console from 4.0.1 to 4.1.0
Bumps [Serilog.Sinks.Console](https://github.com/serilog/serilog-sinks-console) from 4.0.1 to 4.1.0.
- [Release notes](https://github.com/serilog/serilog-sinks-console/releases)
- [Commits](https://github.com/serilog/serilog-sinks-console/compare/v4.0.1...v4.1.0)

---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-06 16:42:12 +00:00
AmazingDM
44c6900b42 Merge pull request #920 from netchx/dependabot/nuget/Microsoft.NET.Test.Sdk-17.3.1
Bump Microsoft.NET.Test.Sdk from 17.3.0 to 17.3.1
2022-09-04 11:31:00 +08:00
dependabot[bot]
6af239fcf9 Bump Microsoft.NET.Test.Sdk from 17.3.0 to 17.3.1
Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.3.0 to 17.3.1.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Commits](https://github.com/microsoft/vstest/compare/v17.3.0...v17.3.1)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-30 16:52:22 +00:00
AmazingDM
a8154611aa Merge pull request #917 from netchx/dependabot/nuget/Microsoft.Diagnostics.Tracing.TraceEvent-3.0.4
Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.0.3 to 3.0.4
2022-08-29 12:30:08 +08:00
AmazingDM
a659ac3df1 Merge pull request #910 from chsbuffer/patch-1
Fix typos
2022-08-29 12:29:58 +08:00
dependabot[bot]
1ea3b3ccb5 Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.0.3 to 3.0.4
Bumps [Microsoft.Diagnostics.Tracing.TraceEvent](https://github.com/Microsoft/perfview) from 3.0.3 to 3.0.4.
- [Release notes](https://github.com/Microsoft/perfview/releases)
- [Commits](https://github.com/Microsoft/perfview/compare/v3.0.3...v3.0.4)

---
updated-dependencies:
- dependency-name: Microsoft.Diagnostics.Tracing.TraceEvent
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-28 16:29:23 +00:00
ChsBuffer
6622914248 Fix typos 2022-08-20 17:17:01 +08:00
dependabot[bot]
04152d92ab Bump Microsoft.VisualStudio.Threading from 17.2.32 to 17.3.44 (#902)
Bumps [Microsoft.VisualStudio.Threading](https://github.com/microsoft/vs-threading) from 17.2.32 to 17.3.44.
- [Release notes](https://github.com/microsoft/vs-threading/releases)
- [Commits](https://github.com/microsoft/vs-threading/commits)

---
updated-dependencies:
- dependency-name: Microsoft.VisualStudio.Threading
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-17 02:13:07 +08:00
dependabot[bot]
4172bb0c7b Bump Microsoft.NET.Test.Sdk from 17.2.0 to 17.3.0 (#903)
Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.2.0 to 17.3.0.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Commits](https://github.com/microsoft/vstest/compare/v17.2.0...v17.3.0)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-17 02:12:39 +08:00
dependabot[bot]
c7d9f87920 Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.0.2 to 3.0.3 (#899)
Bumps [Microsoft.Diagnostics.Tracing.TraceEvent](https://github.com/Microsoft/perfview) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/Microsoft/perfview/releases)
- [Commits](https://github.com/Microsoft/perfview/compare/v3.0.2...v3.0.3)

---
updated-dependencies:
- dependency-name: Microsoft.Diagnostics.Tracing.TraceEvent
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-17 02:12:22 +08:00
dependabot[bot]
ced1590435 Bump Serilog.Extensions.Hosting from 5.0.0 to 5.0.1 (#886)
Bumps [Serilog.Extensions.Hosting](https://github.com/serilog/serilog-extensions-hosting) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/serilog/serilog-extensions-hosting/releases)
- [Commits](https://github.com/serilog/serilog-extensions-hosting/compare/v5.0.0...v5.0.1)

---
updated-dependencies:
- dependency-name: Serilog.Extensions.Hosting
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-17 02:12:12 +08:00
begench1968
3f25366982 Revert "Create PUBG(with Steam).txt (#874)" (#888)
This reverts commit 5580969d16.
2022-08-17 02:12:03 +08:00
dependabot[bot]
ae3aee7478 Bump Serilog.Extensions.Hosting from 4.2.0 to 5.0.0 (#876)
Bumps [Serilog.Extensions.Hosting](https://github.com/serilog/serilog-extensions-hosting) from 4.2.0 to 5.0.0.
- [Release notes](https://github.com/serilog/serilog-extensions-hosting/releases)
- [Commits](https://github.com/serilog/serilog-extensions-hosting/commits)

---
updated-dependencies:
- dependency-name: Serilog.Extensions.Hosting
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-12 01:47:32 +08:00
Hellojack
77e1d5a80c [Netch] Add SSH protocol support (#875)
* [Netch] Optimize code

* [Netch] Add SSH protocol support
2022-07-12 01:47:23 +08:00
ljxi
5580969d16 Create PUBG(with Steam).txt (#874)
Add process mode for PUBG
2022-07-12 01:47:10 +08:00
Disappear9
23a3549f87 Update VRChat.txt (#872) 2022-07-12 01:46:42 +08:00
AmazingDM
4b3d4d6d96 Merge pull request #869 from H1JK/patch-update
V2Ray : Update SN core to 5.0.16
2022-07-04 08:08:40 +08:00
AmazingDM
2f7bdc8e0b Merge pull request #870 from netchx/dependabot/nuget/Microsoft.Diagnostics.Tracing.TraceEvent-3.0.2
Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.0.1 to 3.0.2
2022-07-04 08:08:29 +08:00
dependabot[bot]
484527fdf6 Bump Microsoft.Diagnostics.Tracing.TraceEvent from 3.0.1 to 3.0.2
Bumps [Microsoft.Diagnostics.Tracing.TraceEvent](https://github.com/Microsoft/perfview) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/Microsoft/perfview/releases)
- [Commits](https://github.com/Microsoft/perfview/compare/v3.0.1...v3.0.2)

---
updated-dependencies:
- dependency-name: Microsoft.Diagnostics.Tracing.TraceEvent
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-03 16:34:56 +00:00
Hellojack
01f60926ce V2Ray : Update SN core to 5.0.16 2022-07-03 16:52:48 +08:00
Netch
99480e99c3 Update UpdateChecker.cs 2022-06-24 15:03:58 +08:00
Netch
c696277b6b Update stale.yml 2022-06-23 13:29:25 +08:00
Netch
a7dd83448b Create stale.yml 2022-06-23 13:25:56 +08:00
离披
0aa4a981fc fix a bug that when using socks5 with authentication, username and password can't sent to server correctly (#856) 2022-06-23 13:09:51 +08:00
AmazingDM
2b7483b696 Merge pull request #850 from netchx/dependabot/nuget/Fody-6.6.3
Bump Fody from 6.6.2 to 6.6.3
2022-06-16 17:34:57 +08:00
AmazingDM
585a84321f Merge pull request #851 from H1JK/dev-tcpfastopen
Support TCP Fast Open (All Protocols)
2022-06-16 17:34:49 +08:00
Hellojack
dc7c48b1bb f 2022-06-16 17:05:54 +08:00
Hellojack
95aa3db415 [Netch] Support TCP Fast Open 2022-06-16 17:01:40 +08:00
dependabot[bot]
276e516396 Bump Fody from 6.6.2 to 6.6.3
Bumps [Fody](https://github.com/Fody/Fody) from 6.6.2 to 6.6.3.
- [Release notes](https://github.com/Fody/Fody/releases)
- [Commits](https://github.com/Fody/Fody/compare/6.6.2...6.6.3)

---
updated-dependencies:
- dependency-name: Fody
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-14 16:46:37 +00:00
Netch
3fa3c1cfcb Update build.ps1 2022-06-11 05:06:22 +08:00
AmazingDM
2d848f6708 Merge pull request #840 from H1JK/patch-flow-2
Netch : Remove Flow parameter from VLESS instance
2022-06-10 15:45:36 +08:00
Hellojack
504709b7da Netch : Remove Flow parameter from VLESS instance 2022-06-10 15:35:46 +08:00
AmazingDM
e37d1f21ba Merge pull request #838 from H1JK/uuid-generator
Support Xray UUIDv5 mapping standard
2022-06-10 15:21:33 +08:00
AmazingDM
e2a20d5bb0 Merge pull request #834 from H1JK/patch-update
SOCKS : Support version 4 & 4a
2022-06-10 15:21:25 +08:00
Hellojack
01cd51744f fix 2022-06-10 14:30:53 +08:00
Hellojack
d3582340b0 V2Ray : Support Xray UUIDv5 mapping standard 2022-06-10 14:21:53 +08:00
AmazingDM
98ece46832 Update Global.cs
Generate VLESS UUIDv5
https://github.com/XTLS/Xray-core/discussions/715
2022-06-10 13:48:35 +08:00
Hellojack
bedafc23d4 SOCKS : Support version 4 & 4a 2022-06-10 11:00:57 +08:00
NarukawaHime
406135b04b Fix DNS issue in TUN mode (#824) 2022-06-09 21:42:27 +08:00
AmazingDM
c55a5f6418 Merge pull request #823 from H1JK/patch-update
Replace Xray-core with SagerNet/v2ray-core, with more protocol support
2022-06-09 20:59:28 +08:00
AmazingDM
56a1d0d4ce Merge pull request #829 from netchx/dependabot/nuget/Serilog-2.11.0
Bump Serilog from 2.10.0 to 2.11.0
2022-06-09 20:52:37 +08:00
AmazingDM
a0157b0492 Merge pull request #830 from netchx/dependabot/nuget/Microsoft.VisualStudio.Threading-17.2.32
Bump Microsoft.VisualStudio.Threading from 17.1.46 to 17.2.32
2022-06-09 20:52:18 +08:00
AmazingDM
87fa016543 Merge pull request #831 from netchx/dependabot/nuget/Microsoft.NET.Test.Sdk-17.2.0
Bump Microsoft.NET.Test.Sdk from 17.1.0 to 17.2.0
2022-06-09 20:52:10 +08:00
Hellojack
860b70bfa6 Fix typo 2022-06-09 11:44:28 +08:00
Hellojack
32cfe02715 [Netch] Support WireGuard protocol 2022-06-09 11:40:10 +08:00
dependabot[bot]
8e0722b897 Bump Microsoft.NET.Test.Sdk from 17.1.0 to 17.2.0
Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.1.0 to 17.2.0.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Commits](https://github.com/microsoft/vstest/compare/v17.1.0...v17.2.0)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-08 16:49:36 +00:00
dependabot[bot]
a5e750d614 Bump Microsoft.VisualStudio.Threading from 17.1.46 to 17.2.32
Bumps [Microsoft.VisualStudio.Threading](https://github.com/microsoft/vs-threading) from 17.1.46 to 17.2.32.
- [Release notes](https://github.com/microsoft/vs-threading/releases)
- [Commits](https://github.com/microsoft/vs-threading/compare/v17.1.46...v17.2.32)

---
updated-dependencies:
- dependency-name: Microsoft.VisualStudio.Threading
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-08 16:49:29 +00:00
dependabot[bot]
5758007506 Bump Serilog from 2.10.0 to 2.11.0
Bumps [Serilog](https://github.com/serilog/serilog) from 2.10.0 to 2.11.0.
- [Release notes](https://github.com/serilog/serilog/releases)
- [Changelog](https://github.com/serilog/serilog/blob/dev/CHANGES.md)
- [Commits](https://github.com/serilog/serilog/compare/v2.10.0...v2.11.0)

---
updated-dependencies:
- dependency-name: Serilog
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-08 16:49:24 +00:00
Hellojack
46a5f2e190 VMess : Automatically choose zero for secure TLS connection 2022-06-08 18:01:49 +08:00
Hellojack
a1c0a7fcbd Merge branch 'netchx:main' into patch-update 2022-06-08 16:59:16 +08:00
Hellojack
c1f3bd37ac Hello netch 2022-06-08 16:58:59 +08:00
dependabot[bot]
0f59b5bfe2 Bump MSTest.TestAdapter from 2.2.8 to 2.2.10 (#822)
Bumps [MSTest.TestAdapter](https://github.com/microsoft/testfx) from 2.2.8 to 2.2.10.
- [Release notes](https://github.com/microsoft/testfx/releases)
- [Commits](https://github.com/microsoft/testfx/compare/v2.2.8...v2.2.10)

---
updated-dependencies:
- dependency-name: MSTest.TestAdapter
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 16:06:17 +08:00
dependabot[bot]
83a3381e72 Bump Fody from 6.6.0 to 6.6.2 (#821)
Bumps [Fody](https://github.com/Fody/Fody) from 6.6.0 to 6.6.2.
- [Release notes](https://github.com/Fody/Fody/releases)
- [Commits](https://github.com/Fody/Fody/commits/6.6.2)

---
updated-dependencies:
- dependency-name: Fody
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 16:06:01 +08:00
dependabot[bot]
c959f60f4a Bump MSTest.TestFramework from 2.2.8 to 2.2.10 (#820)
Bumps [MSTest.TestFramework](https://github.com/microsoft/testfx) from 2.2.8 to 2.2.10.
- [Release notes](https://github.com/microsoft/testfx/releases)
- [Commits](https://github.com/microsoft/testfx/compare/v2.2.8...v2.2.10)

---
updated-dependencies:
- dependency-name: MSTest.TestFramework
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 16:05:52 +08:00
dependabot[bot]
2e721d8501 Bump Microsoft.Diagnostics.Tracing.TraceEvent from 2.0.76 to 3.0.1 (#819)
Bumps [Microsoft.Diagnostics.Tracing.TraceEvent](https://github.com/Microsoft/perfview) from 2.0.76 to 3.0.1.
- [Release notes](https://github.com/Microsoft/perfview/releases)
- [Commits](https://github.com/Microsoft/perfview/compare/P2.0.76...v3.0.1)

---
updated-dependencies:
- dependency-name: Microsoft.Diagnostics.Tracing.TraceEvent
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 16:05:44 +08:00
dependabot[bot]
7084d47198 Bump actions/setup-go from 2 to 3 (#818)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2 to 3.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 16:05:35 +08:00
dependabot[bot]
ba43ddb7be Bump Stun.Net from 6.0.0 to 6.2.0 (#817)
Bumps [Stun.Net](https://github.com/HMBSbige/NatTypeTester) from 6.0.0 to 6.2.0.
- [Release notes](https://github.com/HMBSbige/NatTypeTester/releases)
- [Commits](https://github.com/HMBSbige/NatTypeTester/compare/6.0.0...6.2.0)

---
updated-dependencies:
- dependency-name: Stun.Net
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 16:05:28 +08:00
dependabot[bot]
1f28e38a5a Bump actions/upload-artifact from 2 to 3 (#816)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 16:05:11 +08:00
Hellojack
dcae72f4d3 Bump version to 1.9.6-Beta1 2022-06-08 15:44:43 +08:00
Hellojack
277ebaba1b Update SN core to 5.0.14 2022-06-08 15:28:10 +08:00
Hellojack
026456e4a1 Create README for V2Ray SagerNet 2022-06-07 10:15:07 +00:00
Hellojack
3d764a8bce Fix Simple-Obfs 2022-06-07 12:53:27 +08:00
Hellojack
9983ee95d6 fix 2022-06-07 09:29:43 +08:00
Hellojack
661e53d553 Clean build scripts 2022-06-07 09:15:10 +08:00
Hellojack
2a1b2bbffc Trojan : Enable TLS as default 2022-06-07 09:05:57 +08:00
Hellojack
47e98dc359 FIx Trojan 2022-06-07 08:12:52 +08:00
Hellojack
d3b3759f48 wtf? 2022-06-06 22:30:58 +08:00
Hellojack
bfc5d9dafb clean 2022-06-06 22:24:10 +08:00
H1JK
979b88de7c V2RAY FOR ALL 2022-06-06 10:18:31 +00:00
H1JK
2af1a4bee0 Fix a stupid bug XD 2022-06-06 04:08:29 +00:00
H1JK
3260e7ce74 wtf 2022-06-03 09:42:16 +00:00
H1JK
db28da454b Update Jsonv5 configuration 2022-06-03 06:57:00 +00:00
H1JK
b1d4911576 Fix V2RayController 2022-06-03 05:23:26 +00:00
H1JK
dcf83c0113 fix build 2022-06-03 03:36:29 +00:00
H1JK
c2393efd10 Replace Xray with SagerNet/v2ray-core 2022-06-03 02:28:25 +00:00
H1JK
1fe1fda285 Add PacketEncoding parameter 2022-06-03 00:42:46 +00:00
H1JK
8f44125856 Temporarily disable SelfContain 2022-06-03 00:22:05 +00:00
layou233
876b18f85e [GitHub CI] Bump Go version to 1.18.3 2022-06-02 10:29:02 +00:00
layou233
740f707a30 Always use direct 2022-06-02 10:16:06 +00:00
Hellojack
190f24e7d7 Use xtls-rprx-direct as default 2022-06-02 15:59:23 +08:00
Hellojack
a302c97831 Update Xray-plugin v1.5.6 2022-05-31 10:19:30 +08:00
Hellojack
bf259316bd clean 2022-05-29 13:31:15 +08:00
Hellojack
03c9534a02 Fix Invoke-WebRequest alias 2022-05-29 13:22:59 +08:00
Hellojack
7513b734fc Update Go version 2022-05-29 13:16:16 +08:00
Hellojack
3774452751 Delete old mmdb database 2022-05-29 13:12:14 +08:00
Hellojack
4b68b363f7 Use @Loyalsoldier/geoip 2022-05-29 13:09:05 +08:00
Hellojack
bfc806b71e Use @Loyalsoldier/geoip 2022-05-29 13:07:55 +08:00
Hellojack
baed3e07cd Update Xray-core and Xray-plugin 2022-05-27 18:28:43 +08:00
AmazingDM
2969b4420d Merge pull request #812 from NarukawaHime/main
Add VMess zero method
2022-03-29 18:45:32 +08:00
NarukawaHime
57b438af7c Add VMess zero method 2022-03-26 22:54:11 +08:00
AmazingDM
2f685a2c6f clean 2022-03-22 20:45:17 +08:00
AmazingDM
7f38a1ff05 delete sponsor 2022-03-22 20:44:45 +08:00
65 changed files with 1079 additions and 400 deletions

View File

@@ -47,15 +47,15 @@ jobs:
- name: Check Other
id: check_other
uses: andstor/file-existence-action@v1
uses: andstor/file-existence-action@v3
with:
files: .\other\release\aiodns.bin
- name: Setup Go
uses: actions/setup-go@v2
uses: actions/setup-go@v3
if: steps.check_other.outputs.files_exists == 'false'
with:
go-version: 1.17.3
go-version: stable
- name: Setup C++
uses: msys2/setup-msys2@v2
@@ -73,7 +73,7 @@ jobs:
profile: minimal
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v1.0.3
uses: microsoft/setup-msbuild@v1.3.1
with:
vs-prerelease: true
@@ -83,7 +83,7 @@ jobs:
.\build.ps1 -Configuration Release -OutputPath release
- name: Upload
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: release
path: release

View File

@@ -43,15 +43,15 @@ jobs:
- name: Check Other
id: check_other
uses: andstor/file-existence-action@v1
uses: andstor/file-existence-action@v3
with:
files: .\other\release\aiodns.bin
- name: Setup Go
uses: actions/setup-go@v2
uses: actions/setup-go@v3
if: steps.check_other.outputs.files_exists == 'false'
with:
go-version: 1.17.3
go-version: stable
- name: Setup C++
uses: msys2/setup-msys2@v2

20
.github/workflows/stale.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: Close stale issues and PRs
on:
schedule:
- cron: "0 0 * * *"
jobs:
close-issues:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v7
with:
days-before-issue-stale: 30
days-before-issue-close: 14
days-before-pr-stale: 30
days-before-pr-close: 14
stale-issue-message: "This issue is stale because it has been open for 30 days with no activity."
close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale."

View File

@@ -57,7 +57,7 @@ public static class MainController
// Start Server Controller to get a local socks5 server
Log.Debug("Server Information: {Data}", $"{server.Type} {server.MaskedData()}");
ServerController = ServerHelper.GetUtilByTypeName(server.Type).GetController();
ServerController = new V2rayController();
Global.MainForm.StatusText(i18N.TranslateFormat("Starting {0}", ServerController.Name));
TryReleaseTcpPort(ServerController.Socks5LocalPort(), "Socks5");

View File

@@ -37,7 +37,7 @@ public class NFController : IModeController
Dial(NameList.AIO_FILTERLOOPBACK, _mode.FilterLoopback);
Dial(NameList.AIO_FILTERINTRANET, _mode.FilterIntranet);
Dial(NameList.AIO_FILTERPARENT, _mode.FilterParent ?? _rdrConfig.HandleOnlyDNS);
Dial(NameList.AIO_FILTERPARENT, _mode.FilterParent ?? _rdrConfig.FilterParent);
Dial(NameList.AIO_FILTERICMP, _mode.FilterICMP ?? _rdrConfig.FilterICMP);
if (_mode.FilterICMP ?? _rdrConfig.FilterICMP)
Dial(NameList.AIO_ICMPING, (_mode.FilterICMP != null ? _mode.ICMPDelay ?? 10 : _rdrConfig.ICMPDelay).ToString());

View File

@@ -26,7 +26,7 @@ public class PcapController : Guard, IModeController
public override string Name => "pcap2socks";
public ModeFeature Features => 0;
public ModeFeature Features => ModeFeature.SupportSocks5Auth;
public async Task StartAsync(Socks5Server server, Mode mode)
{

View File

@@ -93,7 +93,7 @@ namespace Netch.Controllers
if (_tunConfig.UseCustomDNS)
{
Dial(NameList.TYPE_DNSADDR, _tunConfig.DNS);
Dial(NameList.TYPE_DNSADDR, DnsUtils.AppendPort(_tunConfig.DNS));
}
else
{
@@ -175,8 +175,13 @@ namespace Netch.Controllers
if (_tunConfig.UseCustomDNS)
{
// NOTICE: DNS metric is network interface metric
RouteUtils.CreateRoute(_tun.FillTemplate(_tunConfig.DNS, 32));
if (_tunConfig.ProxyDNS)
{
// NOTICE: DNS metric is network interface metric
RouteUtils.CreateRoute(_tun.FillTemplate(_tunConfig.DNS, 32));
}
tunNetworkInterface.SetDns(_tunConfig.DNS);
}
else
{

View File

@@ -15,7 +15,7 @@ public static class UpdateChecker
public const string Name = @"Netch";
public const string Copyright = @"Copyright © 2019 - 2022";
public const string AssemblyVersion = @"1.9.5";
public const string AssemblyVersion = @"1.9.7";
private const string Suffix = @"";
public static readonly string Version = $"{AssemblyVersion}{(string.IsNullOrEmpty(Suffix) ? "" : $"-{Suffix}")}";
@@ -103,4 +103,4 @@ public static class UpdateChecker
var ordered = releases.OrderByDescending(release => release.tag_name, new VersionUtil.VersionComparer());
return ordered.ElementAt(0);
}
}
}

View File

@@ -28,38 +28,11 @@
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutForm));
this.SponsorGroupBox = new System.Windows.Forms.GroupBox();
this.SponsorPictureBox = new System.Windows.Forms.PictureBox();
this.ChannelLabel = new System.Windows.Forms.LinkLabel();
this.NetchPictureBox = new System.Windows.Forms.PictureBox();
this.SponsorGroupBox.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.SponsorPictureBox)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NetchPictureBox)).BeginInit();
this.SuspendLayout();
//
// SponsorGroupBox
//
this.SponsorGroupBox.Controls.Add(this.SponsorPictureBox);
this.SponsorGroupBox.Location = new System.Drawing.Point(12, 235);
this.SponsorGroupBox.Name = "SponsorGroupBox";
this.SponsorGroupBox.Size = new System.Drawing.Size(314, 229);
this.SponsorGroupBox.TabIndex = 2;
this.SponsorGroupBox.TabStop = false;
this.SponsorGroupBox.Text = "Sponsor";
//
// SponsorPictureBox
//
this.SponsorPictureBox.Cursor = System.Windows.Forms.Cursors.Hand;
this.SponsorPictureBox.Image = global::Netch.Properties.Resources.Sponsor;
this.SponsorPictureBox.Location = new System.Drawing.Point(6, 22);
this.SponsorPictureBox.Name = "SponsorPictureBox";
this.SponsorPictureBox.Size = new System.Drawing.Size(300, 200);
this.SponsorPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.SponsorPictureBox.TabIndex = 1;
this.SponsorPictureBox.TabStop = false;
this.SponsorPictureBox.Click += new System.EventHandler(this.SponsorPictureBox_Click);
//
// ChannelLabel
//
this.ChannelLabel.AutoSize = true;
@@ -87,11 +60,10 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.ClientSize = new System.Drawing.Size(338, 474);
this.ClientSize = new System.Drawing.Size(338, 244);
this.Controls.Add(this.ChannelLabel);
this.Controls.Add(this.SponsorGroupBox);
this.Controls.Add(this.NetchPictureBox);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.MaximizeBox = false;
@@ -99,8 +71,6 @@
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "About";
this.Load += new System.EventHandler(this.AboutForm_Load);
this.SponsorGroupBox.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.SponsorPictureBox)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NetchPictureBox)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@@ -110,8 +80,6 @@
#endregion
private System.Windows.Forms.PictureBox NetchPictureBox;
private System.Windows.Forms.PictureBox SponsorPictureBox;
private System.Windows.Forms.GroupBox SponsorGroupBox;
private System.Windows.Forms.LinkLabel ChannelLabel;
}
}

View File

@@ -0,0 +1,60 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -80,6 +80,7 @@ namespace Netch.Forms
this.XrayConeCheckBox = new System.Windows.Forms.CheckBox();
this.TLSAllowInsecureCheckBox = new System.Windows.Forms.CheckBox();
this.UseMuxCheckBox = new System.Windows.Forms.CheckBox();
this.TCPFastOpenBox = new System.Windows.Forms.CheckBox();
this.KCPGroupBox = new System.Windows.Forms.GroupBox();
this.mtuLabel = new System.Windows.Forms.Label();
this.mtuTextBox = new System.Windows.Forms.TextBox();
@@ -590,6 +591,7 @@ namespace Netch.Forms
this.v2rayTabPage.Controls.Add(this.XrayConeCheckBox);
this.v2rayTabPage.Controls.Add(this.TLSAllowInsecureCheckBox);
this.v2rayTabPage.Controls.Add(this.UseMuxCheckBox);
this.v2rayTabPage.Controls.Add(this.TCPFastOpenBox);
this.v2rayTabPage.Controls.Add(this.KCPGroupBox);
this.v2rayTabPage.Location = new System.Drawing.Point(4, 29);
this.v2rayTabPage.Name = "v2rayTabPage";
@@ -628,6 +630,16 @@ namespace Netch.Forms
this.UseMuxCheckBox.Text = "Use Mux";
this.UseMuxCheckBox.UseVisualStyleBackColor = true;
//
// TCPFastOpenBox
//
this.TCPFastOpenBox.AutoSize = true;
this.TCPFastOpenBox.Location = new System.Drawing.Point(300, 42);
this.TCPFastOpenBox.Name = "TCPFastOpenBox";
this.TCPFastOpenBox.Size = new System.Drawing.Size(131, 21);
this.TCPFastOpenBox.TabIndex = 3;
this.TCPFastOpenBox.Text = "TCP FastOpen";
this.TCPFastOpenBox.UseVisualStyleBackColor = true;
//
// KCPGroupBox
//
this.KCPGroupBox.Controls.Add(this.mtuLabel);
@@ -1063,6 +1075,7 @@ namespace Netch.Forms
private System.Windows.Forms.GroupBox KCPGroupBox;
private System.Windows.Forms.CheckBox congestionCheckBox;
private System.Windows.Forms.CheckBox TLSAllowInsecureCheckBox;
private System.Windows.Forms.CheckBox TCPFastOpenBox;
private System.Windows.Forms.Label mtuLabel;
private System.Windows.Forms.TextBox mtuTextBox;
private System.Windows.Forms.Label writeBufferSizeLabel;

View File

@@ -107,7 +107,7 @@ public partial class SettingForm : BindingForm
BindCheckBox(UseCustomDNSCheckBox, b => { Global.Settings.TUNTAP.UseCustomDNS = b; }, Global.Settings.TUNTAP.UseCustomDNS);
BindTextBox(TUNTAPDNSTextBox,
s => true,
s => UseCustomDNSCheckBox.Checked ? IPAddress.TryParse(s, out _) : true,
s =>
{
if (UseCustomDNSCheckBox.Checked)
@@ -120,11 +120,11 @@ public partial class SettingForm : BindingForm
#endregion
#region V2Ray
BindCheckBox(XrayConeCheckBox, b => Global.Settings.V2RayConfig.XrayCone = b, Global.Settings.V2RayConfig.XrayCone);
BindCheckBox(TLSAllowInsecureCheckBox, b => Global.Settings.V2RayConfig.AllowInsecure = b, Global.Settings.V2RayConfig.AllowInsecure);
BindCheckBox(UseMuxCheckBox, b => Global.Settings.V2RayConfig.UseMux = b, Global.Settings.V2RayConfig.UseMux);
BindCheckBox(TCPFastOpenBox, b => Global.Settings.V2RayConfig.TCPFastOpen = b, Global.Settings.V2RayConfig.TCPFastOpen);
BindTextBox<int>(mtuTextBox, i => true, i => Global.Settings.V2RayConfig.KcpConfig.mtu = i, Global.Settings.V2RayConfig.KcpConfig.mtu);
BindTextBox<int>(ttiTextBox, i => true, i => Global.Settings.V2RayConfig.KcpConfig.tti = i, Global.Settings.V2RayConfig.KcpConfig.tti);

View File

@@ -11,4 +11,6 @@ public class V2rayConfig
public bool V2rayNShareLink { get; set; } = true;
public bool XrayCone { get; set; } = true;
public bool TCPFastOpen { get; set; } = false;
}

View File

@@ -1,101 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\common.props" />
<PropertyGroup>
<OutputType>WinExe</OutputType>
<Configurations>Debug;Release</Configurations>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<ApplicationManifest>App.manifest</ApplicationManifest>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<ApplicationIcon>Resources\Netch.ico</ApplicationIcon>
<IsPackable>false</IsPackable>
<!-- event handler async void Warning -->
<NoWarn>VSTHRD100</NoWarn>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisMode>Default</AnalysisMode>
<CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DebugType>none</DebugType>
<DebugSymbols>false</DebugSymbols>
</PropertyGroup>
<ItemGroup>
<Using Include="Serilog" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="ConfigureAwait.Fody" Version="3.3.1">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Fody" Version="6.6.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="HMBSbige.SingleInstance" Version="6.0.0" />
<PackageReference Include="MaxMind.GeoIP2" Version="4.0.1" />
<PackageReference Include="Microsoft.Diagnostics.Tracing.TraceEvent" Version="2.0.73" GeneratePathProperty="true" />
<PackageReference Include="Microsoft.VisualStudio.Threading" Version="17.0.64" />
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.1.588-beta">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Nullable.Extended.Analyzer" Version="1.10.4539">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Serilog" Version="2.10.0" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="4.2.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.0" />
<PackageReference Include="Stun.Net" Version="6.0.0" />
<PackageReference Include="System.Management" Version="6.0.0" />
<PackageReference Include="TaskScheduler" Version="2.9.2" />
<PackageReference Include="WindowsFirewallHelper" Version="2.1.4.81" />
<PackageReference Include="System.ServiceProcess.ServiceController" Version="6.0.0" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="6.0.0" />
<PackageReference Include="WindowsJobAPI" Version="5.0.1" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<Compile Update="Properties\Resources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Update="Forms\SyncGlobalCheckBox.cs">
<SubType>UserControl</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<None Remove="NativeMethods.txt" />
<None Update="NOTICE.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<Target Condition="'$(PublishSingleFile)' == 'true'" AfterTargets="_ComputeFilesToBundle" Name="RemoveDupeAssemblies">
<ItemGroup>
<_FilesToBundle Remove="$(PkgMicrosoft_Diagnostics_Tracing_TraceEvent)\build\native\x86\**" />
</ItemGroup>
</Target>
</Project>

View File

@@ -38,17 +38,17 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="ConfigureAwait.Fody" Version="3.3.1">
<PackageReference Include="ConfigureAwait.Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Fody" Version="6.6.0">
<PackageReference Include="Fody" Version="6.6.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="HMBSbige.SingleInstance" Version="6.0.0" />
<PackageReference Include="MaxMind.GeoIP2" Version="5.1.0" />
<PackageReference Include="Microsoft.Diagnostics.Tracing.TraceEvent" Version="2.0.76" GeneratePathProperty="true" />
<PackageReference Include="Microsoft.VisualStudio.Threading" Version="17.1.46" />
<PackageReference Include="Microsoft.Diagnostics.Tracing.TraceEvent" Version="3.0.7" GeneratePathProperty="true" />
<PackageReference Include="Microsoft.VisualStudio.Threading" Version="17.5.22" />
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.1.588-beta">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
@@ -57,17 +57,17 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Serilog" Version="2.10.0" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="4.2.0" />
<PackageReference Include="Serilog" Version="2.12.0" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="5.0.1" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.1" />
<PackageReference Include="Stun.Net" Version="6.0.0" />
<PackageReference Include="System.Management" Version="6.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" />
<PackageReference Include="Stun.Net" Version="6.2.0" />
<PackageReference Include="System.Management" Version="7.0.0" />
<PackageReference Include="TaskScheduler" Version="2.10.1" />
<PackageReference Include="WindowsFirewallHelper" Version="2.2.0.86" />
<PackageReference Include="System.ServiceProcess.ServiceController" Version="6.0.0" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="6.0.0" />
<PackageReference Include="System.ServiceProcess.ServiceController" Version="7.0.0" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="7.0.0" />
<PackageReference Include="WindowsJobAPI" Version="6.0.0" />
</ItemGroup>

View File

@@ -19,7 +19,7 @@ namespace Netch.Properties {
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
@@ -130,16 +130,6 @@ namespace Netch.Properties {
}
}
/// <summary>
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
/// </summary>
internal static System.Drawing.Bitmap Sponsor {
get {
object obj = ResourceManager.GetObject("Sponsor", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// 查找 System.Byte[] 类型的本地化资源。
/// </summary>

View File

@@ -138,10 +138,6 @@
<value>..\Resources\Netch.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Sponsor" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Sponsor.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="CopyLink" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\CopyLink.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a</value>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

View File

@@ -47,7 +47,9 @@
"Address": "地址",
"Username": "用户名",
"User": "用户",
"Password": "密码",
"Version": "版本",
"User ID": "用户 ID",
"Alter ID": "额外 ID",
"Transfer Protocol": "传输协议",
@@ -69,6 +71,10 @@
"Plugin": "插件",
"Plugin Options": "插件参数",
"Remote Address": "远端地址",
"Local Addresses": "本地地址(可多个)",
"Public Key": "公钥",
"Private Key": "私钥",
"PSK": "节点预共享密钥",
"Subscription": "订阅",
"Manage Subscriptions": "管理订阅",
@@ -178,6 +184,7 @@
"STUN Server": "STUN 服务器",
"Language": "语言",
"FullCone Support (Required Server Xray-core v1.3.0+)": "FullCone 支持(需服务端 Xray-core v1.3.0+",
"TCP FastOpen": "TCP 快速打开",
"Disable Support Warning": "停用支持警告",
"Profile": "配置名",

View File

@@ -0,0 +1,19 @@
using Netch.Forms;
namespace Netch.Servers;
[Fody.ConfigureAwait(true)]
public class SSHForm : ServerForm
{
public SSHForm(SSHServer? server = default)
{
server ??= new SSHServer();
Server = server;
CreateTextBox("User", "User", s => true, s => server.User = s, server.User);
CreateTextBox("Password", "Password", s => true, s => server.Password = s, server.Password);
CreateTextBox("PrivateKey", "Private Key", s => true, s => server.PrivateKey = s, server.PrivateKey);
CreateTextBox("PublicKey", "Public Key", s => true, s => server.PublicKey = s, server.PublicKey);
}
protected override string TypeName { get; } = "SSH";
}

View File

@@ -0,0 +1,33 @@
using Netch.Models;
namespace Netch.Servers;
public class SSHServer : Server
{
public override string Type { get; } = "SSH";
public override string MaskedData()
{
return $"{User}";
}
/// <summary>
/// 用户
/// </summary>
public string User { get; set; } = "root";
/// <summary>
/// 密码
/// </summary>
public string Password { get; set; } = string.Empty;
/// <summary>
/// 私钥
/// </summary>
public string PrivateKey { get; set; }
/// <summary>
/// 主机公钥
/// </summary>
public string? PublicKey { get; set; }
}

View File

@@ -0,0 +1,53 @@
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Json.Serialization;
using Netch.Interfaces;
using Netch.Models;
using Netch.Utils;
namespace Netch.Servers;
public class SSHUtil : IServerUtil
{
public ushort Priority { get; } = 4;
public string TypeName { get; } = "SSH";
public string FullName { get; } = "SSH";
public string ShortName { get; } = "SSH";
public string[] UriScheme { get; } = { "ssh" };
public Type ServerType { get; } = typeof(SSHServer);
public void Edit(Server s)
{
new SSHForm((SSHServer)s).ShowDialog();
}
public void Create()
{
new SSHForm().ShowDialog();
}
public string GetShareLink(Server s)
{
return V2rayUtils.GetVShareLink(s, "ssh");
}
public IServerController GetController()
{
return new V2rayController();
}
public IEnumerable<Server> ParseUri(string text)
{
return V2rayUtils.ParseVUri(text);
}
public bool CheckServer(Server s)
{
return true;
}
}

View File

@@ -13,7 +13,7 @@ public class ShadowsocksServer : Server
/// <summary>
/// 加密方式
/// </summary>
public string EncryptMethod { get; set; } = SSGlobal.EncryptMethods[0];
public string EncryptMethod { get; set; } = SSGlobal.EncryptMethods[4];
/// <summary>
/// 密码
@@ -43,24 +43,50 @@ public static class SSGlobal
/// </summary>
public static readonly List<string> EncryptMethods = new()
{
"rc4-md5",
"none",
// 2022 edition cipher
"2022-blake3-aes-128-gcm",
"2022-blake3-aes-256-gcm",
"2022-blake3-chacha20-poly1305",
// AEAD cipher
"aes-128-gcm",
"aes-192-gcm",
"aes-256-gcm",
"aes-128-cfb",
"aes-192-cfb",
"aes-256-cfb",
"chacha20-ietf-poly1305",
"xchacha20-ietf-poly1305",
// stream cipher
"rc4",
"rc4-md5",
"aes-128-ctr",
"aes-192-ctr",
"aes-256-ctr",
"aes-128-cfb",
"aes-192-cfb",
"aes-256-cfb",
"aes-128-cfb8",
"aes-192-cfb8",
"aes-256-cfb8",
"aes-128-ofb",
"aes-192-ofb",
"aes-256-ofb",
"bf-cfb",
"cast5-cfb",
"des-cfb",
"idea-cfb",
"rc2-cfb",
"seed-cfb",
"camellia-128-cfb",
"camellia-192-cfb",
"camellia-256-cfb",
"bf-cfb",
"chacha20-ietf-poly1305",
"xchacha20-ietf-poly1305",
"camellia-128-cfb8",
"camellia-192-cfb8",
"camellia-256-cfb8",
"salsa20",
"chacha20",
"chacha20-ietf"
"chacha20-ietf",
"xchacha20"
};
}

View File

@@ -114,13 +114,13 @@ public class ShadowsocksUtil : IServerUtil
{
case "obfs-local":
case "simple-obfs":
plugin = "simple-obfs";
plugin = "obfs-local";
if (!pluginopts.Contains("obfs="))
pluginopts = "obfs=http;obfs-host=" + pluginopts;
break;
case "simple-obfs-tls":
plugin = "simple-obfs";
plugin = "obfs-local";
if (!pluginopts.Contains("obfs="))
pluginopts = "obfs=tls;obfs-host=" + pluginopts;

View File

@@ -18,7 +18,7 @@ public class ShadowsocksRServer : Server
/// <summary>
/// 加密方式
/// </summary>
public string EncryptMethod { get; set; } = SSRGlobal.EncryptMethods[0];
public string EncryptMethod { get; set; } = SSRGlobal.EncryptMethods[4];
/// <summary>
/// 协议
@@ -49,11 +49,11 @@ public class SSRGlobal
public static readonly List<string> Protocols = new()
{
"origin",
"verify_deflate",
"auth_sha1_v4",
"auth_aes128_md5",
"auth_aes128_sha1",
"auth_chain_a"
"auth_chain_a",
"auth_chain_b"
};
/// <summary>
@@ -64,36 +64,14 @@ public class SSRGlobal
"plain",
"http_simple",
"http_post",
"tls1.2_ticket_auth"
"tls_simple",
"tls1.2_ticket_auth",
"tls1.2_ticket_fastauth",
"random_head"
};
/// <summary>
/// SS/SSR 加密方式
/// </summary>
public static readonly List<string> EncryptMethods = new()
{
"none",
"table",
"rc4",
"rc4-md5",
"rc4-md5-6",
"aes-128-cfb",
"aes-192-cfb",
"aes-256-cfb",
"aes-128-ctr",
"aes-192-ctr",
"aes-256-ctr",
"bf-cfb",
"camellia-128-cfb",
"camellia-192-cfb",
"camellia-256-cfb",
"cast5-cfb",
"des-cfb",
"idea-cfb",
"rc2-cfb",
"seed-cfb",
"salsa20",
"chacha20",
"chacha20-ietf"
};
public static readonly List<string> EncryptMethods = SSGlobal.EncryptMethods;
}

View File

@@ -12,6 +12,11 @@ public class Socks5Form : ServerForm
Server = server;
CreateTextBox("Username", "Username", s => true, s => server.Username = s, server.Username.ValueOrDefault());
CreateTextBox("Password", "Password", s => true, s => server.Password = s, server.Password.ValueOrDefault());
CreateComboBox("Version",
"Version",
SOCKSGlobal.Versions,
s => server.Version = s,
server.Version);
(_remoteHostnameLabel, _remoteHostnameTextBox) = CreateTextBox("RemoteHostname",
"Remote Address",
s => true,

View File

@@ -4,7 +4,7 @@ namespace Netch.Servers;
public class Socks5Server : Server
{
public override string Type { get; } = "Socks5";
public override string Type { get; } = "SOCKS";
/// <summary>
/// 密码
@@ -18,6 +18,11 @@ public class Socks5Server : Server
public string? RemoteHostname { get; set; }
/// <summary>
/// 版本
/// </summary>
public string Version { get; set; } = SOCKSGlobal.Versions[0];
public override string MaskedData()
{
return $"Auth: {Auth()}";
@@ -48,4 +53,14 @@ public class Socks5Server : Server
{
return !string.IsNullOrWhiteSpace(Username) && !string.IsNullOrWhiteSpace(Password);
}
}
public class SOCKSGlobal
{
public static readonly List<string> Versions = new()
{
"5",
"4a",
"4"
};
}

View File

@@ -7,11 +7,11 @@ public class Socks5Util : IServerUtil
{
public ushort Priority { get; } = 0;
public string TypeName { get; } = "Socks5";
public string TypeName { get; } = "SOCKS";
public string FullName { get; } = "Socks5";
public string FullName { get; } = "SOCKS";
public string ShortName { get; } = "S5";
public string ShortName { get; } = "SOCKS";
public string[] UriScheme { get; } = { };

View File

@@ -11,6 +11,7 @@ public class TrojanForm : ServerForm
Server = server;
CreateTextBox("Password", "Password", s => true, s => server.Password = s, server.Password);
CreateTextBox("Host", "Host", s => true, s => server.Host = s, server.Host);
CreateComboBox("TLSSecure", "TLS Secure", VLESSGlobal.TLSSecure, s => server.TLSSecureType = s, server.TLSSecureType);
}
protected override string TypeName { get; } = "Trojan";

View File

@@ -4,6 +4,8 @@ namespace Netch.Servers;
public class TrojanServer : Server
{
private string _tlsSecureType = VLESSGlobal.TLSSecure[1];
public override string Type { get; } = "Trojan";
public override string MaskedData()
@@ -20,4 +22,19 @@ public class TrojanServer : Server
/// 伪装域名
/// </summary>
public string? Host { get; set; }
/// <summary>
/// TLS 底层传输安全
/// </summary>
public string TLSSecureType
{
get => _tlsSecureType;
set
{
if (value == "")
value = VLESSGlobal.TLSSecure[1];
_tlsSecureType = value;
}
}
}

View File

@@ -32,7 +32,7 @@ public class TrojanUtil : IServerUtil
public string GetShareLink(Server s)
{
var server = (TrojanServer)s;
return $"trojan://{HttpUtility.UrlEncode(server.Password)}@{server.Hostname}:{server.Port}#{server.Remark}";
return $"trojan://{HttpUtility.UrlEncode(server.Password)}@{server.Hostname}:{server.Port}?sni={server.Host}#{server.Remark}";
}
public IServerController GetController()
@@ -61,8 +61,13 @@ public class TrojanUtil : IServerUtil
var peer = HttpUtility.UrlDecode(HttpUtility.ParseQueryString(new Uri(text).Query).Get("peer"));
if (peer != null)
if (peer != null) {
data.Host = peer;
} else {
peer = HttpUtility.UrlDecode(HttpUtility.ParseQueryString(new Uri(text).Query).Get("sni"));
if (peer != null)
data.Host = peer;
}
text = regmatch.Groups["data"].Value;
}

View File

@@ -29,9 +29,9 @@ public class Outbound
public OutboundConfiguration settings { get; set; }
public StreamSettings streamSettings { get; set; }
public StreamSettings? streamSettings { get; set; }
public Mux mux { get; set; }
public Mux? mux { get; set; }
}
public class OutboundConfiguration
@@ -39,6 +39,36 @@ public class OutboundConfiguration
public VnextItem[] vnext { get; set; }
public object[] servers { get; set; }
public string version { get; set; }
public string address { get; set; }
public string user { get; set; }
public ushort port { get; set; }
public string password { get; set; }
public string packetEncoding { get; set; }
public string plugin { get; set; }
public string pluginOpts { get; set; }
public string[] pluginArgs { get; set; }
public string[] localAddresses { get; set; }
public string peerPublicKey { get; set; }
public string publicKey { get; set; }
public string privateKey { get; set; }
public string preSharedKey { get; set; }
public int mtu { get; set; }
}
public class VnextItem
@@ -50,10 +80,25 @@ public class VnextItem
public User[] users { get; set; }
}
public class ShadowsocksServerItem
{
public string address { get; set; }
public ushort port { get; set; }
public string method { get; set; }
public string password { get; set; }
public string flow { get; set; }
}
public class Mux
{
public bool enabled { get; set; }
public string packetEncoding { get; set; }
public int concurrency { get; set; }
}
@@ -78,6 +123,8 @@ public class StreamSettings
public TlsSettings xtlsSettings { get; set; }
public GrpcSettings grpcSettings { get; set; }
public Sockopt sockopt { get; set; }
}
#region Transport
@@ -145,4 +192,9 @@ public class GrpcSettings
public bool multiMode { get; set; }
}
public class Sockopt
{
public bool tcpFastOpen { get; set; }
}
#endregion

View File

@@ -20,6 +20,7 @@ public static class V2rayConfigUtils
listen = Global.Settings.LocalAddress,
settings = new
{
auth = "noauth",
udp = true
}
}
@@ -41,7 +42,7 @@ public static class V2rayConfigUtils
switch (server)
{
case Socks5Server socks5:
case Socks5Server socks:
{
outbound.protocol = "socks";
outbound.settings.servers = new object[]
@@ -50,19 +51,20 @@ public static class V2rayConfigUtils
{
address = await server.AutoResolveHostnameAsync(),
port = server.Port,
users = socks5.Auth()
users = socks.Auth()
? new[]
{
new
{
user = socks5.Username,
pass = socks5.Password,
user = socks.Username,
pass = socks.Password,
level = 1
}
}
: null
}
};
outbound.settings.version = socks.Version;
outbound.mux.enabled = false;
outbound.mux.concurrency = -1;
@@ -81,14 +83,17 @@ public static class V2rayConfigUtils
{
new User
{
id = vless.UserID,
flow = vless.Flow.ValueOrDefault(),
id = getUUID(vless.UserID),
flow = vless.TLSSecureType == "xtls" ? "xtls-rprx-direct" : "",
encryption = vless.EncryptMethod
}
}
}
};
outbound.settings.packetEncoding = Global.Settings.V2RayConfig.XrayCone ? vless.PacketEncoding : "none";
outbound.mux.packetEncoding = Global.Settings.V2RayConfig.XrayCone ? vless.PacketEncoding : "none";
outbound.streamSettings = boundStreamSettings(vless);
if (vless.TLSSecureType == "xtls")
@@ -107,6 +112,10 @@ public static class V2rayConfigUtils
case VMessServer vmess:
{
outbound.protocol = "vmess";
if (vmess.EncryptMethod == "auto" && vmess.TLSSecureType != "none" && !Global.Settings.V2RayConfig.AllowInsecure)
{
vmess.EncryptMethod = "zero";
}
outbound.settings.vnext = new[]
{
new VnextItem
@@ -117,7 +126,7 @@ public static class V2rayConfigUtils
{
new User
{
id = vmess.UserID,
id = getUUID(vmess.UserID),
alterId = vmess.AlterID,
security = vmess.EncryptMethod
}
@@ -125,12 +134,161 @@ public static class V2rayConfigUtils
}
};
outbound.settings.packetEncoding = Global.Settings.V2RayConfig.XrayCone ? vmess.PacketEncoding : "none";
outbound.mux.packetEncoding = Global.Settings.V2RayConfig.XrayCone ? vmess.PacketEncoding : "none";
outbound.streamSettings = boundStreamSettings(vmess);
outbound.mux.enabled = vmess.UseMux ?? Global.Settings.V2RayConfig.UseMux;
outbound.mux.concurrency = vmess.UseMux ?? Global.Settings.V2RayConfig.UseMux ? 8 : -1;
break;
}
case ShadowsocksServer ss:
outbound.protocol = "shadowsocks";
outbound.settings.servers = new[]
{
new ShadowsocksServerItem
{
address = await server.AutoResolveHostnameAsync(),
port = server.Port,
method = ss.EncryptMethod,
password = ss.Password
}
};
outbound.settings.plugin = ss.Plugin ?? "";
outbound.settings.pluginOpts = ss.PluginOption ?? "";
if (Global.Settings.V2RayConfig.TCPFastOpen)
{
outbound.streamSettings = new StreamSettings
{
sockopt = new Sockopt
{
tcpFastOpen = true
}
};
}
break;
case ShadowsocksRServer ssr:
outbound.protocol = "shadowsocks";
outbound.settings.servers = new[]
{
new ShadowsocksServerItem
{
address = await server.AutoResolveHostnameAsync(),
port = server.Port,
method = ssr.EncryptMethod,
password = ssr.Password,
}
};
outbound.settings.plugin = "shadowsocksr";
outbound.settings.pluginArgs = new string[]
{
"--obfs=" + ssr.OBFS,
"--obfs-param=" + ssr.OBFSParam ?? "",
"--protocol=" + ssr.Protocol,
"--protocol-param=" + ssr.ProtocolParam ?? ""
};
if (Global.Settings.V2RayConfig.TCPFastOpen)
{
outbound.streamSettings = new StreamSettings
{
sockopt = new Sockopt
{
tcpFastOpen = true
}
};
}
break;
case TrojanServer trojan:
outbound.protocol = "trojan";
outbound.settings.servers = new[]
{
new ShadowsocksServerItem // I'm not serious
{
address = await server.AutoResolveHostnameAsync(),
port = server.Port,
method = "",
password = trojan.Password,
flow = trojan.TLSSecureType == "xtls" ? "xtls-rprx-direct" : ""
}
};
outbound.streamSettings = new StreamSettings
{
network = "tcp",
security = trojan.TLSSecureType
};
if (trojan.TLSSecureType != "none")
{
var tlsSettings = new TlsSettings
{
allowInsecure = Global.Settings.V2RayConfig.AllowInsecure,
serverName = trojan.Host ?? ""
};
switch (trojan.TLSSecureType)
{
case "tls":
outbound.streamSettings.tlsSettings = tlsSettings;
break;
case "xtls":
outbound.streamSettings.xtlsSettings = tlsSettings;
break;
}
}
if (Global.Settings.V2RayConfig.TCPFastOpen)
{
outbound.streamSettings.sockopt = new Sockopt
{
tcpFastOpen = true
};
}
break;
case WireGuardServer wg:
outbound.protocol = "wireguard";
outbound.settings.address = await server.AutoResolveHostnameAsync();
outbound.settings.port = server.Port;
outbound.settings.localAddresses = wg.LocalAddresses.SplitOrDefault();
outbound.settings.peerPublicKey = wg.PeerPublicKey;
outbound.settings.privateKey = wg.PrivateKey;
outbound.settings.preSharedKey = wg.PreSharedKey;
outbound.settings.mtu = wg.MTU;
if (Global.Settings.V2RayConfig.TCPFastOpen)
{
outbound.streamSettings = new StreamSettings
{
sockopt = new Sockopt
{
tcpFastOpen = true
}
};
}
break;
case SSHServer ssh:
outbound.protocol = "ssh";
outbound.settings.address = await server.AutoResolveHostnameAsync();
outbound.settings.port = server.Port;
outbound.settings.user = ssh.User;
outbound.settings.password = ssh.Password;
outbound.settings.privateKey = ssh.PrivateKey;
outbound.settings.publicKey = ssh.PublicKey;
if (Global.Settings.V2RayConfig.TCPFastOpen)
{
outbound.streamSettings = new StreamSettings
{
sockopt = new Sockopt
{
tcpFastOpen = true
}
};
}
break;
}
return outbound;
@@ -257,6 +415,23 @@ public static class V2rayConfigUtils
throw new MessageException($"transfer protocol \"{server.TransferProtocol}\" not implemented yet");
}
if (Global.Settings.V2RayConfig.TCPFastOpen)
{
streamSettings.sockopt = new Sockopt
{
tcpFastOpen = true
};
}
return streamSettings;
}
public static string getUUID(string uuid)
{
if (uuid.Length == 36 || uuid.Length == 32)
{
return uuid;
}
return uuid.GenerateUUIDv5();
}
}

View File

@@ -8,17 +8,17 @@ namespace Netch.Servers;
public class V2rayController : Guard, IServerController
{
public V2rayController() : base("xray.exe")
public V2rayController() : base("v2ray-sn.exe")
{
if (!Global.Settings.V2RayConfig.XrayCone)
Instance.StartInfo.Environment["XRAY_CONE_DISABLED"] = "true";
//if (!Global.Settings.V2RayConfig.XrayCone)
// Instance.StartInfo.Environment["XRAY_CONE_DISABLED"] = "true";
}
protected override IEnumerable<string> StartedKeywords => new[] { "started" };
protected override IEnumerable<string> FailedKeywords => new[] { "config file not readable", "failed to" };
public override string Name => "Xray";
public override string Name => "V2Ray (SagerNet)";
public ushort? Socks5LocalPort { get; set; }
@@ -31,7 +31,7 @@ public class V2rayController : Guard, IServerController
await JsonSerializer.SerializeAsync(fileStream, await V2rayConfigUtils.GenerateClientConfigAsync(s), Global.NewCustomJsonSerializerOptions());
}
await StartGuardAsync("-config ..\\data\\last.json");
await StartGuardAsync("run -c ..\\data\\last.json");
return new Socks5Server(IPAddress.Loopback.ToString(), this.Socks5LocalPort(), s.Hostname);
}
}

View File

@@ -22,6 +22,7 @@ public static class V2rayUtils
var parameter = HttpUtility.ParseQueryString(text.Split('?')[1]);
text = text.Substring(0, text.IndexOf("?", StringComparison.Ordinal));
server.TransferProtocol = parameter.Get("type") ?? "tcp";
server.PacketEncoding = parameter.Get("packetEncoding") ?? "xudp";
server.EncryptMethod = parameter.Get("encryption") ?? scheme switch { "vless" => "none", _ => "auto" };
switch (server.TransferProtocol)
{
@@ -54,8 +55,6 @@ public static class V2rayUtils
if (server.TLSSecureType != "none")
{
server.ServerName = parameter.Get("sni") ?? "";
if (server.TLSSecureType == "xtls")
((VLESSServer)server).Flow = parameter.Get("flow") ?? "";
}
}
@@ -79,6 +78,7 @@ public static class V2rayUtils
// protocol-specific fields
parameter.Add("type", server.TransferProtocol);
parameter.Add("encryption", server.EncryptMethod);
parameter.Add("packetEncoding", server.PacketEncoding);
// transport-specific fields
switch (server.TransferProtocol)
@@ -135,9 +135,7 @@ public static class V2rayUtils
if (server.TLSSecureType == "xtls")
{
var flow = ((VLESSServer)server).Flow;
if (!flow.IsNullOrWhiteSpace())
parameter.Add("flow", flow!.Replace("-udp443", ""));
parameter.Add("flow", "xtls-rprx-direct");
}
}

View File

@@ -17,12 +17,16 @@ internal class VLESSForm : ServerForm
s => server.EncryptMethod = !string.IsNullOrWhiteSpace(s) ? s : "none",
server.EncryptMethod);
CreateTextBox("Flow", "Flow", s => true, s => server.Flow = s, server.Flow);
CreateComboBox("TransferProtocol",
"Transfer Protocol",
VLESSGlobal.TransferProtocols,
s => server.TransferProtocol = s,
server.TransferProtocol);
CreateComboBox("PacketEncoding",
"Packet Encoding",
VMessGlobal.PacketEncodings,
s => server.PacketEncoding = s,
server.PacketEncoding);
CreateComboBox("FakeType", "Fake Type", VLESSGlobal.FakeTypes, s => server.FakeType = s, server.FakeType);
CreateTextBox("Host", "Host", s => true, s => server.Host = s, server.Host);

View File

@@ -18,10 +18,6 @@ public class VLESSServer : VMessServer
/// 伪装类型
/// </summary>
public override string FakeType { get; set; } = VLESSGlobal.FakeTypes[0];
/// <summary>
/// </summary>
public string? Flow { get; set; }
}
public class VLESSGlobal

View File

@@ -18,6 +18,12 @@ public class VMessForm : ServerForm
VMessGlobal.TransferProtocols,
s => server.TransferProtocol = s,
server.TransferProtocol);
CreateComboBox("PacketEncoding",
"Packet Encoding",
VMessGlobal.PacketEncodings,
s => server.PacketEncoding = s,
server.PacketEncoding);
CreateComboBox("FakeType", "Fake Type", VMessGlobal.FakeTypes, s => server.FakeType = s, server.FakeType);
CreateTextBox("Host", "Host", s => true, s => server.Host = s, server.Host);

View File

@@ -10,7 +10,7 @@ public class VMessServer : Server
public override string MaskedData()
{
var maskedData = $"{EncryptMethod} + {TransferProtocol} + {FakeType}";
var maskedData = $"{EncryptMethod} + {TransferProtocol} + {PacketEncoding} + {FakeType}";
switch (TransferProtocol)
{
case "tcp":
@@ -49,6 +49,11 @@ public class VMessServer : Server
/// </summary>
public virtual string TransferProtocol { get; set; } = VMessGlobal.TransferProtocols[0];
/// <summary>
/// 包传输格式
/// </summary>
public virtual string PacketEncoding { get; set; } = VMessGlobal.PacketEncodings[2];
/// <summary>
/// 伪装类型
/// </summary>
@@ -104,7 +109,8 @@ public class VMessGlobal
"auto",
"none",
"aes-128-gcm",
"chacha20-poly1305"
"chacha20-poly1305",
"zero"
};
public static readonly List<string> QUIC = new()
@@ -114,6 +120,13 @@ public class VMessGlobal
"chacha20-poly1305"
};
public static readonly List<string> PacketEncodings = new()
{
"none",
"packet", // requires v2fly/v2ray-core v5.0.2+ or SagerNet/v2ray-core
"xudp" // requires XTLS/Xray-core or SagerNet/v2ray-core
};
/// <summary>
/// V2Ray 传输协议
/// </summary>

View File

@@ -0,0 +1,20 @@
using Netch.Forms;
namespace Netch.Servers;
[Fody.ConfigureAwait(true)]
public class WireGuardForm : ServerForm
{
public WireGuardForm(WireGuardServer? server = default)
{
server ??= new WireGuardServer();
Server = server;
CreateTextBox("LocalAddresses", "Local Addresses", s => true, s => server.LocalAddresses = s, server.LocalAddresses);
CreateTextBox("PeerPublicKey", "Public Key", s => true, s => server.PeerPublicKey = s, server.PeerPublicKey);
CreateTextBox("PrivateKey", "Private Key", s => true, s => server.PrivateKey = s, server.PrivateKey);
CreateTextBox("PreSharedKey", "PSK", s => true, s => server.PreSharedKey = s, server.PreSharedKey);
CreateTextBox("MTU", "MTU", s => int.TryParse(s, out _), s => server.MTU = int.Parse(s), server.MTU.ToString(), 76);
}
protected override string TypeName { get; } = "WireGuard";
}

View File

@@ -0,0 +1,38 @@
using Netch.Models;
namespace Netch.Servers;
public class WireGuardServer : Server
{
public override string Type { get; } = "WireGuard";
public override string MaskedData()
{
return $"{LocalAddresses} + {MTU}";
}
/// <summary>
/// 本地地址
/// </summary>
public string LocalAddresses { get; set; } = "172.16.0.2";
/// <summary>
/// 节点公钥
/// </summary>
public string PeerPublicKey { get; set; } = string.Empty;
/// <summary>
/// 私钥
/// </summary>
public string PrivateKey { get; set; }
/// <summary>
/// 节点预共享密钥
/// </summary>
public string? PreSharedKey { get; set; }
/// <summary>
/// MTU
/// </summary>
public int MTU { get; set; } = 1420;
}

View File

@@ -0,0 +1,53 @@
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Json.Serialization;
using Netch.Interfaces;
using Netch.Models;
using Netch.Utils;
namespace Netch.Servers;
public class WireGuardUtil : IServerUtil
{
public ushort Priority { get; } = 4;
public string TypeName { get; } = "WireGuard";
public string FullName { get; } = "WireGuard";
public string ShortName { get; } = "WG";
public string[] UriScheme { get; } = { "wireguard" };
public Type ServerType { get; } = typeof(WireGuardServer);
public void Edit(Server s)
{
new WireGuardForm((WireGuardServer)s).ShowDialog();
}
public void Create()
{
new WireGuardForm().ShowDialog();
}
public string GetShareLink(Server s)
{
return V2rayUtils.GetVShareLink(s, "wireguard");
}
public IServerController GetController()
{
return new V2rayController();
}
public IEnumerable<Server> ParseUri(string text)
{
return V2rayUtils.ParseVUri(text);
}
public bool CheckServer(Server s)
{
return true;
}
}

View File

@@ -1,11 +1,14 @@
using System.Collections;
using System.Net;
using System.Net.Sockets;
using Microsoft.VisualStudio.Threading;
namespace Netch.Utils;
public static class DnsUtils
{
private static readonly AsyncSemaphore Lock = new(1);
/// <summary>
/// 缓存
/// </summary>
@@ -14,6 +17,7 @@ public static class DnsUtils
public static async Task<IPAddress?> LookupAsync(string hostname, AddressFamily inet = AddressFamily.Unspecified, int timeout = 3000)
{
using var _ = await Lock.EnterAsync();
try
{
var cacheResult = inet switch

View File

@@ -1,4 +1,5 @@
using System.Text;
using System.Security.Cryptography;
using System.Text;
namespace Netch.Utils;
@@ -78,4 +79,30 @@ public static class StringExtension
{
return !string.IsNullOrWhiteSpace(value) ? value.Split(',') : default;
}
public static string GenerateUUIDv5(this string str)
{
// https://github.com/XTLS/Xray-core/discussions/715
// https://xray-uuid.ducksoft.site/
SHA1 sha1 = new SHA1CryptoServiceProvider();
// example string: "example"
List<byte> byteSource = new List<byte>();
byteSource.AddRange(new byte[16]);
byteSource.AddRange(Encoding.UTF8.GetBytes(str));
byte[] Sha1Bytes = sha1.ComputeHash(byteSource.ToArray()).Skip(0).Take(16).ToArray();
sha1.Dispose();
//UUIDv5: [254 181 68 49 48 27 82 187 166 221 225 233 62 129 187 158]
Sha1Bytes[6] = (byte)((Sha1Bytes[6] & 0x0f) | (5 << 4));
Sha1Bytes[8] = (byte)(Sha1Bytes[8] & (0xff >> 2) | (0x02 << 6));
return BitConverter.ToString(Sha1Bytes).Replace("-", "")
.Insert(8, "-").Insert(13, "-").Insert(18, "-").Insert(23, "-")
.ToLower();
//UUIDv5: feb54431-301b-52bb-a6dd-e1e93e81bb9e
}
}

View File

@@ -94,6 +94,9 @@ public static class Utils
public static async Task<string> Sha256CheckSumAsync(string filePath)
{
if (!File.Exists(filePath))
return "";
try
{
await using var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, true);

View File

@@ -1,10 +0,0 @@
Set-Location (Split-Path $MyInvocation.MyCommand.Path -Parent)
git clone https://github.com/shadowsocks/libev -b 'mingw' src
if ( -Not $? ) {
exit $lastExitCode
}
Set-Location src
msys2 ..\build.sh
exit $lastExitCode

View File

@@ -1,7 +0,0 @@
#!/usr/bin/env bash
mkdir -p "${PWD}/../../build"
./configure --prefix="${PWD}/../../build" || exit $?
make install -j2
exit $?

View File

@@ -1,15 +0,0 @@
Set-Location (Split-Path $MyInvocation.MyCommand.Path -Parent)
git clone https://github.com/shadowsocks/shadowsocks-rust -b 'v1.12.0' src
if ( -Not $? ) {
exit $lastExitCode
}
Set-Location src
cargo build --features logging,trust-dns,local,utility,local-http,local-tunnel,local-socks4,multi-threaded,stream-cipher --release
if ( -Not $? ) {
exit $lastExitCode
}
cp -Force '.\target\release\sslocal.exe' '..\..\release\Shadowsocks.exe'
exit 0

View File

@@ -1,15 +0,0 @@
Set-Location (Split-Path $MyInvocation.MyCommand.Path -Parent)
git clone https://github.com/shadowsocksrr/shadowsocksr-libev -b 'Akkariiin/develop' src
if ( -Not $? ) {
exit $lastExitCode
}
Set-Location src
msys2 ..\build.sh
if ( -Not $? ) {
exit $lastExitCode
}
cp -Force '.\ss-local.exe' '..\..\release\ShadowsocksR.exe'
exit 0

View File

@@ -1,20 +0,0 @@
#!/usr/bin/env bash
git submodule update --init || exit $?
cd libudns
./autogen.sh || exit $?
./configure || exit $?
make -j2 || exit $?
cd ..
./autogen.sh || exit $?
CFLAGS+="-fstack-protector" ./configure --disable-documentation --with-ev="${PWD}/../../build" || exit $?
sed -i "s/%I/%z/g" src/utils.h
sed -i "s/^const/extern const/g" src/tls.h
sed -i "s/^const/extern const/g" src/http.h
make -j2 || exit $?
gcc $(find src/ -name "ss_local-*.o") $(find . -name "*.a" ! -name "*.dll.a") "${PWD}/../../build/lib/libev.a" -o ss-local -fstack-protector -static -lpcre -lssl -lcrypto -lws2_32 -s
exit $?

View File

@@ -1,15 +0,0 @@
Set-Location (Split-Path $MyInvocation.MyCommand.Path -Parent)
git clone https://github.com/shadowsocks/simple-obfs src
if ( -Not $? ) {
exit $lastExitCode
}
Set-Location src
msys2 ..\build.sh
if ( -Not $? ) {
exit $lastExitCode
}
cp -Force '.\obfs-local.exe' '..\..\release\simple-obfs.exe'
exit 0

View File

@@ -1,10 +0,0 @@
#!/usr/bin/env bash
git submodule update --init || exit $?
./autogen.sh || exit $?
./configure --disable-documentation --with-ev="${PWD}/../../build" || exit $?
make -j2 || exit $?
gcc $(find src/ -name "obfs_local-*.o") $(find . -name "*.a" ! -name "*.dll.a") "${PWD}/../../build/lib/libev.a" -o obfs-local -fstack-protector -static -lws2_32 -s
exit $?

View File

@@ -1,15 +0,0 @@
Set-Location (Split-Path $MyInvocation.MyCommand.Path -Parent)
git clone https://github.com/p4gefau1t/trojan-go -b 'v0.10.6' src
if ( -Not $? ) {
exit $lastExitCode
}
Set-Location src
$Env:CGO_ENABLED='0'
$Env:GOROOT_FINAL='/usr'
$Env:GOOS='windows'
$Env:GOARCH='amd64'
go build -a -trimpath -asmflags '-s -w' -ldflags '-s -w' -tags 'full' -o '..\..\release\Trojan.exe'
exit $lastExitCode

56
Other/v2ray-sn/README.md Normal file
View File

@@ -0,0 +1,56 @@
# Project V for SagerNet for Netch
This is not a joke.
Modified from [SagerNet/v2ray-core](https://github.com/SagerNet/v2ray-core).
#### Extends all features of SagerNet/v2ray-core
### Changes
- embed ShadowsocksR plugin for shadowsocks
```json
{
"outbounds": [
{
"protocol": "shadowsocks",
"settings": {
...
"plugin": "shadowsocksr",
"pluginArgs": [
"--obfs=<OBFS_TYPE>",
"--obfs-param=<OBFS_PARAMETERS>",
"--protocol=<PROTOCOL_TYPE>",
"--protocol-param=<PROTOCOL_PARAMETERS>"
]
}
}
]
}
```
- embed simple-obfs plugin for shadowsocks
```json
{
"outbounds": [
{
"protocol": "shadowsocks",
"settings": {
...
"plugin": "obfs-local",
"pluginOpts": "<SIMPLE_OBFS_OPTIONS>"
}
}
]
}
```
- Re-enable ReadV
### License
GPL v3
### Credits
This repo relies on the following projects:
- [SagerNet/LibSagerNetCore](https://github.com/SagerNet/LibSagerNetCore)

29
Other/v2ray-sn/build.ps1 Normal file
View File

@@ -0,0 +1,29 @@
Set-Location (Split-Path $MyInvocation.MyCommand.Path -Parent)
git clone https://github.com/SagerNet/v2ray-core.git -b 'v5.0.16' src
if ( -Not $? ) {
exit $lastExitCode
}
Set-Location src
# Download SSR plugin
Invoke-WebRequest -Uri 'https://gist.githubusercontent.com/H1JK/b3165a99b635dcc06101690e4c43b5fd/raw/691b471f3b395a949d03a3d064d93d319d4997b7/ssr.go' -OutFile '.\proxy\shadowsocks\plugin\self\ssr.go'
# Download Simple-Obfs plugin
Invoke-WebRequest -Uri 'https://gist.githubusercontent.com/H1JK/b3165a99b635dcc06101690e4c43b5fd/raw/691b471f3b395a949d03a3d064d93d319d4997b7/obfs.go' -OutFile '.\proxy\shadowsocks\plugin\self\obfs.go'
# Enable ReadV (Use old ReadV code)
Remove-Item '.\common\buf\io.go'
Remove-Item '.\common\buf\readv_reader.go'
Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/SagerNet/v2ray-core/2711fd1/common/buf/io.go' -OutFile '.\common\buf\io.go'
Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/SagerNet/v2ray-core/2711fd1/common/buf/readv_reader.go' -OutFile '.\common\buf\readv_reader.go'
$Env:CGO_ENABLED='0'
$Env:GOROOT_FINAL='/usr'
$Env:GOOS='windows'
$Env:GOARCH='amd64'
go get -u ./...
go mod tidy
go build -a -trimpath -asmflags '-s -w' -ldflags '-s -w -buildid=' -o '..\..\release\v2ray-sn.exe' '.\main'
exit $lastExitCode

View File

@@ -1,15 +0,0 @@
Set-Location (Split-Path $MyInvocation.MyCommand.Path -Parent)
git clone https://github.com/xtls/xray-core -b 'v1.4.5' src
if ( -Not $? ) {
exit $lastExitCode
}
Set-Location src
$Env:CGO_ENABLED='0'
$Env:GOROOT_FINAL='/usr'
$Env:GOOS='windows'
$Env:GOARCH='amd64'
go build -a -trimpath -asmflags '-s -w' -ldflags '-s -w -buildid=' -o '..\..\release\xray.exe' '.\main'
exit $lastExitCode

View File

@@ -1,15 +0,0 @@
Set-Location (Split-Path $MyInvocation.MyCommand.Path -Parent)
git clone https://github.com/teddysun/xray-plugin -b 'v1.4.5' src
if ( -Not $? ) {
exit $lastExitCode
}
Set-Location src
$Env:CGO_ENABLED='0'
$Env:GOROOT_FINAL='/usr'
$Env:GOOS='windows'
$Env:GOARCH='amd64'
go build -a -trimpath -asmflags '-s -w' -ldflags '-s -w' -o '..\..\release\xray-plugin.exe'
exit $lastExitCode

View File

@@ -1,3 +1,4 @@
# `In preparation for 2.0, this repository will be cleared of all 1.0 related releases and code`
<p align="center"><img src="https://github.com/NetchX/Netch/blob/main/Netch/Resources/Netch.png?raw=true" width="128" /></p>
<div align="center">
@@ -27,7 +28,7 @@ Some features may not be implemented in version 1
- [`WireGuard`](https://www.wireguard.com)
- [`Trojan`](https://trojan-gfw.github.io/trojan)
- [`VMess`](https://www.v2fly.org)
- [`VLess`](https://xtls.github.io)
- [`VLESS`](https://xtls.github.io)
### Others
- UDP NAT FullCone (Limited by your server)

View File

@@ -89,10 +89,10 @@ bool SocksHelper::Handshake(SOCKET client)
}
/* Password */
buffer[1 + plength] = 0x00;
buffer[1 + 1 + ulength] = 0x00;
if (plength != 0)
{
buffer[1 + ulength] = plength;
buffer[1 + 1 + ulength] = plength;
memcpy(buffer + 1 + 1 + ulength + 1, tgtPassword.c_str(), plength);
}

Binary file not shown.

197
Storage/i18n/fa-IR Normal file
View File

@@ -0,0 +1,197 @@
{
": ": "",
"Information": "اطلاعات",
"Error": "خطا",
"If this is your first time using this software,\n please check https://netch.org to install supports first,\n or the program may report errors.": "If this is your first time using this software,\n please check https://netch.org to install supports first,\n or the program may report errors.",
"Missing File or runtime components": "فایل یا اجزای زمان اجرا از دست رفته است",
"Please extract all files then run the program!": "لطفا تمام فایل ها را استخراج کنید سپس برنامه را اجرا کنید!",
"Start": "شروع کنید",
"Stop": "متوقف کردن",
"Waiting for command": "منتظر فرمان",
"Starting": "درحال اجرا شدن",
"Start failed": "شروع ناموفق بود",
"Started": "اجرا شد",
"Stopping": "در حال متوقف شدن",
"Stopped": "متوقف شد",
"Starting {0}": "{0}درحال شروع ",
"Starting NatTester": "NAT درحال اجرا تست کننده",
"SetupBypass": "راه اندازی Bypass",
"Test failed": "تست به خطا خورد",
"Starting update subscription": "در حال اجرای بروزرسانی اشتراک پذیری",
"Starting update ACL": "شروع بروزرسانی ACL",
"Subscription updated": "اشتراک به روز شد",
"Register driver": "نصب درایورها",
"Server": "سرور",
"Import Servers From Clipboard": "تنظیمات سرور را از کلیپ بورد وارد کنید",
"Add [{0}] Server": "سرور [{0}] را اضافه کنید",
"Netch is now minimized to the notification bar, double click this icon to restore.": "Netch در نوار اعلان به حداقل رسیده است. برای بازیابی روی این نماد دوبار کلیک کنید.",
"New version available": "نسخه جدید وجود دارد",
"Already latest version": "در حال حاضر آخرین نسخه است",
"New version found failed": "نسخه جدیدی پیدا نشد",
"Mode": "حالت",
"Help": "کمک",
"Check for updates": "به روز رسانی را بررسی کنید",
"Download and install now?": "آیا مطمئن هستید که می خواهید اکنون دانلود و نصب کنید؟",
"Start downloading new version": "در حال دانلود بروزرسانی ها",
"Download update failed": "به روز رسانی نا موفق بود",
"Create Process Mode": "پروفایل جدید",
"Edit Process Mode": "ویرایش نمایه",
"Create Route Table Rule": "قانون جدید جدول لوت",
"Edit Route Table Rule": "قوانین جدول لوت را ویرایش کنید",
"Address": "آدرس سرور",
"Username": "نام کاربری",
"Password": "کلمه عبور",
"User ID": "User ID",
"Alter ID": "Alter ID",
"Transfer Protocol": "پروتکل انتقال",
"Fake Type": "نوع انتقال",
"Host": "میزبان",
"Path": "مسیر",
"QUIC Security": "روش رمزگذاری QUIC",
"QUIC Secret": "کلید رمزگذاری QUIC",
"TLS Secure": "امنیت TLS",
"Use Mux": "استفاده از mux",
"Encrypt Method": "روش رمزگذاری",
"Protocol": "پروتکل",
"Protocol Param": "پارامترهای پروتکل",
"OBFS": "OBFS",
"OBFS Param": "OBFS パラメータ",
"Saved": "ذخیره تکمیل شد",
"Plugin": "پلاگین",
"Plugin Options": "پارامترهای افزونه",
"Subscribe": "اشتراک، ابونمان",
"Manage Subscribe Links": "لینک های اشتراک را مدیریت کنید",
"Update Servers From Subscribe Links": "تنظیمات سرور را از اشتراک به روز کنید",
"Update Servers From Subscribe Links With Proxy": "تنظیمات سرور را از اشتراک با پروکسی به روز کنید",
"No subscription link": "بدون لینک اشتراک",
"Updating {0}": "در حال به روز رسانی {0}",
"Update {1} server(s) from {0}": "سرورهای {1} به روز شده از {0}",
"Update servers error from {0}": "به‌روزرسانی سرور از {0} انجام نشد",
"Confirm deletion?": "آیا مطمئنید که میخواهید حذف کنید؟",
"DeleteServer": "سرور اشتراک را حذف کنید",
"CopyLink": "لینک را کپی کنید",
"Status": "وضعیت",
"Link": "ارتباط دادن",
"Unselect": "لغو انتخاب کنید",
"Options": "گزینه",
"NF Service": "سرویس NF",
"TUN/TAP driver": "TUN/TAP درایور",
"Uninstall {0}": "{0} حذف",
"Uninstalling {0}": "{0} در حال حذف",
"{0} has been uninstalled": "{0} حذف شد",
"Reload Modes": "لیست حالت بارگیری مجدد",
"Modes have been reload": "لیست حالت دوباره بارگیری شد",
"Clean DNS Cache": "کش DNS را پاک کنید",
"DNS cache cleanup succeeded": "کش DNS پاک شد",
"Remove Netch Firewall Rules": "قانون نچ فایروال را حذف کنید",
"Update PAC": "قوانین PAC به روز کردن",
"PAC updated successfully": "PAC به روز شد",
"PAC update failed": "خرابی به روز رسانی PAC",
"Update ACL": "قوانین ACL را به روز کنید",
"Update ACL with proxy": "قوانین ACL را از طریق پروکسی به روز کنید",
"ACL updated successfully": "به روز رسانی ACL کامل شد",
"ACL update failed": "خرابی به‌روزرسانی ACL",
"Open Directory": "پوشه را باز کنید",
"About": "اطلاعات نسخه",
"FAQ": "سوالات متداول",
"Telegram Channel": "کانال تلگرام",
"Sponsor": "حامی",
"Configuration": "تنظیم اطلاعات",
"Please press Stop button first": "لطفا ابتدا روی دکمه توقف کلیک کنید",
"Please select a server first": "لطفا ابتدا یک سرور انتخاب کنید",
"Please select a mode first": "لطفا ابتدا یک حالت را انتخاب کنید",
"Please enter a profile name first": "لطفا ابتدا نام پروفایل خود را وارد کنید",
"No saved profile here. Save a profile first by Ctrl+Click on the button": "هیچ پروفایلی در اینجا ذخیره نشده است. Ctrl + کلیک چپ را فشار دهید تا نمایه ذخیره شود",
"Used": "استفاده شده",
"Test done": "تست تکمیل شد",
"Remark": "Remark",
"Filename": "نام فایل",
"Use Custom Filename": "ذخیره با نام فایل دلخواه ",
"Add": "جدید",
"Scan": "اسکن کنید",
"Save": "نگاه داشتن",
"Modify": "تغییر دادن",
"Select a folder": "پوشه را انتخاب کنید",
"Please enter an process name (xxx.exe)": "نام فرآیند را وارد کنید (xxx.exe)",
"Rule does not conform to C++ regular expression syntax": "قانون با نحو عبارت منظم C++ مطابقت ندارد",
"Scan completed": "اسکن کامل شد",
"Mode added successfully": "حالت جدید تکمیل شد",
"Mode updated successfully": "ویرایش حالت تکمیل شد",
"Unable to add empty rule": "قانون خالی اضافه نمی شود",
"Please enter a mode remark": "لطفا نکات را وارد کنید",
"File already exists.\n Please Change the filename": "فایل ای با همین نام از قبل وجود دارد. لطفاً نام فایل دیگری را برگزینید",
"Please enter a mode filename": "نام حالت را وارد کنید",
"Proxy Rule IPs": "قوانین پروکسی برای آی پی ها",
"Bypass Rule IPs": "آدرس IP را نادیده بگیرید",
"Delete": "حذف",
"Delete or not ? Will clean up the corresponding group of items in the server list": "آیا مطمئن هستید که می خواهید آن را حذف کنید؟ در صورت حذف، سرور مربوطه از لیست حذف خواهد شد",
"Remark can not be empty": "یادداشت نمی تواند خالی باشد",
"Link can not be empty": "لینک نمی تواند خالی باشد",
"Link must start with http:// or https://": "پیوندها باید با http:// یا https:// شروع شوند",
"Settings": "تنظیمات",
"Start when opened": "با شروع برنامه به طور خودکار وصل شوید",
"Minimize when started": "به صورت خودکار هنگام شروع برنامه کمینه کنید",
"Run at startup": "ثبت نام برای راه اندازی",
"Local Port": "شماره پورت محلی",
"Allow other Devices to connect": "اتصال از دستگاه های دیگر را مجاز کنید",
"Netmask": "Netmask",
"Gateway": "Gateway",
"Use Custom DNS": "از DNS سفارشی استفاده کنید",
"Proxy DNS in Proxy Rule IPs Mode": "Proxy DNS in Proxy Rule IPs Mode",
"Use Fake DNS": "از DNS جعلی استفاده کنید",
"Exit when closed": "پس از قطع اتصال، برنامه به طور خودکار خاتمه یابد",
"Stop when exited": "هنگامی که برنامه خارج می شود، اتصال را به طور خودکار قطع کنید",
"Global Bypass IPs": "IP Bypass جهانی",
"Check update when opened": "هنگامی که برنامه شروع به کار می کند، به طور خودکار ارتقاء را بررسی کنید",
"Check Beta update": "به روز رسانی های بتا را بررسی کنید",
"Update Servers when opened": "به روز رسانی سرور در هنگام راه اندازی",
"SS DLL": "SS DLL",
"Modify System DNS": "تغییر DNS سیستم",
"Proxy Protocol": "پروتکل پروکسی",
"DNS Redirector": "DNS فوروارد",
"ICMP Redirector": "ICMP Forward",
"Child Process Handle": "دسته فرآیند کودک",
"ProfileCount": "مقدار پروفایل",
"Delay test after start": "بعد از شروع برنامه تست تاخیر انجام دهید",
"ServerPingType": "روش تست سرعت",
"Detection Tick(sec)": "فاصله تشخیص (ثانیه)",
"STUN Server": "سرور STUN",
"Custom ACL": "قوانین سفارشی ACL",
"Language": "زبان",
"Resolve Server Hostname": "حل نام میزبان سرور",
"FullCone Support (Required Server Xray-core v1.3.0+)": "پشتیبانی از FullCone (نیاز به Xray-core سمت سرور نسخه 1.3.0+)",
"Profile": "پروفایل",
"Profiles": "لیست پروفایل",
"None": "هیچ یک",
"Show": "نمایش دادن",
"Exit": "خروج",
"The {0} port is in use.": "پورت {0} در حال حاضر در حال استفاده است",
"The {0} port is reserved by system.": "{0} برای سیستم رزرو شده است",
"[Web Proxy] Bypass LAN": "[پراکسی وب] آدرس LAN را نادیده بگیرید",
"[Non Web Proxy] Bypass LAN": "[پراکسی غیر وب] آدرس LAN را نادیده بگیرید",
"[TUN/TAP] Bypass LAN": "[TUN/TAP] آدرس LAN را نادیده بگیرید",
"[Web Proxy] Bypass LAN and China": "[پراکسی وب] آدرس های LAN و آدرس های سرزمین اصلی چین را نادیده بگیرید",
"[Non Web Proxy] Bypass LAN and China": "[پراکسی غیر وب] آدرس های LAN و آدرس های سرزمین اصلی چین را نادیده بگیرید",
"[TUN/TAP] Bypass LAN and China": "[TUN/TAP] آدرس های LAN و آدرس های سرزمین اصلی چین را نادیده بگیرید"
}

View File

@@ -2,4 +2,4 @@
install.exe
VRChat.exe
UnityCrashHandler64.exe
youtube-dl.exe
yt-dlp.exe

View File

@@ -1,5 +1,9 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
namespace Tests
{
@@ -11,5 +15,32 @@ namespace Tests
{
Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory);
}
[TestMethod]
public void VLESS_UUID5()
{
//https://github.com/XTLS/Xray-core/discussions/715
byte[] bytes = new byte[16];
var str = "example";
SHA1 sha1 = new SHA1CryptoServiceProvider();
byte[] StrBytes = Encoding.UTF8.GetBytes(str);
List<byte> byteSource = new List<byte>();
byteSource.AddRange(bytes);
byteSource.AddRange(StrBytes);
byte[] Sha1Bytes = sha1.ComputeHash(byteSource.ToArray()).Skip(0).Take(16).ToArray();
sha1.Dispose();
//UUIDv5: [254 181 68 49 48 27 82 187 166 221 225 233 62 129 187 158]
Sha1Bytes[6] = (byte)((Sha1Bytes[6] & 0x0f) | (5 << 4));
Sha1Bytes[8] = (byte)(Sha1Bytes[8] & (0xff >> 2) | (0x02 << 6));
var result = BitConverter.ToString(Sha1Bytes).Replace("-", "").Insert(8, "-").Insert(13, "-").Insert(18, "-").Insert(23, "-").ToLower();
Console.WriteLine(result);
//UUIDv5: feb54431-301b-52bb-a6dd-e1e93e81bb9e
}
}
}

View File

@@ -9,10 +9,10 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
<PackageReference Include="coverlet.collector" Version="3.1.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
<PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
<PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
<PackageReference Include="coverlet.collector" Version="3.2.0" />
</ItemGroup>
</Project>

View File

@@ -36,7 +36,8 @@ cp -Recurse -Force '..\Storage\mode' '.' | Out-Null
cp -Recurse -Force '..\Storage\stun.txt' 'bin' | Out-Null
cp -Recurse -Force '..\Storage\nfdriver.sys' 'bin' | Out-Null
cp -Recurse -Force '..\Storage\aiodns.conf' 'bin' | Out-Null
cp -Recurse -Force '..\Storage\GeoLite2-Country.mmdb' 'bin' | Out-Null
Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country.mmdb' -OutFile 'bin\GeoLite2-Country.mmdb'
#cp -Recurse -Force '..\Storage\GeoLite2-Country.mmdb' 'bin' | Out-Null
cp -Recurse -Force '..\Storage\tun2socks.bin' 'bin' | Out-Null
cp -Recurse -Force '..\Storage\README.md' 'bin' | Out-Null
Pop-Location
@@ -102,4 +103,4 @@ if ( $Configuration.Equals('Release') ) {
}
Pop-Location
exit 0
exit 0