diff --git a/v2rayN/v2rayN/Handler/ProxySetting.cs b/v2rayN/v2rayN/Handler/ProxySetting.cs deleted file mode 100644 index ec43bce1..00000000 --- a/v2rayN/v2rayN/Handler/ProxySetting.cs +++ /dev/null @@ -1,190 +0,0 @@ -using System; -using Microsoft.Win32; -using System.Runtime.InteropServices; - -namespace v2rayN.Handler -{ - /// - /// 设置系统代理类 - /// - class ProxySetting - { - public static bool UnsetProxy() - { - return SetProxy(null, null); - } - public static bool SetProxy(string strProxy) - { - return SetProxy(strProxy, null); - } - - public static bool SetProxy(string strProxy, string exceptions) - { - InternetPerConnOptionList list = new InternetPerConnOptionList(); - - int optionCount = string.IsNullOrEmpty(strProxy) ? 1 : (string.IsNullOrEmpty(exceptions) ? 2 : 3); - InternetConnectionOption[] options = new InternetConnectionOption[optionCount]; - // USE a proxy server ... - options[0].m_Option = PerConnOption.INTERNET_PER_CONN_FLAGS; - options[0].m_Value.m_Int = (int)((optionCount < 2) ? PerConnFlags.PROXY_TYPE_DIRECT : (PerConnFlags.PROXY_TYPE_DIRECT | PerConnFlags.PROXY_TYPE_PROXY)); - // use THIS proxy server - if (optionCount > 1) - { - options[1].m_Option = PerConnOption.INTERNET_PER_CONN_PROXY_SERVER; - options[1].m_Value.m_StringPtr = Marshal.StringToHGlobalAuto(strProxy); - // except for these addresses ... - if (optionCount > 2) - { - options[2].m_Option = PerConnOption.INTERNET_PER_CONN_PROXY_BYPASS; - options[2].m_Value.m_StringPtr = Marshal.StringToHGlobalAuto(exceptions); - } - } - - // default stuff - list.dwSize = Marshal.SizeOf(list); - list.szConnection = IntPtr.Zero; - list.dwOptionCount = options.Length; - list.dwOptionError = 0; - - - int optSize = Marshal.SizeOf(typeof(InternetConnectionOption)); - // make a pointer out of all that ... - IntPtr optionsPtr = Marshal.AllocCoTaskMem(optSize * options.Length); - // copy the array over into that spot in memory ... - for (int i = 0; i < options.Length; ++i) - { - IntPtr opt = new IntPtr(optionsPtr.ToInt32() + (i * optSize)); - Marshal.StructureToPtr(options[i], opt, false); - } - - list.options = optionsPtr; - - // and then make a pointer out of the whole list - IntPtr ipcoListPtr = Marshal.AllocCoTaskMem((Int32)list.dwSize); - Marshal.StructureToPtr(list, ipcoListPtr, false); - - // and finally, call the API method! - int returnvalue = NativeMethods.InternetSetOption(IntPtr.Zero, - InternetOption.INTERNET_OPTION_PER_CONNECTION_OPTION, - ipcoListPtr, list.dwSize) ? -1 : 0; - if (returnvalue == 0) - { // get the error codes, they might be helpful - returnvalue = Marshal.GetLastWin32Error(); - } - // FREE the data ASAP - Marshal.FreeCoTaskMem(optionsPtr); - Marshal.FreeCoTaskMem(ipcoListPtr); - if (returnvalue > 0) - { // throw the error codes, they might be helpful - //throw new Win32Exception(Marshal.GetLastWin32Error()); - } - - return (returnvalue < 0); - } - - - #region WinInet structures - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] - public struct InternetPerConnOptionList - { - public int dwSize; // size of the INTERNET_PER_CONN_OPTION_LIST struct - public IntPtr szConnection; // connection name to set/query options - public int dwOptionCount; // number of options to set/query - public int dwOptionError; // on error, which option failed - //[MarshalAs(UnmanagedType.)] - public IntPtr options; - }; - - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] - public struct InternetConnectionOption - { - static readonly int Size; - public PerConnOption m_Option; - public InternetConnectionOptionValue m_Value; - static InternetConnectionOption() - { - InternetConnectionOption.Size = Marshal.SizeOf(typeof(InternetConnectionOption)); - } - - // Nested Types - [StructLayout(LayoutKind.Explicit)] - public struct InternetConnectionOptionValue - { - // Fields - [FieldOffset(0)] - public System.Runtime.InteropServices.ComTypes.FILETIME m_FileTime; - [FieldOffset(0)] - public int m_Int; - [FieldOffset(0)] - public IntPtr m_StringPtr; - } - } - #endregion - - #region WinInet enums - // - // options manifests for Internet{Query|Set}Option - // - public enum InternetOption : uint - { - INTERNET_OPTION_PER_CONNECTION_OPTION = 75 - } - - // - // Options used in INTERNET_PER_CONN_OPTON struct - // - public enum PerConnOption - { - INTERNET_PER_CONN_FLAGS = 1, // Sets or retrieves the connection type. The Value member will contain one or more of the values from PerConnFlags - INTERNET_PER_CONN_PROXY_SERVER = 2, // Sets or retrieves a string containing the proxy servers. - INTERNET_PER_CONN_PROXY_BYPASS = 3, // Sets or retrieves a string containing the URLs that do not use the proxy server. - INTERNET_PER_CONN_AUTOCONFIG_URL = 4//, // Sets or retrieves a string containing the URL to the automatic configuration script. - - } - - // - // PER_CONN_FLAGS - // - [Flags] - public enum PerConnFlags - { - PROXY_TYPE_DIRECT = 0x00000001, // direct to net - PROXY_TYPE_PROXY = 0x00000002, // via named proxy - PROXY_TYPE_AUTO_PROXY_URL = 0x00000004, // autoproxy URL - PROXY_TYPE_AUTO_DETECT = 0x00000008 // use autoproxy detection - } - #endregion - - internal static class NativeMethods - { - [DllImport("WinInet.dll", SetLastError = true, CharSet = CharSet.Auto)] - [return: MarshalAs(UnmanagedType.Bool)] - public static extern bool InternetSetOption(IntPtr hInternet, InternetOption dwOption, IntPtr lpBuffer, int dwBufferLength); - } - - //判断是否使用代理 - public static bool UsedProxy() - { - RegistryKey rk = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Internet Settings", true); - if (rk.GetValue("ProxyEnable").ToString() == "1") - { - rk.Close(); - return true; - } - else - { - rk.Close(); - return false; - } - } - //获得代理的IP和端口 - public static string GetProxyProxyServer() - { - RegistryKey rk = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Internet Settings", true); - string ProxyServer = rk.GetValue("ProxyServer").ToString(); - rk.Close(); - return ProxyServer; - - } - } -} diff --git a/v2rayN/v2rayN/HttpProxyHandler/SysProxyHandle.cs b/v2rayN/v2rayN/HttpProxyHandler/SysProxyHandle.cs deleted file mode 100644 index df06f21a..00000000 --- a/v2rayN/v2rayN/HttpProxyHandler/SysProxyHandle.cs +++ /dev/null @@ -1,185 +0,0 @@ -using Newtonsoft.Json; -using System; -using System.Diagnostics; -using System.IO; -using System.Text; -using v2rayN.Base; -using v2rayN.Mode; -using v2rayN.Properties; -using v2rayN.Tool; - -namespace v2rayN.HttpProxyHandler -{ - class SysProxyHandle - { - private const string _userWininetConfigFile = "user-wininet.json"; - - private static string _queryStr; - - // In general, this won't change - // format: - // - // - // - // - private static SysproxyConfig _userSettings = null; - - enum RET_ERRORS : int - { - RET_NO_ERROR = 0, - INVALID_FORMAT = 1, - NO_PERMISSION = 2, - SYSCALL_FAILED = 3, - NO_MEMORY = 4, - INVAILD_OPTION_COUNT = 5, - }; - - static SysProxyHandle() - { - try - { - FileManager.UncompressFile(Utils.GetTempPath("sysproxy.exe"), - Environment.Is64BitOperatingSystem ? Resources.sysproxy64_exe : Resources.sysproxy_exe); - } - catch (IOException ex) - { - Utils.SaveLog(ex.Message, ex); - - } - } - - public static void SetIEProxy(bool enable, bool global, string proxyServer, string pacURL) - { - //Read(); - - //if (!_userSettings.UserSettingsRecorded) - //{ - // // record user settings - // ExecSysproxy("query"); - // ParseQueryStr(_queryStr); - //} - - string arguments; - if (enable) - { - arguments = global - ? string.Format( - //"global {0} ;localhost;127.*;10.*;172.16.*;172.17.*;172.18.*;172.19.*;172.20.*;172.21.*;172.22.*;172.23.*;172.24.*;172.25.*;172.26.*;172.27.*;172.28.*;172.29.*;172.30.*;172.31.*;172.32.*;192.168.*", - "global {0} ;localhost;127.*;10.*;172.16.*;172.17.*;172.18.*;172.19.*;172.20.*;172.21.*;172.22.*;172.23.*;172.24.*;172.25.*;172.26.*;172.27.*;172.28.*;172.29.*;172.30.*;172.31.*;172.32.*", - proxyServer) - : string.Format("pac {0}", pacURL); - } - else - { - // restore user settings - //var flags = _userSettings.Flags; - //var proxy_server = _userSettings.ProxyServer ?? "-"; - //var bypass_list = _userSettings.BypassList ?? "-"; - //var pac_url = _userSettings.PacUrl ?? "-"; - ////arguments = string.Format("set {0} {1} {2} {3}", flags, proxy_server, bypass_list, pac_url); - //set null settings - arguments = string.Format("set {0} {1} {2} {3}", 1, "-", "", @"http://127.0.0.1"); - - // have to get new settings - //_userSettings.UserSettingsRecorded = false; - } - - //Save(); - ExecSysproxy(arguments); - } - - private static void ExecSysproxy(string arguments) - { - using (var process = new Process()) - { - // Configure the process using the StartInfo properties. - process.StartInfo.FileName = Utils.GetTempPath("sysproxy.exe"); - process.StartInfo.Arguments = arguments; - process.StartInfo.WorkingDirectory = Utils.GetTempPath(); - process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; - process.StartInfo.UseShellExecute = false; - process.StartInfo.RedirectStandardError = true; - process.StartInfo.RedirectStandardOutput = true; - - // Need to provide encoding info, or output/error strings we got will be wrong. - process.StartInfo.StandardOutputEncoding = Encoding.Unicode; - process.StartInfo.StandardErrorEncoding = Encoding.Unicode; - - process.StartInfo.CreateNoWindow = true; - process.Start(); - - var stderr = process.StandardError.ReadToEnd(); - var stdout = process.StandardOutput.ReadToEnd(); - - process.WaitForExit(); - - var exitCode = process.ExitCode; - if (exitCode != (int)RET_ERRORS.RET_NO_ERROR) - { - throw new Exception(stderr); - } - - if (arguments == "query") - { - if (stdout.IsNullOrWhiteSpace() || stdout.IsNullOrEmpty()) - { - // we cannot get user settings - throw new Exception("failed to query wininet settings"); - } - _queryStr = stdout; - } - } - } - - private static void Save() - { - try - { - using (StreamWriter sw = new StreamWriter(File.Open(Utils.GetPath(_userWininetConfigFile), FileMode.Create))) - { - string jsonString = JsonConvert.SerializeObject(_userSettings, Formatting.Indented); - sw.Write(jsonString); - sw.Flush(); - } - } - catch (IOException ex) - { - Utils.SaveLog(ex.Message, ex); - } - } - - private static void Read() - { - try - { - string configContent = File.ReadAllText(Utils.GetPath(_userWininetConfigFile)); - _userSettings = JsonConvert.DeserializeObject(configContent); - } - catch (Exception ex) - { - Utils.SaveLog(ex.Message, ex); - // Suppress all exceptions. finally block will initialize new user config settings. - } - finally - { - if (_userSettings == null) _userSettings = new SysproxyConfig(); - } - } - - private static void ParseQueryStr(string str) - { - string[] userSettingsArr = str.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - _userSettings.Flags = userSettingsArr[0]; - - // handle output from WinINET - if (userSettingsArr[1] == "(null)") _userSettings.ProxyServer = null; - else _userSettings.ProxyServer = userSettingsArr[1]; - if (userSettingsArr[2] == "(null)") _userSettings.BypassList = null; - else _userSettings.BypassList = userSettingsArr[2]; - if (userSettingsArr[3] == "(null)") _userSettings.PacUrl = null; - else _userSettings.PacUrl = userSettingsArr[3]; - - _userSettings.UserSettingsRecorded = true; - } - } -} diff --git a/v2rayN/v2rayN/Resources/grpc_csharp_ext.x64.dll.gz b/v2rayN/v2rayN/Resources/grpc_csharp_ext.x64.dll.gz deleted file mode 100644 index b69a16bd..00000000 Binary files a/v2rayN/v2rayN/Resources/grpc_csharp_ext.x64.dll.gz and /dev/null differ diff --git a/v2rayN/v2rayN/Resources/grpc_csharp_ext.x86.dll.gz b/v2rayN/v2rayN/Resources/grpc_csharp_ext.x86.dll.gz deleted file mode 100644 index d56025ca..00000000 Binary files a/v2rayN/v2rayN/Resources/grpc_csharp_ext.x86.dll.gz and /dev/null differ diff --git a/v2rayN/v2rayN/Resources/sysproxy.exe.gz b/v2rayN/v2rayN/Resources/sysproxy.exe.gz deleted file mode 100644 index 980d304b..00000000 Binary files a/v2rayN/v2rayN/Resources/sysproxy.exe.gz and /dev/null differ diff --git a/v2rayN/v2rayN/Resources/sysproxy64.exe.gz b/v2rayN/v2rayN/Resources/sysproxy64.exe.gz deleted file mode 100644 index c5ff36af..00000000 Binary files a/v2rayN/v2rayN/Resources/sysproxy64.exe.gz and /dev/null differ