هل يمكن تعديل البيانات في الملف لتعمل كاتطبيق ويندوز محمول بدل وحدة تحكم وتعديل تشغيل التطبيق إجباري في التشغيل العادي وليس تشغيل كامسؤول
كود :
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Threading;
namespace LoaderCrypto
{
// Token: 0x02000002 RID: 2
internal class Program
{
// Token: 0x06000001 RID: 1 RVA: 0x00002048 File Offset: 0x00000248
[Obfuscation(Feature = "virtualization", Exclude = false)]
private static void Main(string[] args)
{
string lpApplicationName = "mmoqry.exe";
Program.PROCESS_INFORMATION process_INFORMATION = default(Program.PROCESS_INFORMATION);
Program.STARTUPINFO startupinfo = default(Program.STARTUPINFO);
Program.SECURITY_ATTRIBUTES structure = default(Program.SECURITY_ATTRIBUTES);
Program.SECURITY_ATTRIBUTES structure2 = default(Program.SECURITY_ATTRIBUTES);
structure.nLength = Marshal.SizeOf<Program.SECURITY_ATTRIBUTES>(structure);
structure2.nLength = Marshal.SizeOf<Program.SECURITY_ATTRIBUTES>(structure2);
IntPtr hProcess = IntPtr.Zero;
bool flag = args.Length == 1;
if (flag)
{
bool flag2 = args[0].ToLower(CultureInfo.InvariantCulture).IndexOf("window", StringComparison.Ordinal) >= 0;
if (flag2)
{
IntPtr intPtr = IntPtr.Zero;
IntPtr zero = IntPtr.Zero;
while (intPtr == IntPtr.Zero)
{
intPtr = Program.NativeMethods.FindWindow(null, "mmoqry");
Program.NativeMethods.GetWindowThreadProcessId(intPtr, out zero);
Thread.Sleep(200);
}
hProcess = Program.NativeMethods.OpenProcess(2035711U, 1, (uint)((int)zero));
bool flag3 = Program.PatchCrypto(hProcess);
if (flag3)
{
Console.WriteLine("Success!");
Thread.Sleep(1000);
}
}
bool flag4 = args[0].ToLower(CultureInfo.InvariantCulture).IndexOf("process", StringComparison.Ordinal) >= 0;
if (flag4)
{
IntPtr zero2 = IntPtr.Zero;
IntPtr zero3 = IntPtr.Zero;
int num = 0;
while (num == 0)
{
num = Program.GetProcessId("mmoqry");
Thread.Sleep(200);
}
hProcess = Program.NativeMethods.OpenProcess(2035711U, 1, (uint)num);
bool flag5 = Program.PatchCrypto(hProcess);
if (flag5)
{
Console.WriteLine("Success!");
Thread.Sleep(1000);
}
}
else
{
Console.WriteLine("Unknown command line option!");
Thread.Sleep(1000);
}
}
else
{
bool flag6 = Program.CreateProcess(lpApplicationName, null, ref structure, ref structure2, false, 0U, IntPtr.Zero, null, ref startupinfo, out process_INFORMATION);
if (flag6)
{
Thread.Sleep(200);
hProcess = Program.OpenProcess(2035711U, 1, process_INFORMATION.dwProcessId);
bool flag7 = Program.PatchCrypto(hProcess);
if (flag7)
{
Console.WriteLine("Success!");
Thread.Sleep(1000);
}
}
else
{
Console.WriteLine("FAILED!");
Thread.Sleep(1000);
}
}
}