// Decompiled with JetBrains decompiler // Type: HybridService.ServiceInstaller // Assembly: AutoKMS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null // MVID: D1CED9E3-1FC7-49B8-B3AC-44976AB7F6E4 // Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00000-msil\HackTool.Win32.KMSAuto.i-f317ba4d4051fad64a0aa45b587fa3dcea795bac30acec2872779abe31a07cbe.exe using System; using System.Runtime.InteropServices; namespace HybridService { public class ServiceInstaller { [DllImport("advapi32.dll")] private static extern IntPtr OpenSCManager( string lpMachineName, string lpSCDB, int scParameter); [DllImport("Advapi32.dll")] private static extern IntPtr CreateService( IntPtr SC_HANDLE, string lpSvcName, string lpDisplayName, int dwDesiredAccess, int dwServiceType, int dwStartType, int dwErrorControl, string lpPathName, string lpLoadOrderGroup, int lpdwTagId, string lpDependencies, string lpServiceStartName, string lpPassword); [DllImport("advapi32.dll")] private static extern void CloseServiceHandle(IntPtr SCHANDLE); [DllImport("advapi32.dll")] private static extern int StartService( IntPtr SVHANDLE, int dwNumServiceArgs, string lpServiceArgVectors); [DllImport("advapi32.dll", SetLastError = true)] private static extern IntPtr OpenService( IntPtr SCHANDLE, string lpSvcName, int dwNumServiceArgs); [DllImport("advapi32.dll")] private static extern int DeleteService(IntPtr SVHANDLE); [DllImport("kernel32.dll")] private static extern int GetLastError(); [DllImport("Kernel32")] private static extern bool CloseHandle(IntPtr handle); public static bool InstallService( string svcPath, string svcName, string svcDispName, bool autoStart, bool startNow) { int scParameter = 2; int dwServiceType = 16; int num1 = 3; int dwErrorControl = 1; int dwDesiredAccess = 983040 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256; int num2 = 2; try { int dwStartType = num2; if (!autoStart) dwStartType = num1; IntPtr num3 = ServiceInstaller.OpenSCManager((string) null, (string) null, scParameter); if (num3.ToInt32() == 0) return false; IntPtr service = ServiceInstaller.CreateService(num3, svcName, svcDispName, dwDesiredAccess, dwServiceType, dwStartType, dwErrorControl, svcPath, (string) null, 0, (string) null, (string) null, (string) null); if (service.ToInt32() == 0) { ServiceInstaller.CloseServiceHandle(num3); return false; } if (startNow) { if (ServiceInstaller.StartService(service, 0, (string) null) == 0) return false; ServiceInstaller.CloseServiceHandle(num3); ServiceInstaller.CloseServiceHandle(service); return true; } ServiceInstaller.CloseServiceHandle(num3); ServiceInstaller.CloseServiceHandle(service); return true; } catch (Exception ex) { throw ex; } } public static bool UnInstallService(string svcName) { IntPtr SCHANDLE = ServiceInstaller.OpenSCManager((string) null, (string) null, 1073741824); if (SCHANDLE.ToInt32() == 0) return false; int dwNumServiceArgs = 65536; IntPtr num = ServiceInstaller.OpenService(SCHANDLE, svcName, dwNumServiceArgs); if (num.ToInt32() == 0) return false; if (ServiceInstaller.DeleteService(num) != 0) { ServiceInstaller.CloseServiceHandle(SCHANDLE); ServiceInstaller.CloseServiceHandle(num); return true; } ServiceInstaller.CloseServiceHandle(SCHANDLE); ServiceInstaller.CloseServiceHandle(num); return false; } } }