172 lines
5.6 KiB
C#
172 lines
5.6 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Net;
|
|
using System.Text;
|
|
using BestHTTP.Authentication;
|
|
using BestHTTP.Extensions;
|
|
using BestHTTP.Logger;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP
|
|
{
|
|
// Token: 0x020018AC RID: 6316
|
|
[Token(Token = "0x20018AC")]
|
|
public sealed class SOCKSProxy : Proxy
|
|
{
|
|
// Token: 0x06009497 RID: 38039 RVA: 0x001E8490 File Offset: 0x001E6690
|
|
[Token(Token = "0x6009497")]
|
|
[Address(RVA = "0x4089A0", Offset = "0x4077A0", VA = "0x1804089A0")]
|
|
public SOCKSProxy(Uri address, Credentials credentials)
|
|
{
|
|
this.<Address>k__BackingField = address;
|
|
this.<Credentials>k__BackingField = credentials;
|
|
}
|
|
|
|
// Token: 0x06009498 RID: 38040 RVA: 0x001E84B4 File Offset: 0x001E66B4
|
|
[Token(Token = "0x6009498")]
|
|
[Address(RVA = "0x2654AF0", Offset = "0x26538F0", VA = "0x182654AF0", Slot = "5")]
|
|
internal override string GetRequestPath(Uri uri)
|
|
{
|
|
return uri.GetRequestPathAndQueryURL();
|
|
}
|
|
|
|
// Token: 0x06009499 RID: 38041 RVA: 0x001E84C8 File Offset: 0x001E66C8
|
|
[Token(Token = "0x6009499")]
|
|
[Address(RVA = "0x26539D0", Offset = "0x26527D0", VA = "0x1826539D0", Slot = "4")]
|
|
internal override void Connect(Stream stream, HTTPRequest request)
|
|
{
|
|
byte[] array;
|
|
for (;;)
|
|
{
|
|
array = new byte[1024];
|
|
array[0] = (byte)((ulong)5L);
|
|
if (HTTPManager.Logger == 0)
|
|
{
|
|
int num = 0;
|
|
ILogger logger = HTTPManager.Logger;
|
|
string text = num.ToString();
|
|
string text3;
|
|
string text2 = string.Format("Sending method negotiation - count: {0} buffer: {1} ", text, text3);
|
|
}
|
|
int num2 = stream.ReadByte();
|
|
if (HTTPManager.Logger == 0)
|
|
{
|
|
int num3 = 0;
|
|
ILogger logger2 = HTTPManager.Logger;
|
|
string text4 = num3.ToString();
|
|
string text6;
|
|
string text5 = string.Format("Negotiation response - count: {0} buffer: {1} ", text4, text6);
|
|
}
|
|
int length = array.Length;
|
|
byte b = array[0];
|
|
byte b2 = array[0];
|
|
ILogger logger3 = HTTPManager.Logger;
|
|
if (typeof(ILogger).TypeHandle == 0)
|
|
{
|
|
goto IL_186;
|
|
}
|
|
if (typeof(ILogger).TypeHandle != 0 && (typeof(ILogger).TypeHandle == (ulong)1L || typeof(ILogger).TypeHandle != (ulong)255L))
|
|
{
|
|
Credentials <Credentials>k__BackingField = this.<Credentials>k__BackingField;
|
|
string <UserName>k__BackingField = <Credentials>k__BackingField.<UserName>k__BackingField;
|
|
string <Password>k__BackingField = <Credentials>k__BackingField.<Password>k__BackingField;
|
|
ILogger logger4 = HTTPManager.Logger;
|
|
array[0] = (byte)((ulong)1L);
|
|
Credentials <Credentials>k__BackingField2 = this.<Credentials>k__BackingField;
|
|
int num4 = 0;
|
|
Credentials <Credentials>k__BackingField3 = this.<Credentials>k__BackingField;
|
|
if (HTTPManager.Logger == 0)
|
|
{
|
|
int num5 = 0;
|
|
ILogger logger5 = HTTPManager.Logger;
|
|
string text7 = num5.ToString();
|
|
string text9;
|
|
string text8 = string.Format("Sending username and password sub-negotiation - count: {0} buffer: {1} ", text7, text9);
|
|
}
|
|
int num6 = stream.ReadByte();
|
|
if (HTTPManager.Logger == 0)
|
|
{
|
|
int num7 = 0;
|
|
ILogger logger6 = HTTPManager.Logger;
|
|
string text10 = num7.ToString();
|
|
string text12;
|
|
string text11 = string.Format("Username and password sub-negotiation response - count: {0} buffer: {1} ", text10, text12);
|
|
}
|
|
if ("{il2cpp array field local5->}" == num4)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
ILogger logger7 = HTTPManager.Logger;
|
|
IL_186:
|
|
array[0] = (byte)((ulong)5L);
|
|
Uri currentUri = request.CurrentUri;
|
|
if (!currentUri.IsHostIsAnIPAddress())
|
|
{
|
|
currentUri.m_Syntax = (ulong)3L;
|
|
string host = request.CurrentUri.Host;
|
|
}
|
|
string host2 = request.CurrentUri.Host;
|
|
bool flag = Extensions.IsIpV4AddressValid(host2);
|
|
int length2 = IPAddress.Parse(request.CurrentUri.Host).GetAddressBytes().Length;
|
|
int port = request.CurrentUri.Port;
|
|
int port2 = request.CurrentUri.Port;
|
|
if (HTTPManager.Logger == 0)
|
|
{
|
|
int num8 = 0;
|
|
ILogger logger8 = HTTPManager.Logger;
|
|
string text13 = num8.ToString();
|
|
string text15;
|
|
string text14 = string.Format("Sending connect request - count: {0} buffer: {1} ", text13, text15);
|
|
}
|
|
int num9 = stream.ReadByte();
|
|
if (HTTPManager.Logger == 0)
|
|
{
|
|
int num10 = 0;
|
|
ILogger logger9 = HTTPManager.Logger;
|
|
string text16 = num10.ToString();
|
|
string text18;
|
|
string text17 = string.Format("Connect response - count: {0} buffer: {1} ", text16, text18);
|
|
}
|
|
int length3 = array.Length;
|
|
byte b3 = array[0];
|
|
ILogger logger10 = HTTPManager.Logger;
|
|
}
|
|
|
|
// Token: 0x0600949A RID: 38042 RVA: 0x001E8768 File Offset: 0x001E6968
|
|
[Token(Token = "0x600949A")]
|
|
[Address(RVA = "0x2654BA0", Offset = "0x26539A0", VA = "0x182654BA0")]
|
|
private void WriteString(byte[] buffer, ref int count, string str)
|
|
{
|
|
Encoding utf = Encoding.UTF8;
|
|
count.m_value = utf;
|
|
}
|
|
|
|
// Token: 0x0600949B RID: 38043 RVA: 0x001E878C File Offset: 0x001E698C
|
|
[Token(Token = "0x600949B")]
|
|
[Address(RVA = "0x2654B50", Offset = "0x2653950", VA = "0x182654B50")]
|
|
private void WriteBytes(byte[] buffer, ref int count, byte[] bytes)
|
|
{
|
|
int length = bytes.Length;
|
|
int length2 = bytes.Length;
|
|
}
|
|
|
|
// Token: 0x0600949C RID: 38044 RVA: 0x001E87B0 File Offset: 0x001E69B0
|
|
[Token(Token = "0x600949C")]
|
|
[Address(RVA = "0x26538E0", Offset = "0x26526E0", VA = "0x1826538E0")]
|
|
private string BufferToHexStr(byte[] buffer, int count)
|
|
{
|
|
int num = 0;
|
|
if (count > 0)
|
|
{
|
|
StringBuilder stringBuilder2;
|
|
string text;
|
|
StringBuilder stringBuilder = stringBuilder2.AppendFormat("0x{0} ", text);
|
|
num++;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
}
|
|
}
|