// Decompiled with JetBrains decompiler // Type: PvLogiciels.dotNetProtector.RuntimeInterop // Assembly: Cursor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null // MVID: BB91517D-96CD-4859-A72C-BFC1CBA44DE2 // Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00001-msil\Trojan.Win32.Refroso.hqmj-a46444251debd74675b60bb330cf99debe122ec24698468f4a3835595fddbe4e.exe using \u0081é; using \u0082\u00BC; using õ; using System; using System.Collections; using System.ComponentModel; using System.Diagnostics; using System.Reflection; using System.Runtime.InteropServices; using System.Text; namespace PvLogiciels.dotNetProtector { public class RuntimeInterop : IRuntime { internal Assembly[] ò; internal Assembly \u0081\u00BD; internal string \u0082\u00B4; private static unsafe byte* Ô(Assembly _param0) => (byte*) Marshal.GetHINSTANCE(_param0.GetLoadedModules()[0]).ToPointer(); internal RuntimeInterop() => this.ò = new Assembly[0]; internal unsafe Assembly \u0081â(IntPtr _param1) { int id = AppDomain.CurrentDomain.Id; byte* numPtr = (byte*) \u0082\u00BB.\u00B7(_param1.ToPointer()); if ((IntPtr) numPtr == IntPtr.Zero) return (Assembly) null; IntPtr ptr = (IntPtr) (void*) numPtr; _param1 = ptr; int num1 = Marshal.ReadInt32(ptr); int length1 = Marshal.ReadInt32(_param1, 4); int length2 = Marshal.ReadInt32(_param1, 8); IntPtr source1 = (IntPtr) (void*) (numPtr + 12); IntPtr source2 = (IntPtr) (void*) (numPtr + length1 + 12); byte[] numArray = new byte[length1]; byte[] destination = numArray; int length3 = length1; Marshal.Copy(source1, destination, 0, length3); Assembly assembly; if (length2 != 0) { byte[] rawSymbolStore = new byte[length2]; Marshal.Copy(source2, numArray, 0, length2); assembly = Assembly.Load(numArray, rawSymbolStore); } else assembly = Assembly.Load(numArray); Marshal.FreeCoTaskMem(_param1); if ((object) assembly != null && num1 >= 0) { Type[] types = assembly.GetTypes(); IntPtr num2 = types[types.Length - 1].TypeHandle.Value; \u0082\u00BB.\u0081\u0081((byte*) Marshal.GetHINSTANCE(assembly.GetLoadedModules()[0]).ToPointer(), num2.ToPointer(), num1, id); } return assembly; } internal static unsafe void Î(Assembly _param0) { string assemblyString = PvLogiciels.dotNetProtector.Runtime.GetAssemblyString(_param0); IntPtr ptr = IntPtr.Zero; if (assemblyString != (string) null) ptr = Marshal.StringToCoTaskMemAnsi(assemblyString); \u0082\u00BB.\u0081\u0081((byte*) Marshal.GetHINSTANCE(_param0.GetLoadedModules()[0]).ToPointer(), (void*) 0, (int*) 0, (sbyte*) ptr.ToPointer(), AppDomain.CurrentDomain.Id); if (!(ptr != IntPtr.Zero)) return; Marshal.FreeCoTaskMem(ptr); } public virtual Assembly GetEntryAssembly() { if ((object) \u0081ê.\u0081\u0099 != null) return \u0081ê.\u0081\u0099; Assembly entryAssembly = Assembly.GetEntryAssembly(); if ((object) entryAssembly != null) { \u0081ê.\u0081\u0099 = entryAssembly; return entryAssembly; } Assembly executingAssembly = Assembly.GetExecutingAssembly(); if (executingAssembly.FullName.StartsWith("PvLogiciels.dotNetProtector.Runtime")) return (Assembly) null; \u0081ê.\u0081\u0099 = executingAssembly; return executingAssembly; } public static IRuntime InitRuntime() { RuntimeInterop runtimeInterop = new RuntimeInterop(); if (AppDomain.CurrentDomain.IsDefaultAppDomain()) { AppDomain.CurrentDomain.ProcessExit += new EventHandler(RuntimeInterop.AppDomain_ProcessExit); return (IRuntime) runtimeInterop; } AppDomain.CurrentDomain.DomainUnload += new EventHandler(new \u0081Þ(AppDomain.CurrentDomain, AppDomain.CurrentDomain.Id).\u0081\u0084); return (IRuntime) runtimeInterop; } public static void AppDomain_ProcessExit(object sender, EventArgs e) { GC.Collect(); GC.WaitForPendingFinalizers(); \u0082\u00BB.\u0081\u0086(); } public virtual void NGenInitRuntime() { } public virtual ulong GetComputerHash() => \u0082\u00BB.\u0081\u008C(); public virtual long GetMacAddress() => \u0082\u00BB.Ç(); public virtual ulong GetBiosHash() => \u0082\u00BB.Ï(); public virtual int UnloadDomain() => \u0082\u00BB.\u0095(AppDomain.CurrentDomain.Id); public virtual unsafe int InitModule(Type pReserved1, IntPtr pReserved2, string Reserved3) { IntPtr ptr = IntPtr.Zero; if (Reserved3 != (string) null) ptr = Marshal.StringToCoTaskMemAnsi(Reserved3); IntPtr num1 = pReserved1.TypeHandle.Value; int num2 = \u0082\u00BB.\u0081\u0081((byte*) Marshal.GetHINSTANCE(pReserved1.Assembly.GetLoadedModules()[0]).ToPointer(), num1.ToPointer(), (int*) pReserved2.ToPointer(), (sbyte*) ptr.ToPointer(), AppDomain.CurrentDomain.Id); if (ptr != IntPtr.Zero) Marshal.FreeCoTaskMem(ptr); if (num2 == 2) { this.\u0081\u00BD = pReserved1.Assembly; this.\u0082\u00B4 = pReserved1.Assembly.GetName().Name; int length = \u0082\u00BB.\u0081\u009B(); if (length != 0) { this.ò = new Assembly[length]; int index = 0; if (0 < length) { do { this.ò[index] = (Assembly) null; ++index; } while (index < length); } } } return num2; } public virtual unsafe string DesignLicenseKey(Type pReserved1, string pReserved2) { IntPtr ptr = Marshal.AllocCoTaskMem(IntPtr.Size); IntPtr coTaskMemAnsi = Marshal.StringToCoTaskMemAnsi(pReserved2); \u0082\u00BB.Ý((byte*) Marshal.GetHINSTANCE(pReserved1.Assembly.GetLoadedModules()[0]).ToPointer(), (sbyte*) coTaskMemAnsi.ToPointer(), (sbyte**) ptr.ToPointer()); IntPtr num = Marshal.ReadIntPtr(ptr); string str = (string) null; if (num != IntPtr.Zero) { string stringAnsi = Marshal.PtrToStringAnsi(num); Marshal.FreeHGlobal(num); str = stringAnsi; } Marshal.FreeCoTaskMem(ptr); if (!(coTaskMemAnsi != IntPtr.Zero)) return str; Marshal.FreeCoTaskMem(coTaskMemAnsi); return str; } [return: MarshalAs(UnmanagedType.U1)] public virtual unsafe bool SameSoftware(Assembly pReserved, IntPtr pSoft, ulong SwMajor) { int num; if (\u0082\u00BB.\u0081\u00A5((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), (sbyte*) pSoft.ToPointer(), SwMajor, &num) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return num != 0; } [return: MarshalAs(UnmanagedType.U1)] public virtual unsafe bool IsLicensed(Assembly pReserved, string licenseKey, [MarshalAs(UnmanagedType.U1)] bool usb) { IntPtr coTaskMemAnsi = Marshal.StringToCoTaskMemAnsi(licenseKey); int num1 = usb ? 1 : 0; int num2 = \u0082\u00BB.\u0081ª((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), (sbyte*) coTaskMemAnsi.ToPointer(), num1); if (coTaskMemAnsi != IntPtr.Zero) Marshal.FreeCoTaskMem(coTaskMemAnsi); return num2 != 0; } public virtual unsafe int HardwareScore(Assembly pReserved, ulong HwConfig1, ulong HwConfig2) { int num; if (\u0082\u00BB.\u00A1((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), HwConfig1, HwConfig2, &num) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return num; } public virtual unsafe IntPtr GenProductKey( Assembly pReserved, IntPtr pKeys, uint LicenseID, ulong data) { sbyte* numPtr; if (\u0082\u00BB.\u0081µ((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), pKeys.ToPointer(), LicenseID, data, &numPtr) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return (IntPtr) (void*) numPtr; } public virtual unsafe IntPtr GenProductKey( Assembly pReserved, IntPtr pKeys, uint LicenseID) { sbyte* numPtr; if (\u0082\u00BB.\u0081µ((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), pKeys.ToPointer(), LicenseID, &numPtr) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return (IntPtr) (void*) numPtr; } public virtual unsafe uint GetLicenseId(Assembly pReserved, IntPtr pProductKey) { uint licenseId; if (\u0082\u00BB.\u0081\u00BC((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), (sbyte*) pProductKey.ToPointer(), &licenseId) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return licenseId; } public virtual unsafe ulong GetProductkeyData(Assembly pReserved, IntPtr pProductKey) { uint num; ulong productkeyData; if (\u0082\u00BB.\u0081\u00BC((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), (sbyte*) pProductKey.ToPointer(), &num, &productkeyData) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return productkeyData; } public virtual unsafe IntPtr DecodeActivationString( Assembly pReserved, IntPtr pKeys, IntPtr pActivationString) { byte* numPtr; if (\u0082\u00BB.\u0081Ä((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), pKeys.ToPointer(), (sbyte*) pActivationString.ToPointer(), &numPtr) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return (IntPtr) (void*) numPtr; } public virtual unsafe IntPtr EncodeActivationRequest(Assembly pReserved, IntPtr preq) { sbyte* numPtr; if (\u0082\u00BB.Ã((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), preq.ToPointer(), &numPtr) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return (IntPtr) (void*) numPtr; } public virtual unsafe IntPtr GetConfig( Assembly pReserved, uint LicenseID, ushort ActivationDuration) { sbyte* config; if (\u0082\u00BB.\u0081Ñ((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), LicenseID, ActivationDuration, &config) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return (IntPtr) (void*) config; } public virtual unsafe IntPtr GetConfig( Assembly pReserved, uint LicenseID, ushort ActivationDuration, IntPtr pAssemblyFile) { sbyte* config; if (\u0082\u00BB.\u0081Ñ((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), LicenseID, ActivationDuration, (sbyte*) pAssemblyFile.ToPointer(), &config) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return (IntPtr) (void*) config; } public virtual unsafe IntPtr GetConfig( Assembly pReserved, uint LicenseID, ushort ActivationDuration, AssemblyName Name) { string name = Name.Name; byte[] bytes = Encoding.UTF8.GetBytes(string.Concat((object) "\0")); GCHandle gcHandle = GCHandle.Alloc((object) bytes, GCHandleType.Pinned); IntPtr num1 = Marshal.UnsafeAddrOfPinnedArrayElement((Array) bytes, 0); sbyte* config; int num2 = \u0082\u00BB.\u0081Ñ((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), LicenseID, ActivationDuration, (byte*) num1.ToPointer(), (ushort) Name.Version.Major, (ushort) Name.Version.Minor, &config); gcHandle.Free(); if (num2 == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return (IntPtr) (void*) config; } public virtual unsafe string GetThumbPrint(Assembly pReserved) { \u0081Ï ï; if (\u0082\u00BB.\u0081\u00D7((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), (byte*) &ï) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); StringBuilder stringBuilder = new StringBuilder(); int num = 0; do { // ISSUE: cast to a reference type // ISSUE: explicit reference operation stringBuilder.Append(string.Format("{0:x}", (object) ^(byte&) (num + (IntPtr) &ï)).PadLeft(2, '0')); ++num; } while (num < 20); return stringBuilder.ToString(); } public virtual unsafe byte[] GetConfigForDemo(Assembly pReserved) { uint length; byte* numPtr; if (\u0082\u00BB.\u0081\u00B4((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), &length, &numPtr) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); byte[] destination = new byte[(int) length]; IntPtr num = (IntPtr) (void*) numPtr; Marshal.Copy(num, destination, 0, (int) length); Marshal.FreeCoTaskMem(num); return destination; } public virtual unsafe IntPtr GetUsbConfig( Assembly pReserved, uint LicenseID, ushort ActivationDuration, ulong UsbHash, ulong UsbIdentity) { sbyte* usbConfig; if (\u0082\u00BB.\u0081è((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), LicenseID, ActivationDuration, UsbHash, UsbIdentity, &usbConfig) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return (IntPtr) (void*) usbConfig; } public virtual unsafe IntPtr GetUsbConfig( Assembly pReserved, uint LicenseID, ushort ActivationDuration, ulong UsbHash, ulong UsbIdentity, IntPtr pAssemblyFile) { sbyte* usbConfig; if (\u0082\u00BB.\u0081è((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), LicenseID, ActivationDuration, UsbHash, UsbIdentity, (sbyte*) pAssemblyFile.ToPointer(), &usbConfig) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return (IntPtr) (void*) usbConfig; } public virtual unsafe IntPtr GetUsbConfig( Assembly pReserved, uint LicenseID, ushort ActivationDuration, ulong UsbHash, ulong UsbIdentity, AssemblyName Name) { string name = Name.Name; byte[] bytes = Encoding.UTF8.GetBytes(string.Concat((object) "\0")); GCHandle gcHandle = GCHandle.Alloc((object) bytes, GCHandleType.Pinned); IntPtr num1 = Marshal.UnsafeAddrOfPinnedArrayElement((Array) bytes, 0); sbyte* usbConfig; int num2 = \u0082\u00BB.\u0081è((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), LicenseID, ActivationDuration, UsbHash, UsbIdentity, (byte*) num1.ToPointer(), (ushort) Name.Version.Major, (ushort) Name.Version.Minor, &usbConfig); gcHandle.Free(); if (num2 == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return (IntPtr) (void*) usbConfig; } public virtual unsafe IntPtr GenerateLicense( Assembly pReserved, IntPtr pKeys, IntPtr preq) { sbyte* license; if (\u0082\u00BB.\u0081ð((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), pKeys.ToPointer(), preq.ToPointer(), &license) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return (IntPtr) (void*) license; } public virtual unsafe IntPtr GenerateLicense( Assembly pReserved, IntPtr pKeys, IntPtr preq, int tolerance, [MarshalAs(UnmanagedType.U1)] bool ignoreMinor, long RuntimeLicensesLimit) { sbyte* license; if (\u0082\u00BB.\u0081ð((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), pKeys.ToPointer(), preq.ToPointer(), tolerance, ignoreMinor ? 1 : 0, RuntimeLicensesLimit, &license) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return (IntPtr) (void*) license; } public virtual unsafe IntPtr GenerateUsbLicense( Assembly pReserved, IntPtr pKeys, IntPtr preq) { sbyte* usbLicense; if (\u0082\u00BB.\u0081\u00AC((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), pKeys.ToPointer(), preq.ToPointer(), &usbLicense, (byte) 0) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return (IntPtr) (void*) usbLicense; } public virtual unsafe IntPtr GenerateUsbLicense( Assembly pReserved, IntPtr pKeys, IntPtr preq, int tolerance, [MarshalAs(UnmanagedType.U1)] bool ignoreMinor, long RuntimeLicensesLimit) { sbyte* usbLicense; if (\u0082\u00BB.\u0081\u00AC((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), pKeys.ToPointer(), preq.ToPointer(), tolerance, ignoreMinor ? 1 : 0, RuntimeLicensesLimit, &usbLicense, (byte) 0) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return (IntPtr) (void*) usbLicense; } public virtual unsafe Assembly ResolveAssembly(string Name) { // ISSUE: untyped stack allocation int num1 = (int) __untypedstackalloc(\u0082\u00BB.Õ()); try { AssemblyName assemblyName = new AssemblyName(Name); } catch (Exception ex1) when ( { // ISSUE: unable to correctly present filter uint exceptionCode = (uint) Marshal.GetExceptionCode(); if (\u0082\u00BB.\u0082\u00AE((void*) Marshal.GetExceptionPointers(), (void*) 0, 0, (void*) 0) != 0) { SuccessfulFiltering; } else throw; } ) { uint num2 = 0; \u0082\u00BB.\u0081\u009A((void*) Marshal.GetExceptionPointers(), (void*) num1); try { try { return (Assembly) null; } catch (Exception ex2) when ( { // ISSUE: unable to correctly present filter num2 = (uint) \u0082\u00BB.\u0084((void*) Marshal.GetExceptionPointers()); if (num2 != 0U) { SuccessfulFiltering; } else throw; } ) { } if (num2 != 0U) throw; } finally { \u0082\u00BB.ã((void*) num1, (int) num2); } } byte[] bytes = Encoding.UTF8.GetBytes(Name); GCHandle gcHandle = GCHandle.Alloc((object) bytes, GCHandleType.Pinned); IntPtr num3 = Marshal.UnsafeAddrOfPinnedArrayElement((Array) bytes, 0); int index = \u0082\u00BB.\u0082\u0082(num3.ToPointer()); if (index >= 0) { Assembly[] ò = this.ò; if (index < ò.Length) { if ((object) ò[index] == null) this.ò[index] = this.\u0081â(num3); gcHandle.Free(); return this.ò[index]; } } gcHandle.Free(); return new AssemblyName(Name).Name == this.\u0082\u00B4 ? this.\u0081\u00BD : (Assembly) null; } public virtual int ExecuteEmbLockAssembly(Type pReserved1, int Reserved2) => \u0081Ù.\u0081Ö(pReserved1.Assembly, Reserved2); public virtual unsafe Assembly GetEmbLockAssembly(Type pReserved1) { byte* numPtr = (byte*) \u0082\u00BB.î((byte*) Marshal.GetHINSTANCE(pReserved1.Assembly.GetLoadedModules()[0]).ToPointer()); if ((IntPtr) numPtr == IntPtr.Zero) return (Assembly) null; IntPtr ptr = (IntPtr) (void*) numPtr; int length1 = Marshal.ReadInt32(ptr); IntPtr source = (IntPtr) (void*) (numPtr + 4); byte[] rawAssembly = new byte[length1]; byte[] destination = rawAssembly; int length2 = length1; Marshal.Copy(source, destination, 0, length2); Assembly embLockAssembly = Assembly.Load(rawAssembly); Marshal.FreeCoTaskMem(ptr); return embLockAssembly; } public virtual unsafe Assembly GetEmbLockAssemblyName(Type pReserved1) { byte* numPtr = (byte*) \u0082\u00BB.ô((byte*) Marshal.GetHINSTANCE(pReserved1.Assembly.GetLoadedModules()[0]).ToPointer()); if ((IntPtr) numPtr == IntPtr.Zero) return (Assembly) null; IntPtr ptr = (IntPtr) (void*) numPtr; string stringAnsi = Marshal.PtrToStringAnsi(ptr); Marshal.FreeCoTaskMem(ptr); Assembly lockAssemblyName = (Assembly) null; try { lockAssemblyName = Assembly.Load(stringAnsi); } catch (Exception ex) { } return lockAssemblyName; } public virtual unsafe ArrayList GetEmbLockAssemblyServices(Type pReserved1) { byte* ptr1 = (byte*) \u0082\u00BB.\u0082\u008B((byte*) Marshal.GetHINSTANCE(pReserved1.Assembly.GetLoadedModules()[0]).ToPointer()); if ((IntPtr) ptr1 == IntPtr.Zero) return (ArrayList) null; IntPtr ptr2 = (IntPtr) (void*) ptr1; ArrayList assemblyServices = new ArrayList(); if (*ptr1 != (byte) 0) { do { string stringAnsi = Marshal.PtrToStringAnsi((IntPtr) (void*) ptr1); assemblyServices.Add((object) stringAnsi); ptr1 = (byte*) (stringAnsi.Length + (IntPtr) ptr1 + 1); } while (*ptr1 != (byte) 0); } Marshal.FreeCoTaskMem(ptr2); return assemblyServices; } [return: MarshalAs(UnmanagedType.U1)] public virtual unsafe bool ProductKeyChecksumIsOk(Assembly pReserved, IntPtr pString) { int num; if (\u0082\u00BB.\u0082\u0096((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), (sbyte*) pString.ToPointer(), &num) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return num != 0; } [return: MarshalAs(UnmanagedType.U1)] public virtual unsafe bool ConfigStringChecksumIsOk(Assembly pReserved, IntPtr pString) { int num; if (\u0082\u00BB.\u0082\u00A1((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), (sbyte*) pString.ToPointer(), &num) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return num != 0; } [return: MarshalAs(UnmanagedType.U1)] public virtual unsafe bool LicenseKeyChecksumIsOk(Assembly pReserved, IntPtr pString) { int num; if (\u0082\u00BB.\u0081Ø((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), (sbyte*) pString.ToPointer(), &num) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return num != 0; } [return: MarshalAs(UnmanagedType.U1)] public virtual unsafe bool IsDemo(Assembly pReserved) { int num; if (\u0082\u00BB.\u0082\u00AB((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), &num) == 0) throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); return num != 0; } public virtual unsafe int DaysLeft(Assembly pReserved) { int num; return \u0082\u00BB.\u0082\u00AF((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), &num) != 0 ? num : throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); } public virtual unsafe int MinutesLeft(Assembly pReserved) { int num; return \u0082\u00BB.\u0082\u00B9((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), &num) != 0 ? num : throw new LicenseException(typeof (PvLogiciels.dotNetProtector.Runtime)); } public virtual unsafe uint GetProductID(Assembly pReserved) => \u0082\u00BB.\u0082((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer()); public virtual void UnloadAppdomain(AppDomain domain) { int id = domain.Id; AppDomain.Unload(domain); \u0082\u00BB.\u0095(id); } public virtual unsafe IntPtr StartUsbDetect() => (IntPtr) \u0082\u00BB.\u0081ø(); public virtual unsafe void EndUsbDetect(IntPtr handle) => \u0082\u00BB.\u008B(handle.ToPointer()); public virtual unsafe IntPtr LoadNativeLibrary(Assembly pReserved, IntPtr[] pointers) { GCHandle gcHandle = GCHandle.Alloc((object) pointers, GCHandleType.Pinned); IntPtr num1 = Marshal.UnsafeAddrOfPinnedArrayElement((Array) pointers, 0); IntPtr num2 = (IntPtr) \u0082\u00BB.\u0082\u0087((byte*) Marshal.GetHINSTANCE(pReserved.GetLoadedModules()[0]).ToPointer(), (void**) num1.ToPointer()); gcHandle.Free(); return num2; } public virtual unsafe void FreeNativeLibrary(IntPtr pLib) => \u0082\u00BB.\u0096(pLib.ToPointer()); public virtual StackFrame[] GetFrames(StackTrace trace) => trace == null ? new StackFrame[0] : trace.GetFrames(); public virtual unsafe void EncodeTrace(Guid[] Guids, long[] Indexes, IntPtr[] Handles) { GCHandle gcHandle1 = GCHandle.Alloc((object) Guids, GCHandleType.Pinned); GCHandle gcHandle2 = GCHandle.Alloc((object) Indexes, GCHandleType.Pinned); GCHandle gcHandle3 = GCHandle.Alloc((object) Handles, GCHandleType.Pinned); IntPtr num1 = Marshal.UnsafeAddrOfPinnedArrayElement((Array) Guids, 0); IntPtr num2 = Marshal.UnsafeAddrOfPinnedArrayElement((Array) Indexes, 0); IntPtr num3 = Marshal.UnsafeAddrOfPinnedArrayElement((Array) Handles, 0); \u0082\u00BB.\u0098(Handles.Length, num3.ToPointer(), num2.ToPointer(), num1.ToPointer()); gcHandle1.Free(); gcHandle2.Free(); gcHandle3.Free(); } } }