//////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Copyright 2010. IntelliProtector.com // Web site: http://intelliprotector.com // Version: v2.5 // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace netprotector.api { internal delegate void dVoid_NoParams(); internal delegate void dVoid_BoolParam(out bool b1); internal delegate void dVoid_IntParam(out int i1); internal delegate void dVoid_2IntParam(out int i1, int i2); internal delegate void dVoid_5IntParams(out int i1, out int i2, out int i3, out int i4, out int i5); internal delegate void dVoid_StringBuilderParam([MarshalAs(UnmanagedType.LPWStr)] StringBuilder s1, int iMaxLength); internal delegate void dBool_StringParam(out bool res, [MarshalAs(UnmanagedType.LPWStr)]String s1, int iMaxLength); internal delegate void dBool_StringOnlyParam(out bool res, [MarshalAs(UnmanagedType.LPWStr)]String s1); internal delegate void dBool_StringStringParam(out bool res, [MarshalAs(UnmanagedType.LPWStr)]String s1, [MarshalAs(UnmanagedType.LPWStr)]String s2); } namespace IntelliProtectorService.attributes { internal class Encrypt : Attribute { } internal class GetBuyNowLinkAttribute : Attribute { } internal class IsSoftwareProtectedAttribute : Attribute { } internal class IsSoftwareRegisteredAttribute : Attribute { } internal class GetTrialDaysCountAttribute : Attribute { } internal class GetTrialUnitsCountAttribute : Attribute { } internal class GetTrialDaysLeftCountAttribute : Attribute { } internal class GetTrialUnitsLeftCountAttribute : Attribute { } internal class GetTrialLaunchesCountAttribute : Attribute { } internal class GetTrialLaunchesLeftCountAttribute : Attribute { } internal class ShowRegistrationWindowAttribute : Attribute { } internal class IsTrialElapsedAttribute : Attribute { } internal class GetRenewalPurchaseLinkAttribute : Attribute { } internal class GetLicenseTypeAttribute : Attribute { } internal class GetLicenseExpirationDaysCountAttribute : Attribute { } internal class GetLicenseExpirationDaysLeftCountAttribute : Attribute { } internal class GetSupportExpirationDaysCountAttribute : Attribute { } internal class GetSupportExpirationDaysLeftCountAttribute : Attribute { } internal class GetCurrentProductVersionAttribute : Attribute { } internal class GetCustomerNameAttribute : Attribute { } internal class GetCustomerEMailAttribute : Attribute { } internal class GetLicenseCodeAttribute : Attribute { } internal class RegisterSoftwareAttribute : Attribute { } internal class RenewLicenseCodeAttribute : Attribute { } internal class GetCurrentActivationDateAttribute : Attribute { } internal class GetCurrentRegistrationDateAttribute : Attribute { } internal class GetFirstRegistrationDateAttribute : Attribute { } internal class GetOrderDateAttribute : Attribute { } internal class GetLicenseExpirationDateAttribute : Attribute { } internal class GetProtectionDateAttribute : Attribute { } internal class GetSupportExpirationDateAttribute : Attribute { } internal class GetSupportExpirationProductVersionAttribute : Attribute { } internal class GetIntelliProtectorVersionAttribute : Attribute { } internal class CreateRegistrationRequestCertificateAttribute : Attribute { } internal class UseRegistrationResponseCertificateAttribute : Attribute { } internal class SystemFunction1Attribute : Attribute { } } namespace IntelliProtectorService { internal class IntelliProtector { public static double Version_2_5() { return 2.5f; } #if DEBUG public static bool IsInDebugMode() { return true; } #endif public enum enUnitDimension { eudMinutes, eudHours, eudDays, eudWeeks, eudMonths }; private class Init32 { [DllImport("JitHookCore.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "Init")] public static extern void Init(); }; private class Init64 { [DllImport("JitHookCoreX64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "Init")] public static extern void Init(); }; public static bool Init() { try { bool tryLoadX64 = false; try { Init32.Init(); } catch (BadImageFormatException) { tryLoadX64 = true; } if (tryLoadX64) { try { Init64.Init(); } catch (BadImageFormatException) { return false; } } return true; } catch (System.Exception) { return false; } } #region GetBuyNowLink [attributes.GetBuyNowLinkAttribute] public static String GetBuyNowLink() { UInt64 address = 0; int ciMinLength = 0; int ciMaxLength = 1024; StringBuilder rValue = new StringBuilder(ciMaxLength); object[] obj = new object[] { rValue, ciMaxLength - ciMinLength }; Type tp = typeof(netprotector.api.dVoid_StringBuilderParam); GetBuyNowLinkTest(address, obj, tp); return rValue.ToString(); } [attributes.Encrypt] protected static void GetBuyNowLinkTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(StringBuilder)) return; string strLink = ""; if ((int)obj[1] >= strLink.Length) ((StringBuilder)obj[0]).Append(strLink); } #endregion #region IsSoftwareProtected [attributes.IsSoftwareProtected] public static bool IsSoftwareProtected() { UInt64 address = 0; object[] obj = new object[] { false }; Type tp = typeof(netprotector.api.dVoid_BoolParam); IsSoftwareProtectedTest(address, obj, tp); return (bool)obj[0]; } [attributes.Encrypt] protected static void IsSoftwareProtectedTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(bool)) return; obj[0] = false; } #endregion #region IsSoftwareRegistered [attributes.IsSoftwareRegistered] public static bool IsSoftwareRegistered() { UInt64 address = 0; object[] obj = new object[] { false }; Type tp = typeof(netprotector.api.dVoid_BoolParam); IsSoftwareRegisteredTest(address, obj, tp); return (bool)obj[0]; } [attributes.Encrypt] protected static void IsSoftwareRegisteredTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(bool)) return; obj[0] = false; } #endregion #region GetTrialDaysCount [attributes.GetTrialDaysCount] public static int GetTrialDaysCount() { UInt64 address = 0; object[] obj = new object[] { (int)0 }; Type tp = typeof(netprotector.api.dVoid_IntParam); GetTrialDaysCountTest(address, obj, tp); return (int)obj[0]; } [attributes.Encrypt] protected static void GetTrialDaysCountTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int)) return; obj[0] = -1; } #endregion #region GetTrialUnitsCount [attributes.GetTrialUnitsCount] public static int GetTrialUnitsCount(int dimensions) { UInt64 address = 0; object[] obj = new object[] { (int)0, dimensions }; Type tp = typeof(netprotector.api.dVoid_2IntParam); GetTrialUnitsCountTest(address, obj, tp); return (int)obj[0]; } [attributes.Encrypt] public static void GetTrialUnitsCountTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int) && obj[1].GetType() != typeof(int)) return; obj[0] = -1; } #endregion #region GetTrialDaysLeftCount [attributes.GetTrialDaysLeftCount] public static int GetTrialDaysLeftCount() { UInt64 address = 0; object[] obj = new object[] { (int)0 }; Type tp = typeof(netprotector.api.dVoid_IntParam); GetTrialDaysLeftCountTest(address, obj, tp); return (int)obj[0]; } [attributes.Encrypt] public static void GetTrialDaysLeftCountTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int)) return; obj[0] = -1; } #endregion #region GetTrialUnitsLeftCount [attributes.GetTrialUnitsLeftCount] public static int GetTrialUnitsLeftCount(int dimension) { UInt64 address = 0; object[] obj = new object[] { (int)0, dimension }; Type tp = typeof(netprotector.api.dVoid_2IntParam); GetTrialUnitsLeftCountTest(address, obj, tp); return (int)obj[0]; } [attributes.Encrypt] public static void GetTrialUnitsLeftCountTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int) && obj[1].GetType() != typeof(int)) return; obj[0] = -1; } #endregion #region GetTrialLaunchesCount [attributes.GetTrialLaunchesCount] public static int GetTrialLaunchesCount() { UInt64 address = 0; object[] obj = new object[] { (int)0 }; Type tp = typeof(netprotector.api.dVoid_IntParam); GetTrialLaunchesCountTest(address, obj, tp); return (int)obj[0]; } [attributes.Encrypt] public static void GetTrialLaunchesCountTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int)) return; obj[0] = -1; } #endregion #region GetTrialLaunchesLeftCount [attributes.GetTrialLaunchesLeftCount] public static int GetTrialLaunchesLeftCount() { UInt64 address = 0; object[] obj = new object[] { (int)0 }; Type tp = typeof(netprotector.api.dVoid_IntParam); GetTrialLaunchesLeftCountTest(address, obj, tp); return (int)obj[0]; } [attributes.Encrypt] public static void GetTrialLaunchesLeftCountTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int)) return; obj[0] = -1; } #endregion #region ShowRegistrationWindow [attributes.ShowRegistrationWindow] public static void ShowRegistrationWindow() { UInt64 address = 0; Type tp = typeof(netprotector.api.dVoid_NoParams); ShowRegistrationWindowTest(address, null, tp); } [attributes.Encrypt] public static void ShowRegistrationWindowTest(UInt64 address, object[] obj, Type delegateType) { } #endregion #region IsTrialElapsed [attributes.IsTrialElapsed] public static bool IsTrialElapsed() { UInt64 address = 0; object[] obj = new object[] { false }; Type tp = typeof(netprotector.api.dVoid_BoolParam); IsTrialElapsedTest(address, obj, tp); return (bool)obj[0]; } [attributes.Encrypt] protected static void IsTrialElapsedTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(bool)) return; obj[0] = false; } #endregion #region GetRenewalPurchaseLink [attributes.GetRenewalPurchaseLink] public static String GetRenewalPurchaseLink() { UInt64 address = 0; int ciMinLength = 0; int ciMaxLength = 1024; StringBuilder rValue = new StringBuilder(ciMaxLength); object[] obj = new object[] { rValue, ciMaxLength - ciMinLength }; Type tp = typeof(netprotector.api.dVoid_StringBuilderParam); GetRenewalPurchaseLinkTest(address, obj, tp); return rValue.ToString(); } [attributes.Encrypt] protected static void GetRenewalPurchaseLinkTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(StringBuilder)) return; string strLink = ""; if ((int)obj[1] >= strLink.Length) ((StringBuilder)obj[0]).Append(strLink); } #endregion #region GetLicenseType [attributes.GetLicenseType] public static int GetLicenseType() { UInt64 address = 0; object[] obj = new object[] { (int)0 }; Type tp = typeof(netprotector.api.dVoid_IntParam); GetLicenseTypeTest(address, obj, tp); return (int)obj[0]; } [attributes.Encrypt] public static void GetLicenseTypeTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int)) return; obj[0] = -1; } #endregion #region GetLicenseExpirationDaysCount [attributes.GetLicenseExpirationDaysCount] public static int GetLicenseExpirationDaysCount() { UInt64 address = 0; object[] obj = new object[] { (int)0 }; Type tp = typeof(netprotector.api.dVoid_IntParam); GetLicenseExpirationDaysCountTest(address, obj, tp); return (int)obj[0]; } [attributes.Encrypt] public static void GetLicenseExpirationDaysCountTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int)) return; obj[0] = -1; } #endregion #region GetLicenseExpirationDaysLeftCount [attributes.GetLicenseExpirationDaysLeftCount] public static int GetLicenseExpirationDaysLeftCount() { UInt64 address = 0; object[] obj = new object[] { (int)0 }; Type tp = typeof(netprotector.api.dVoid_IntParam); GetLicenseExpirationDaysLeftTest(address, obj, tp); return (int)obj[0]; } [attributes.Encrypt] public static void GetLicenseExpirationDaysLeftTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int)) return; obj[0] = -1; } #endregion #region GetSupportExpirationDaysCount [attributes.GetSupportExpirationDaysCount] public static int GetSupportExpirationDaysCount() { UInt64 address = 0; object[] obj = new object[] { (int)0 }; Type tp = typeof(netprotector.api.dVoid_IntParam); GetSupportExpirationDaysCountTest(address, obj, tp); return (int)obj[0]; } [attributes.Encrypt] public static void GetSupportExpirationDaysCountTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int)) return; obj[0] = -1; } #endregion #region GetSupportExpirationDaysLeftCount [attributes.GetSupportExpirationDaysLeftCount] public static int GetSupportExpirationDaysLeftCount() { UInt64 address = 0; object[] obj = new object[] { (int)0 }; Type tp = typeof(netprotector.api.dVoid_IntParam); GetSupportExpirationDaysLeftCountTest(address, obj, tp); return (int)obj[0]; } [attributes.Encrypt] public static void GetSupportExpirationDaysLeftCountTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int)) return; obj[0] = -1; } #endregion #region GetCurrentProductVersion [attributes.GetCurrentProductVersion] public static String GetCurrentProductVersion() { UInt64 address = 0; int ciMinLength = 0; int ciMaxLength = 1024; StringBuilder rValue = new StringBuilder(ciMaxLength); object[] obj = new object[] { rValue, ciMaxLength - ciMinLength }; Type tp = typeof(netprotector.api.dVoid_StringBuilderParam); GetCurrentProductVersionTest(address, obj, tp); return rValue.ToString(); } [attributes.Encrypt] protected static void GetCurrentProductVersionTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(StringBuilder)) return; string strLink = ""; if ((int)obj[1] >= strLink.Length) ((StringBuilder)obj[0]).Append(strLink); } #endregion #region GetCustomerName [attributes.GetCustomerName] public static String GetCustomerName() { UInt64 address = 0; int ciMinLength = 0; int ciMaxLength = 1024; StringBuilder rValue = new StringBuilder(ciMaxLength); object[] obj = new object[] { rValue, ciMaxLength - ciMinLength }; Type tp = typeof(netprotector.api.dVoid_StringBuilderParam); GetCustomerNameTest(address, obj, tp); return rValue.ToString(); } [attributes.Encrypt] protected static void GetCustomerNameTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(StringBuilder)) return; string strLink = ""; if ((int)obj[1] >= strLink.Length) ((StringBuilder)obj[0]).Append(strLink); } #endregion #region GetCustomerEMail [attributes.GetCustomerEMail] public static String GetCustomerEMail() { UInt64 address = 0; int ciMinLength = 0; int ciMaxLength = 1024; StringBuilder rValue = new StringBuilder(ciMaxLength); object[] obj = new object[] { rValue, ciMaxLength - ciMinLength }; Type tp = typeof(netprotector.api.dVoid_StringBuilderParam); GetCustomerEMailTest(address, obj, tp); return rValue.ToString(); } [attributes.Encrypt] protected static void GetCustomerEMailTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(StringBuilder)) return; string strLink = ""; if ((int)obj[1] >= strLink.Length) ((StringBuilder)obj[0]).Append(strLink); } #endregion #region GetLicenseCode [attributes.GetLicenseCode] public static String GetLicenseCode() { UInt64 address = 0; int ciMinLength = 0; int ciMaxLength = 1024; StringBuilder rValue = new StringBuilder(ciMaxLength); object[] obj = new object[] { rValue, ciMaxLength - ciMinLength }; Type tp = typeof(netprotector.api.dVoid_StringBuilderParam); GetLicenseCodeTest(address, obj, tp); return rValue.ToString(); } [attributes.Encrypt] protected static void GetLicenseCodeTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(StringBuilder)) return; string strLink = ""; if ((int)obj[1] >= strLink.Length) ((StringBuilder)obj[0]).Append(strLink); } #endregion #region RegisterSoftware [attributes.RegisterSoftware] public static bool RegisterSoftware(string licenseKey) { UInt64 address = 0; bool res = false; object[] obj = new object[] { res, licenseKey, licenseKey.Length }; Type tp = typeof(netprotector.api.dBool_StringParam); RegisterSoftwareTest(address, obj, tp); return (bool)obj[0]; } [attributes.Encrypt] protected static void RegisterSoftwareTest(UInt64 address, object[] obj, Type delegateType) { obj[0] = false; } #endregion #region RenewLicenseCode [attributes.RenewLicenseCode] public static bool RenewLicenseCode(string renewalCode) { UInt64 address = 0; object[] obj = new object[] { false, renewalCode, renewalCode.Length }; Type tp = typeof(netprotector.api.dBool_StringParam); RenewLicenseCodeTest(address, obj, tp); return (bool)obj[0]; } [attributes.Encrypt] protected static void RenewLicenseCodeTest(UInt64 address, object[] obj, Type delegateType) { obj[0] = false; } #endregion #region GetCurrentActivationDate [attributes.GetCurrentActivationDate] public static DateTime GetCurrentActivationDate() { UInt64 address = 0; object[] obj = new object[] { 0, 0, 0, 0, 0 }; Type tp = typeof(netprotector.api.dVoid_5IntParams); GetCurrentActivationDateTest(address, obj, tp); if ((int)obj[0] < 0) return DateTime.MinValue; return new DateTime((int)obj[0], (int)obj[1], (int)obj[2], (int)obj[3], (int)obj[4], 0); } [attributes.Encrypt] protected static void GetCurrentActivationDateTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int) || obj[1].GetType() != typeof(int) || obj[2].GetType() != typeof(int) || obj[3].GetType() != typeof(int) || obj[4].GetType() != typeof(int)) { return; } obj[0] = -1; obj[1] = -1; obj[2] = -1; obj[3] = -1; obj[4] = -1; } #endregion #region GetCurrentRegistrationDate [attributes.GetCurrentRegistrationDate] public static DateTime GetCurrentRegistrationDate() { UInt64 address = 0; object[] obj = new object[] { 0, 0, 0, 0, 0 }; Type tp = typeof(netprotector.api.dVoid_5IntParams); GetCurrentRegistrationDateTest(address, obj, tp); if ((int)obj[0] < 0) return DateTime.MinValue; return new DateTime((int)obj[0], (int)obj[1], (int)obj[2], (int)obj[3], (int)obj[4], 0); } [attributes.Encrypt] protected static void GetCurrentRegistrationDateTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int) || obj[1].GetType() != typeof(int) || obj[2].GetType() != typeof(int) || obj[3].GetType() != typeof(int) || obj[4].GetType() != typeof(int)) { return; } obj[0] = -1; obj[1] = -1; obj[2] = -1; obj[3] = -1; obj[4] = -1; } #endregion #region GetFirstRegistrationDate [attributes.GetFirstRegistrationDate] public static DateTime GetFirstRegistrationDate() { UInt64 address = 0; object[] obj = new object[] { 0, 0, 0, 0, 0 }; Type tp = typeof(netprotector.api.dVoid_5IntParams); GetFirstRegistrationDateTest(address, obj, tp); if ((int)obj[0] < 0) return DateTime.MinValue; return new DateTime((int)obj[0], (int)obj[1], (int)obj[2], (int)obj[3], (int)obj[4], 0); } [attributes.Encrypt] protected static void GetFirstRegistrationDateTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int) || obj[1].GetType() != typeof(int) || obj[2].GetType() != typeof(int) || obj[3].GetType() != typeof(int) || obj[4].GetType() != typeof(int)) { return; } obj[0] = -1; obj[1] = -1; obj[2] = -1; obj[3] = -1; obj[4] = -1; } #endregion #region GetOrderDate [attributes.GetOrderDate] public static DateTime GetOrderDate() { UInt64 address = 0; object[] obj = new object[] { 0, 0, 0, 0, 0 }; Type tp = typeof(netprotector.api.dVoid_5IntParams); GetOrderDateTest(address, obj, tp); if ((int)obj[0] < 0) return DateTime.MinValue; return new DateTime((int)obj[0], (int)obj[1], (int)obj[2], (int)obj[3], (int)obj[4], 0); } [attributes.Encrypt] protected static void GetOrderDateTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int) || obj[1].GetType() != typeof(int) || obj[2].GetType() != typeof(int) || obj[3].GetType() != typeof(int) || obj[4].GetType() != typeof(int)) { return; } obj[0] = -1; obj[1] = -1; obj[2] = -1; obj[3] = -1; obj[4] = -1; } #endregion #region GetLicenseExpirationDate [attributes.GetLicenseExpirationDate] public static DateTime GetLicenseExpirationDate() { UInt64 address = 0; object[] obj = new object[] { 0, 0, 0, 0, 0 }; Type tp = typeof(netprotector.api.dVoid_5IntParams); GetLicenseExpirationDateTest(address, obj, tp); if ((int)obj[0] < 0) return DateTime.MinValue; return new DateTime((int)obj[0], (int)obj[1], (int)obj[2], (int)obj[3], (int)obj[4], 0); } [attributes.Encrypt] protected static void GetLicenseExpirationDateTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int) || obj[1].GetType() != typeof(int) || obj[2].GetType() != typeof(int) || obj[3].GetType() != typeof(int) || obj[4].GetType() != typeof(int)) { return; } obj[0] = -1; obj[1] = -1; obj[2] = -1; obj[3] = -1; obj[4] = -1; } #endregion #region GetProtectionDate [attributes.GetProtectionDate] public static DateTime GetProtectionDate() { UInt64 address = 0; object[] obj = new object[] { 0, 0, 0, 0, 0 }; Type tp = typeof(netprotector.api.dVoid_5IntParams); GetProtectionDateTest(address, obj, tp); if ((int)obj[0] < 0) return DateTime.MinValue; return new DateTime((int)obj[0], (int)obj[1], (int)obj[2], (int)obj[3], (int)obj[4], 0); } [attributes.Encrypt] protected static void GetProtectionDateTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int) || obj[1].GetType() != typeof(int) || obj[2].GetType() != typeof(int) || obj[3].GetType() != typeof(int) || obj[4].GetType() != typeof(int)) { return; } obj[0] = -1; obj[1] = -1; obj[2] = -1; obj[3] = -1; obj[4] = -1; } #endregion #region GetSupportExpirationDate [attributes.GetSupportExpirationDate] public static DateTime GetSupportExpirationDate() { UInt64 address = 0; object[] obj = new object[] { 0, 0, 0, 0, 0 }; Type tp = typeof(netprotector.api.dVoid_5IntParams); GetSupportExpirationDateTest(address, obj, tp); if ((int)obj[0] < 0) return DateTime.MinValue; return new DateTime((int)obj[0], (int)obj[1], (int)obj[2], (int)obj[3], (int)obj[4], 0); } [attributes.Encrypt] protected static void GetSupportExpirationDateTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(int) || obj[1].GetType() != typeof(int) || obj[2].GetType() != typeof(int) || obj[3].GetType() != typeof(int) || obj[4].GetType() != typeof(int)) { return; } obj[0] = -1; obj[1] = -1; obj[2] = -1; obj[3] = -1; obj[4] = -1; } #endregion #region GetSupportExpirationProductVersion [attributes.GetSupportExpirationProductVersion] public static String GetSupportExpirationProductVersion() { UInt64 address = 0; int ciMinLength = 0; int ciMaxLength = 1024; StringBuilder rValue = new StringBuilder(ciMaxLength); object[] obj = new object[] { rValue, ciMaxLength - ciMinLength }; Type tp = typeof(netprotector.api.dVoid_StringBuilderParam); GetSupportExpirationProductVersionTest(address, obj, tp); return rValue.ToString(); } [attributes.Encrypt] protected static void GetSupportExpirationProductVersionTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(StringBuilder)) return; string strLink = ""; if ((int)obj[1] >= strLink.Length) ((StringBuilder)obj[0]).Append(strLink); } #endregion #region GetIntelliProtectorVersion [attributes.GetIntelliProtectorVersion] public static String GetIntelliProtectorVersion() { UInt64 address = 0; int ciMinLength = 0; int ciMaxLength = 1024; StringBuilder rValue = new StringBuilder(ciMaxLength); object[] obj = new object[] { rValue, ciMaxLength - ciMinLength }; Type tp = typeof(netprotector.api.dVoid_StringBuilderParam); GetIntelliProtectorVersionTest(address, obj, tp); return rValue.ToString(); } [attributes.Encrypt] protected static void GetIntelliProtectorVersionTest(UInt64 address, object[] obj, Type delegateType) { if (obj[0].GetType() != typeof(StringBuilder)) return; string strLink = ""; if ((int)obj[1] >= strLink.Length) ((StringBuilder)obj[0]).Append(strLink); } #endregion #region CreateRegistrationRequestCertificate [attributes.CreateRegistrationRequestCertificate] public static bool CreateRegistrationRequestCertificate(string path, string licenseCode) { UInt64 address = 0; bool res = false; object[] obj = new object[] { res, path, licenseCode }; Type tp = typeof(netprotector.api.dBool_StringStringParam); CreateRegistrationRequestCertificateTest(address, obj, tp); return (bool)obj[0]; } [attributes.Encrypt] protected static void CreateRegistrationRequestCertificateTest(UInt64 address, object[] obj, Type delegateType) { obj[0] = true; } #endregion #region UseRegistrationResponseCertificate [attributes.UseRegistrationResponseCertificate] public static bool UseRegistrationResponseCertificate(string path) { UInt64 address = 0; bool res = false; object[] obj = new object[] { res, path }; Type tp = typeof(netprotector.api.dBool_StringOnlyParam); UseRegistrationResponseCertificateTest(address, obj, tp); return (bool)obj[0]; } [attributes.Encrypt] protected static void UseRegistrationResponseCertificateTest(UInt64 address, object[] obj, Type delegateType) { obj[0] = true; } #endregion #region SystemFunction1 [attributes.SystemFunction1] protected static void SystemFunction1(UInt64 address, object[] parameters, Type delegateType) { Delegate delegateFunc = Marshal.GetDelegateForFunctionPointer((IntPtr)address, delegateType); delegateFunc.DynamicInvoke(parameters); } #endregion } }