initial commit
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Socks5Server
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
#nullable disable
|
||||
public class Socks5Server
|
||||
{
|
||||
private TcpListener listener;
|
||||
private bool running;
|
||||
|
||||
public async Task Start(int port)
|
||||
{
|
||||
this.listener = new TcpListener(IPAddress.Any, port);
|
||||
this.listener.Start();
|
||||
this.running = true;
|
||||
while (this.running)
|
||||
this.HandleClient(await this.listener.AcceptTcpClientAsync());
|
||||
}
|
||||
|
||||
public void Stop()
|
||||
{
|
||||
this.running = false;
|
||||
this.listener?.Stop();
|
||||
}
|
||||
|
||||
private async Task HandleClient(TcpClient client)
|
||||
{
|
||||
NetworkStream stream = client.GetStream();
|
||||
try
|
||||
{
|
||||
byte[] hello = new byte[2];
|
||||
int num1 = await stream.ReadAsync(hello, 0, hello.Length);
|
||||
byte[] buffer1 = new byte[(int) hello[1]];
|
||||
int num2 = await stream.ReadAsync(buffer1, 0, buffer1.Length);
|
||||
byte[] buffer2 = new byte[2]{ (byte) 5, (byte) 0 };
|
||||
await stream.WriteAsync(buffer2, 0, buffer2.Length);
|
||||
byte[] header = new byte[4];
|
||||
int num3 = await stream.ReadAsync(header, 0, header.Length);
|
||||
string host = "";
|
||||
if (header[3] == (byte) 3)
|
||||
{
|
||||
byte[] hostBytes = new byte[stream.ReadByte()];
|
||||
int num4 = await stream.ReadAsync(hostBytes, 0, hostBytes.Length);
|
||||
host = Encoding.ASCII.GetString(hostBytes);
|
||||
hostBytes = (byte[]) null;
|
||||
}
|
||||
byte[] portBytes = new byte[2];
|
||||
int num5 = await stream.ReadAsync(portBytes, 0, portBytes.Length);
|
||||
int port = (int) portBytes[0] << 8 | (int) portBytes[1];
|
||||
TcpClient remote = new TcpClient();
|
||||
await remote.ConnectAsync(host, port);
|
||||
byte[] numArray = new byte[10];
|
||||
numArray[0] = (byte) 5;
|
||||
numArray[3] = (byte) 1;
|
||||
byte[] buffer3 = numArray;
|
||||
await stream.WriteAsync(buffer3, 0, buffer3.Length);
|
||||
NetworkStream stream1 = remote.GetStream();
|
||||
stream1.CopyToAsync((Stream) stream);
|
||||
stream.CopyToAsync((Stream) stream1);
|
||||
hello = (byte[]) null;
|
||||
header = (byte[]) null;
|
||||
host = (string) null;
|
||||
portBytes = (byte[]) null;
|
||||
remote = (TcpClient) null;
|
||||
stream = (NetworkStream) null;
|
||||
}
|
||||
catch
|
||||
{
|
||||
client.Close();
|
||||
stream = (NetworkStream) null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user