⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socks5proxydetectprocedure.cs

📁 破解的飞信源代码
💻 CS
字号:
namespace Imps.Client.CommLayer.NetworkDetect
{
    using Imps.Client.CommLayer.SocksSipConnection;
    using System;
    using System.Runtime.InteropServices;

    internal sealed class Socks5ProxyDetectProcedure : SocksProxyDetectProcedure
    {
        public Socks5ProxyDetectProcedure(string proxyUrl, int proxyPort, string userName, string passWord, string dstUrl, int dstPort) : base(proxyUrl, proxyPort, userName, passWord, dstUrl, dstPort)
        {
        }

        public override bool Authenticate(out SocksMessage Msg)
        {
            try
            {
                base.client.Send(new PasswordMethodSocks5Message(base._userName, base._passWord).ToBinary());
                if (base.client.Receive(base.buffer) == 0)
                {
                    Msg = null;
                    return false;
                }
                Msg = ReplyPasswordMethodSocks5Message.Parse(base.buffer);
                return true;
            }
            catch
            {
                Msg = null;
                return false;
            }
        }

        public override bool BindToServer(out SocksMessage Msg)
        {
            try
            {
                base.client.Send(new ConnectToServerSocks5Message(base._dstUrl, base._dstPort).ToBinary());
                if (base.client.Receive(base.buffer) == 0)
                {
                    Msg = null;
                    return false;
                }
                Msg = ReplyRequirmentSocks5Message.Parse(base.buffer);
                return true;
            }
            catch
            {
                Msg = null;
                return false;
            }
        }

        public override bool QueryAuthMethod(out SocksMessage Msg)
        {
            try
            {
                QueryMethodSocks5Message message = null;
                if (base._userName.Length > 0)
                {
                    SocksMethod[] methods = new SocksMethod[2];
                    methods[1] = SocksMethod.Password;
                    message = new QueryMethodSocks5Message(methods);
                }
                else
                {
                    SocksMethod[] methodArray2 = new SocksMethod[1];
                    message = new QueryMethodSocks5Message(methodArray2);
                }
                base.client.Send(message.ToBinary());
                if (base.client.Receive(base.buffer) == 0)
                {
                    Msg = null;
                    return false;
                }
                Msg = ReplyQueryMethodSocks5Message.Parse(base.buffer);
                return true;
            }
            catch
            {
                Msg = null;
                return false;
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -