Files
2025-02-04 00:55:10 +01:00

50 lines
2.2 KiB
C#

using System;
using System.Reflection;
using Microsoft.Win32;
[assembly: AssemblyCompany("Ivasoft s.r.o.")]
[assembly: AssemblyProduct("VisualStudioMock")]
[assembly: AssemblyTitle("Visual Studio Mock for EAZfuscator")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace VisualStudioMock
{
public class Program
{
[STAThread]
public static void Main(string[] args)
{
AppDomain.CurrentDomain.UnhandledException += (object sender, UnhandledExceptionEventArgs e) => Console.WriteLine("Exception: " + e.ExceptionObject);
if (args.Length == 1)
switch (args[0]) {
case "/reg":
using (RegistryKey regBase = RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry64))
using (RegistryKey regCoClass = regBase.CreateSubKey("CLSID\\{177F0C4A-1CD3-4DE7-A32C-71DBBB9FA36D}\\InprocServer32"))
{
regCoClass.SetValue("", "mscoree.dll");
regCoClass.SetValue("Class", "VisualStudioMock.SetupConfiguration");
regCoClass.SetValue("Assembly", "VisualStudioMock, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null");
regCoClass.SetValue("RuntimeVersion", "v4.0.30319");
regCoClass.SetValue("ThreadingModel", "Apartment");
regCoClass.SetValue("CodeBase", Assembly.GetExecutingAssembly().Location);
}
Console.WriteLine("Visual Studio Mock registered.");
return;
case "/unreg":
using (RegistryKey regBase = RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry64))
{
regBase.DeleteSubKey("CLSID\\{177F0C4A-1CD3-4DE7-A32C-71DBBB9FA36D}\\InprocServer32", throwOnMissingSubKey: false);
regBase.DeleteSubKey("CLSID\\{177F0C4A-1CD3-4DE7-A32C-71DBBB9FA36D}\\LocalServer32", throwOnMissingSubKey: false);
regBase.DeleteSubKey("CLSID\\{177F0C4A-1CD3-4DE7-A32C-71DBBB9FA36D}", throwOnMissingSubKey: false);
}
Console.WriteLine("Visual Studio Mock unregistered.");
return;
}
Console.WriteLine("Usage: VisualStudioMock.exe [ /reg | /unreg ]");
return;
}
}
}