Support dor v12.1.12

Added Suooport for latest v12.1.12  of Navicat Premium
Thank's to DoubleLabyrinth
master 4.3
Paolo 6 years ago
parent bff390aada
commit d34d8dd946

@ -794,7 +794,7 @@
this.MinimumSize = new System.Drawing.Size(594, 621);
this.Name = "FNavicat";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Navicat Products - Patch/Keygen v4.2";
this.Text = "Navicat Products - Patch/Keygen v4.3";
this.Load += new System.EventHandler(this.NC_Load);
this.g1.ResumeLayout(false);
this.g1.PerformLayout();

@ -1,4 +1,4 @@
using Microsoft.Win32;
using Microsoft.Win32;
using Navicat_Keygen_Patch_By_DFoX.Properties;
using Newtonsoft.Json;
using Org.BouncyCastle.Crypto;
@ -16,6 +16,7 @@ using System.Linq;
using System.Reflection;
using System.Security.Cryptography;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace Navicat_Keygen_Patch_By_DFoX
@ -26,7 +27,7 @@ namespace Navicat_Keygen_Patch_By_DFoX
private char[] SnKey = new char[16];
private byte[] a = { 0x0D, 0x0A, 0x4D, 0x49, 0x49, 0x42, 0x49, 0x6A, 0x41, 0x4E, 0x42, 0x67, 0x6B, 0x71, 0x68, 0x6B, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4F, 0x43, 0x41, 0x51, 0x38, 0x41, 0x4D, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4B, 0x43, 0x41, 0x51, 0x45, 0x41, 0x77, 0x31, 0x64, 0x71, 0x46, 0x33, 0x53, 0x6B, 0x43, 0x61, 0x41, 0x41, 0x6D, 0x4D, 0x7A, 0x73, 0x38, 0x38, 0x39, 0x49, 0x0D, 0x0A, 0x71, 0x64, 0x57, 0x39, 0x4D, 0x32, 0x64, 0x49, 0x64, 0x68, 0x33, 0x6A, 0x47, 0x39, 0x79, 0x50, 0x63, 0x6D, 0x4C, 0x6E, 0x6D, 0x4A, 0x69, 0x47, 0x70, 0x42, 0x46, 0x34, 0x45, 0x39, 0x56, 0x48, 0x53, 0x4D, 0x47, 0x65, 0x38, 0x6F, 0x50, 0x41, 0x79, 0x32, 0x6B, 0x4A, 0x44, 0x6D, 0x64, 0x4E, 0x74, 0x34, 0x42, 0x63, 0x45, 0x79, 0x67, 0x76, 0x73, 0x73, 0x45, 0x66, 0x67, 0x69, 0x6E, 0x76, 0x0D, 0x0A, 0x61, 0x35, 0x74, 0x35, 0x6A, 0x6D, 0x33, 0x35, 0x32, 0x55, 0x41, 0x6F, 0x44, 0x6F, 0x73, 0x55, 0x4A, 0x6B, 0x54, 0x58, 0x47, 0x51, 0x68, 0x70, 0x41, 0x57, 0x4D, 0x46, 0x34, 0x66, 0x42, 0x6D, 0x42, 0x70, 0x4F, 0x33, 0x45, 0x65, 0x64, 0x47, 0x36, 0x32, 0x72, 0x4F, 0x73, 0x71, 0x4D, 0x42, 0x67, 0x6D, 0x53, 0x64, 0x41, 0x79, 0x78, 0x43, 0x53, 0x50, 0x42, 0x52, 0x4A, 0x49, 0x4F, 0x46, 0x0D, 0x0A, 0x52, 0x30, 0x51, 0x67, 0x5A, 0x46, 0x62, 0x52, 0x6E, 0x55, 0x30, 0x66, 0x72, 0x6A, 0x33, 0x34, 0x66, 0x69, 0x56, 0x6D, 0x67, 0x59, 0x69, 0x4C, 0x75, 0x5A, 0x53, 0x41, 0x6D, 0x49, 0x62, 0x73, 0x38, 0x5A, 0x78, 0x69, 0x48, 0x50, 0x64, 0x70, 0x31, 0x6F, 0x44, 0x34, 0x74, 0x55, 0x70, 0x76, 0x73, 0x46, 0x63, 0x69, 0x34, 0x51, 0x4A, 0x74, 0x59, 0x4E, 0x6A, 0x4E, 0x6E, 0x47, 0x55, 0x32, 0x0D, 0x0A, 0x57, 0x50, 0x48, 0x36, 0x72, 0x76, 0x43, 0x68, 0x47, 0x6C, 0x31, 0x49, 0x52, 0x4B, 0x72, 0x78, 0x4D, 0x74, 0x71, 0x4C, 0x69, 0x65, 0x6C, 0x73, 0x76, 0x61, 0x6A, 0x55, 0x6A, 0x79, 0x72, 0x67, 0x4F, 0x43, 0x36, 0x4E, 0x6D, 0x79, 0x6D, 0x59, 0x4D, 0x76, 0x5A, 0x4E, 0x45, 0x52, 0x33, 0x68, 0x74, 0x46, 0x45, 0x74, 0x4C, 0x31, 0x65, 0x51, 0x62, 0x43, 0x79, 0x54, 0x66, 0x44, 0x6D, 0x74, 0x0D, 0x0A, 0x59, 0x79, 0x51, 0x31, 0x57, 0x74, 0x34, 0x4F, 0x74, 0x31, 0x32, 0x6C, 0x78, 0x66, 0x30, 0x77, 0x56, 0x49, 0x52, 0x35, 0x6D, 0x63, 0x47, 0x4E, 0x37, 0x58, 0x43, 0x58, 0x4A, 0x52, 0x48, 0x4F, 0x46, 0x48, 0x53, 0x66, 0x31, 0x67, 0x7A, 0x58, 0x57, 0x61, 0x62, 0x52, 0x53, 0x76, 0x6D, 0x74, 0x31, 0x6E, 0x72, 0x6C, 0x37, 0x73, 0x57, 0x36, 0x63, 0x6A, 0x78, 0x6C, 0x6A, 0x75, 0x75, 0x51, 0x0D, 0x0A, 0x61, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x0D, 0x0A };
private byte[] b = { 0x0D, 0x0A, 0x4D, 0x49, 0x49, 0x42, 0x49, 0x6A, 0x41, 0x4E, 0x42, 0x67, 0x6B, 0x71, 0x68, 0x6B, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4F, 0x43, 0x41, 0x51, 0x38, 0x41, 0x4D, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4B, 0x43, 0x41, 0x51, 0x45, 0x41, 0x70, 0x33, 0x41, 0x61, 0x4E, 0x41, 0x58, 0x2B, 0x2F, 0x5A, 0x55, 0x4C, 0x66, 0x43, 0x53, 0x48, 0x6D, 0x63, 0x2B, 0x55, 0x0D, 0x0A, 0x61, 0x4C, 0x4D, 0x52, 0x57, 0x62, 0x48, 0x38, 0x6F, 0x67, 0x62, 0x69, 0x6F, 0x4B, 0x36, 0x30, 0x47, 0x67, 0x38, 0x75, 0x77, 0x50, 0x42, 0x6C, 0x51, 0x7A, 0x73, 0x32, 0x72, 0x52, 0x52, 0x4C, 0x33, 0x57, 0x2F, 0x71, 0x4B, 0x2F, 0x64, 0x66, 0x66, 0x4B, 0x77, 0x73, 0x33, 0x2B, 0x39, 0x6D, 0x46, 0x4D, 0x6E, 0x34, 0x6A, 0x47, 0x6F, 0x35, 0x36, 0x77, 0x34, 0x6D, 0x37, 0x74, 0x67, 0x78, 0x0D, 0x0A, 0x75, 0x4F, 0x45, 0x6C, 0x53, 0x65, 0x55, 0x4B, 0x2F, 0x66, 0x30, 0x7A, 0x6F, 0x4C, 0x58, 0x70, 0x5A, 0x63, 0x6C, 0x31, 0x65, 0x51, 0x4F, 0x50, 0x67, 0x39, 0x75, 0x58, 0x76, 0x65, 0x4B, 0x48, 0x42, 0x57, 0x76, 0x58, 0x66, 0x52, 0x31, 0x34, 0x50, 0x78, 0x39, 0x37, 0x36, 0x68, 0x31, 0x69, 0x72, 0x32, 0x57, 0x6E, 0x58, 0x49, 0x69, 0x4F, 0x32, 0x6F, 0x49, 0x43, 0x74, 0x65, 0x64, 0x4C, 0x0D, 0x0A, 0x6C, 0x68, 0x61, 0x66, 0x42, 0x57, 0x75, 0x31, 0x61, 0x37, 0x6A, 0x48, 0x30, 0x36, 0x75, 0x4D, 0x53, 0x75, 0x2F, 0x45, 0x72, 0x4B, 0x37, 0x70, 0x50, 0x4D, 0x42, 0x5A, 0x2B, 0x34, 0x2F, 0x31, 0x45, 0x2B, 0x79, 0x69, 0x55, 0x4D, 0x77, 0x75, 0x52, 0x55, 0x52, 0x57, 0x35, 0x5A, 0x38, 0x4E, 0x49, 0x6B, 0x47, 0x58, 0x6A, 0x4F, 0x62, 0x67, 0x30, 0x6C, 0x6E, 0x7A, 0x64, 0x41, 0x61, 0x49, 0x0D, 0x0A, 0x6D, 0x49, 0x5A, 0x31, 0x4E, 0x53, 0x31, 0x62, 0x7A, 0x75, 0x61, 0x4A, 0x6A, 0x63, 0x54, 0x66, 0x2F, 0x73, 0x44, 0x4D, 0x4E, 0x4B, 0x74, 0x66, 0x4A, 0x5A, 0x47, 0x6C, 0x30, 0x45, 0x77, 0x57, 0x33, 0x66, 0x68, 0x47, 0x64, 0x62, 0x69, 0x54, 0x6F, 0x41, 0x73, 0x4A, 0x50, 0x61, 0x4C, 0x63, 0x30, 0x5A, 0x68, 0x58, 0x4D, 0x6D, 0x5A, 0x44, 0x54, 0x54, 0x53, 0x4B, 0x6D, 0x77, 0x6C, 0x30, 0x0D, 0x0A, 0x53, 0x58, 0x51, 0x70, 0x31, 0x72, 0x4E, 0x32, 0x6D, 0x35, 0x72, 0x39, 0x6F, 0x45, 0x2B, 0x6B, 0x32, 0x39, 0x52, 0x6E, 0x39, 0x76, 0x51, 0x4B, 0x70, 0x2B, 0x71, 0x39, 0x55, 0x67, 0x36, 0x73, 0x64, 0x6F, 0x2F, 0x78, 0x4A, 0x57, 0x6B, 0x55, 0x77, 0x36, 0x65, 0x76, 0x4F, 0x53, 0x52, 0x49, 0x33, 0x6E, 0x62, 0x78, 0x75, 0x4A, 0x45, 0x56, 0x4E, 0x46, 0x77, 0x4B, 0x4C, 0x50, 0x56, 0x36, 0x0D, 0x0A, 0x2B, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x0D, 0x0A };
private byte[] b = { 0x0D, 0x0A, 0x4D, 0x49, 0x49, 0x42, 0x49, 0x6A, 0x41, 0x4E, 0x42, 0x67, 0x6B, 0x71, 0x68, 0x6B, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4F, 0x43, 0x41, 0x51, 0x38, 0x41, 0x4D, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4B, 0x43, 0x41, 0x51, 0x45, 0x41, 0x74, 0x4F, 0x5A, 0x47, 0x73, 0x58, 0x37, 0x55, 0x6F, 0x44, 0x50, 0x75, 0x78, 0x43, 0x66, 0x45, 0x75, 0x77, 0x34, 0x69, 0x0D, 0x0A, 0x79, 0x57, 0x44, 0x41, 0x53, 0x70, 0x77, 0x61, 0x4E, 0x31, 0x39, 0x47, 0x61, 0x50, 0x4E, 0x72, 0x54, 0x6C, 0x57, 0x7A, 0x36, 0x4B, 0x37, 0x4D, 0x4B, 0x58, 0x47, 0x72, 0x41, 0x51, 0x70, 0x59, 0x44, 0x35, 0x67, 0x4E, 0x5A, 0x38, 0x6E, 0x47, 0x64, 0x66, 0x52, 0x67, 0x70, 0x35, 0x32, 0x54, 0x45, 0x72, 0x54, 0x48, 0x53, 0x4E, 0x6F, 0x52, 0x6A, 0x67, 0x66, 0x70, 0x78, 0x47, 0x71, 0x4B, 0x0D, 0x0A, 0x41, 0x70, 0x50, 0x55, 0x49, 0x53, 0x73, 0x49, 0x61, 0x6E, 0x47, 0x4D, 0x63, 0x79, 0x66, 0x2F, 0x48, 0x32, 0x62, 0x38, 0x70, 0x47, 0x75, 0x7A, 0x31, 0x6F, 0x46, 0x31, 0x39, 0x6B, 0x56, 0x4B, 0x53, 0x79, 0x5A, 0x54, 0x50, 0x61, 0x56, 0x4C, 0x62, 0x45, 0x2B, 0x31, 0x43, 0x77, 0x37, 0x46, 0x55, 0x4C, 0x62, 0x49, 0x30, 0x34, 0x62, 0x63, 0x36, 0x34, 0x58, 0x6E, 0x57, 0x53, 0x48, 0x6F, 0x0D, 0x0A, 0x61, 0x51, 0x41, 0x58, 0x72, 0x59, 0x4B, 0x47, 0x70, 0x43, 0x37, 0x6F, 0x44, 0x6F, 0x6D, 0x52, 0x47, 0x4D, 0x74, 0x78, 0x32, 0x38, 0x66, 0x69, 0x67, 0x75, 0x33, 0x41, 0x48, 0x41, 0x6B, 0x31, 0x55, 0x51, 0x72, 0x63, 0x43, 0x76, 0x45, 0x33, 0x2B, 0x30, 0x49, 0x54, 0x54, 0x41, 0x37, 0x58, 0x38, 0x78, 0x61, 0x52, 0x77, 0x7A, 0x36, 0x2B, 0x67, 0x62, 0x2B, 0x75, 0x4C, 0x67, 0x43, 0x64, 0x0D, 0x0A, 0x69, 0x58, 0x79, 0x52, 0x59, 0x44, 0x6F, 0x64, 0x47, 0x38, 0x69, 0x2B, 0x6B, 0x6B, 0x31, 0x59, 0x49, 0x74, 0x33, 0x66, 0x32, 0x6D, 0x74, 0x37, 0x6A, 0x48, 0x2B, 0x75, 0x45, 0x48, 0x71, 0x42, 0x59, 0x6A, 0x49, 0x66, 0x76, 0x76, 0x6F, 0x36, 0x67, 0x35, 0x4D, 0x5A, 0x7A, 0x34, 0x4B, 0x4E, 0x7A, 0x37, 0x45, 0x77, 0x63, 0x36, 0x2B, 0x73, 0x44, 0x79, 0x4F, 0x38, 0x62, 0x6D, 0x6C, 0x58, 0x0D, 0x0A, 0x65, 0x46, 0x6E, 0x48, 0x6F, 0x36, 0x59, 0x41, 0x67, 0x43, 0x63, 0x61, 0x48, 0x56, 0x76, 0x56, 0x74, 0x47, 0x4E, 0x43, 0x78, 0x43, 0x64, 0x31, 0x4F, 0x35, 0x77, 0x57, 0x48, 0x76, 0x55, 0x4E, 0x39, 0x38, 0x35, 0x48, 0x48, 0x51, 0x59, 0x6E, 0x46, 0x72, 0x37, 0x71, 0x7A, 0x4A, 0x61, 0x4C, 0x39, 0x63, 0x50, 0x62, 0x37, 0x33, 0x35, 0x70, 0x50, 0x32, 0x68, 0x62, 0x30, 0x49, 0x58, 0x65, 0x0D, 0x0A, 0x79, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x0D, 0x0A };
private byte[] a2 = { 0x4D, 0x49, 0x49, 0x42, 0x49, 0x6A, 0x41, 0x4E, 0x42, 0x67, 0x6B, 0x71, 0x68, 0x6B, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4F, 0x43, 0x41, 0x51, 0x38, 0x41, 0x4D, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4B, 0x43, 0x41, 0x51, 0x45, 0x41, 0x77, 0x31, 0x64, 0x71, 0x46, 0x33, 0x53, 0x6B, 0x43, 0x61, 0x41, 0x41, 0x6D, 0x4D, 0x7A, 0x73, 0x38, 0x38, 0x39, 0x49, 0x71, 0x64, 0x57, 0x39, 0x4D, 0x32, 0x64, 0x49, 0x64, 0x68, 0x33, 0x6A, 0x47, 0x39, 0x79, 0x50, 0x63, 0x6D, 0x4C, 0x6E, 0x6D, 0x4A, 0x69, 0x47, 0x70, 0x42, 0x46, 0x34, 0x45, 0x39, 0x56, 0x48, 0x53, 0x4D, 0x47, 0x65, 0x38, 0x6F, 0x50, 0x41, 0x79, 0x32, 0x6B, 0x4A, 0x44, 0x6D, 0x64, 0x4E, 0x74, 0x34, 0x42, 0x63, 0x45, 0x79, 0x67, 0x76, 0x73, 0x73, 0x45, 0x66, 0x67, 0x69, 0x6E, 0x76, 0x61, 0x35, 0x74, 0x35, 0x6A, 0x6D, 0x33, 0x35, 0x32, 0x55, 0x41, 0x6F, 0x44, 0x6F, 0x73, 0x55, 0x4A, 0x6B, 0x54, 0x58, 0x47, 0x51, 0x68, 0x70, 0x41, 0x57, 0x4D, 0x46, 0x34, 0x66, 0x42, 0x6D, 0x42, 0x70, 0x4F, 0x33, 0x45, 0x65, 0x64, 0x47, 0x36, 0x32, 0x72, 0x4F, 0x73, 0x71, 0x4D, 0x42, 0x67, 0x6D, 0x53, 0x64, 0x41, 0x79, 0x78, 0x43, 0x53, 0x50, 0x42, 0x52, 0x4A, 0x49, 0x4F, 0x46, 0x52, 0x30, 0x51, 0x67, 0x5A, 0x46, 0x62, 0x52, 0x6E, 0x55, 0x30, 0x66, 0x72, 0x6A, 0x33, 0x34, 0x66, 0x69, 0x56, 0x6D, 0x67, 0x59, 0x69, 0x4C, 0x75, 0x5A, 0x53, 0x41, 0x6D, 0x49, 0x62, 0x73, 0x38, 0x5A, 0x78, 0x69, 0x48, 0x50, 0x64, 0x70, 0x31, 0x6F, 0x44, 0x34, 0x74, 0x55, 0x70, 0x76, 0x73, 0x46, 0x63, 0x69, 0x34, 0x51, 0x4A, 0x74, 0x59, 0x4E, 0x6A, 0x4E, 0x6E, 0x47, 0x55, 0x32, 0x57, 0x50, 0x48, 0x36, 0x72, 0x76, 0x43, 0x68, 0x47, 0x6C, 0x31, 0x49, 0x52, 0x4B, 0x72, 0x78, 0x4D, 0x74, 0x71, 0x4C, 0x69, 0x65, 0x6C, 0x73, 0x76, 0x61, 0x6A, 0x55, 0x6A, 0x79, 0x72, 0x67, 0x4F, 0x43, 0x36, 0x4E, 0x6D, 0x79, 0x6D, 0x59, 0x4D, 0x76, 0x5A, 0x4E, 0x45, 0x52, 0x33, 0x68, 0x74, 0x46, 0x45, 0x74, 0x4C, 0x31, 0x65, 0x51, 0x62, 0x43, 0x79, 0x54, 0x66, 0x44, 0x6D, 0x74, 0x59, 0x79, 0x51, 0x31, 0x57, 0x74, 0x34, 0x4F, 0x74, 0x31, 0x32, 0x6C, 0x78, 0x66, 0x30, 0x77, 0x56, 0x49, 0x52, 0x35, 0x6D, 0x63, 0x47, 0x4E, 0x37, 0x58, 0x43, 0x58, 0x4A, 0x52, 0x48, 0x4F, 0x46, 0x48, 0x53, 0x66, 0x31, 0x67, 0x7A, 0x58, 0x57, 0x61, 0x62, 0x52, 0x53, 0x76, 0x6D, 0x74, 0x31, 0x6E, 0x72, 0x6C, 0x37, 0x73, 0x57, 0x36, 0x63, 0x6A, 0x78, 0x6C, 0x6A, 0x75, 0x75, 0x51, 0x61, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42 };
@ -49,6 +50,8 @@ namespace Navicat_Keygen_Patch_By_DFoX
private string[] langname = { "en-GB", "es-ES", "fr-FR", "de-DE", "pl-PL", "pt-PT", "ru-RU", "ko-KR", "zh-CN", "ja-JP", "zh-TW" };
private string hostPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), @"drivers\etc\hosts");
private string Serial = String.Empty;
private string dirtmp = (Path.GetTempPath() != null) ? Path.GetTempPath() : Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
[System.Runtime.InteropServices.DllImport("Imagehlp.dll")]
private static extern bool ImageRemoveCertificate(IntPtr handle, int index);
public FNavicat()
@ -488,7 +491,7 @@ namespace Navicat_Keygen_Patch_By_DFoX
string DeviceIdentifier = null;
//string Platform = null;
string snKey = null;
Stream stream = new MemoryStream(Resources.RegPrivateKey);
Stream stream = new MemoryStream(Resources.RegPrivateKeyNP);
StreamReader stReader = new StreamReader(stream);
PemReader pr = new PemReader(stReader);
AsymmetricCipherKeyPair keys = (AsymmetricCipherKeyPair)pr.ReadObject();
@ -696,20 +699,20 @@ namespace Navicat_Keygen_Patch_By_DFoX
string clvalue = combolang.Items[combolang.SelectedIndex].ToString().Trim();
try
{
if (clvalue != "Simplified Chinese")
if (clvalue == "Simplified Chinese" || clvalue == "Traditional Chinese")
{
manipulator.SetText(editHandles[6], this.Serial.Substring(startIndex, 4));
manipulator.SetText(editHandles[5], this.Serial.Substring(startIndex += 5, 4));
manipulator.SetText(editHandles[4], this.Serial.Substring(startIndex += 5, 4));
manipulator.SetText(editHandles[3], this.Serial.Substring(startIndex + 5, 4));
}
else
{
manipulator.SetText(editHandles[3], this.Serial.Substring(startIndex, 4));
manipulator.SetText(editHandles[2], this.Serial.Substring(startIndex += 5, 4));
manipulator.SetText(editHandles[1], this.Serial.Substring(startIndex += 5, 4));
manipulator.SetText(editHandles[0], this.Serial.Substring(startIndex + 5, 4));
}
else
{
manipulator.SetText(editHandles[5], this.Serial.Substring(startIndex, 4));
manipulator.SetText(editHandles[4], this.Serial.Substring(startIndex += 5, 4));
manipulator.SetText(editHandles[3], this.Serial.Substring(startIndex += 5, 4));
manipulator.SetText(editHandles[2], this.Serial.Substring(startIndex + 5, 4));
}
}
catch
{
@ -904,160 +907,82 @@ namespace Navicat_Keygen_Patch_By_DFoX
g1.Enabled = g2.Enabled = g3.Enabled = g4.Enabled = true;
return;
}
private void PatchewNV(string file)
private void terminaProcesso(Process[] nomiProcessi)
{
puhost(patchhost.Checked ? false : true);
string pathdir = Path.GetDirectoryName(file);
bool is64bit = filea64bit(file);
string libcc = pathdir + @"\libcc.dll";
bool libccok1 = true;
bool libccok2 = true;
if (File.Exists(libcc))
foreach (Process p in nomiProcessi)
{
bool is64bitlibcc = filea64bit(libcc);
byte[] filearrlibcc = File.ReadAllBytes(libcc);
int offsetHexlibcc = 0;
byte[][] libcc_c =
{
new byte[] { 0x44, 0x37, 0x35, 0x31, 0x32, 0x35, 0x42, 0x37, 0x30, 0x37, 0x36, 0x37, 0x42, 0x39, 0x34, 0x31, 0x34, 0x35, 0x42, 0x34, 0x37, 0x43, 0x31, 0x43, 0x42, 0x33, 0x43, 0x30, 0x37, 0x35, 0x35, 0x45, 0x37, 0x43, 0x43, 0x42, 0x38, 0x38, 0x32, 0x35, 0x43, 0x35, 0x44, 0x43, 0x45, 0x30, 0x43, 0x35, 0x38, 0x41, 0x43, 0x46, 0x39, 0x34, 0x34, 0x45, 0x30, 0x38, 0x32, 0x38, 0x30, 0x31, 0x34, 0x30, 0x39, 0x41, 0x30, 0x32, 0x34, 0x37, 0x32, 0x46, 0x41, 0x46, 0x46, 0x44, 0x31, 0x43, 0x44, 0x37, 0x37, 0x38, 0x36, 0x34, 0x42, 0x42, 0x38, 0x32, 0x31, 0x41, 0x45, 0x33, 0x36, 0x37, 0x36, 0x36, 0x46, 0x45, 0x45, 0x44, 0x45, 0x36, 0x41, 0x32, 0x34, 0x46, 0x31, 0x32, 0x36, 0x36, 0x32, 0x39, 0x35, 0x34, 0x31, 0x36, 0x38, 0x42, 0x46, 0x41, 0x33, 0x31, 0x34, 0x42, 0x44, 0x39, 0x35, 0x30, 0x33, 0x32, 0x42, 0x39, 0x44, 0x38, 0x32, 0x34, 0x34, 0x35, 0x33, 0x35, 0x35, 0x45, 0x44, 0x37, 0x42, 0x43, 0x30, 0x42, 0x38, 0x38, 0x30, 0x38, 0x38, 0x37, 0x44, 0x36, 0x35, 0x30, 0x46, 0x35 },
is64bitlibcc ? new byte[] { 0x41, 0xB8, 0xFE, 0xEA, 0xBC, 0x01 } : new byte[] { 0x68, 0xFE, 0xEA, 0xBC, 0x01 },// 29158142 -> 1BCEAFEh -> FEEABC01
new byte[] { 0x45, 0x31, 0x43, 0x45, 0x44, 0x30, 0x39, 0x42, 0x39, 0x43, 0x32, 0x31, 0x38, 0x36, 0x42, 0x46, 0x37, 0x31, 0x41, 0x37, 0x30, 0x43, 0x30, 0x46, 0x45, 0x32, 0x46, 0x31, 0x45, 0x30, 0x41, 0x45, 0x46, 0x33, 0x42, 0x44, 0x36, 0x42, 0x37, 0x35, 0x32, 0x37, 0x37, 0x41, 0x41, 0x42, 0x32, 0x30, 0x44, 0x46, 0x41, 0x46, 0x33, 0x44, 0x31, 0x31, 0x30, 0x46, 0x37, 0x35, 0x39, 0x31, 0x32, 0x42, 0x46, 0x42, 0x36, 0x33, 0x41, 0x43, 0x35, 0x30, 0x45, 0x43, 0x34, 0x43, 0x34, 0x38, 0x36, 0x38, 0x39, 0x44, 0x31, 0x35, 0x30, 0x32, 0x37, 0x31, 0x35, 0x32, 0x34, 0x33, 0x41, 0x37, 0x39, 0x46, 0x33, 0x39, 0x46, 0x46, 0x32, 0x44, 0x45, 0x32, 0x42, 0x46, 0x31, 0x35, 0x43, 0x45, 0x34, 0x33, 0x38, 0x46, 0x46, 0x38, 0x38, 0x35, 0x37, 0x34, 0x35, 0x45, 0x44, 0x35, 0x34, 0x35, 0x37, 0x33, 0x38, 0x35, 0x30, 0x45, 0x38, 0x41, 0x39, 0x46, 0x34, 0x30, 0x45, 0x45, 0x32, 0x46, 0x46, 0x35, 0x30, 0x35, 0x45, 0x42, 0x37, 0x34, 0x37, 0x36, 0x46, 0x39, 0x35, 0x41, 0x44, 0x42, 0x37, 0x38, 0x33, 0x42, 0x32, 0x38, 0x43, 0x41, 0x33, 0x37, 0x34, 0x46, 0x41, 0x43, 0x34, 0x36, 0x33, 0x32, 0x38, 0x39, 0x32, 0x41, 0x42, 0x38, 0x32, 0x46, 0x42, 0x33, 0x42, 0x46, 0x34, 0x37, 0x31, 0x35, 0x46, 0x43, 0x46, 0x45, 0x36, 0x45, 0x38, 0x32, 0x44, 0x30, 0x33, 0x37, 0x33, 0x31, 0x46, 0x43, 0x33, 0x37, 0x36, 0x32, 0x42, 0x36, 0x41, 0x41, 0x43, 0x33, 0x44, 0x46, 0x31, 0x43, 0x33, 0x42, 0x43, 0x36, 0x34, 0x36, 0x46, 0x45, 0x39, 0x43, 0x44, 0x33, 0x43, 0x36, 0x32, 0x36, 0x36, 0x33, 0x41, 0x39, 0x37, 0x45, 0x45, 0x37, 0x32, 0x44, 0x42, 0x39, 0x33, 0x32, 0x41, 0x33, 0x30, 0x31, 0x33, 0x31, 0x32, 0x42, 0x34, 0x41, 0x37, 0x36, 0x33, 0x33, 0x31, 0x30, 0x30, 0x43, 0x38, 0x43, 0x43, 0x33, 0x35, 0x37, 0x32, 0x36, 0x32, 0x43, 0x33, 0x39, 0x41, 0x32, 0x42, 0x33, 0x41, 0x36, 0x34, 0x42, 0x32, 0x32, 0x34, 0x46, 0x35, 0x32, 0x37, 0x36, 0x44, 0x35, 0x45, 0x44, 0x42, 0x44, 0x46, 0x30, 0x38, 0x30, 0x34, 0x44, 0x43, 0x33, 0x41, 0x43, 0x34, 0x42, 0x38, 0x33, 0x35, 0x31, 0x36, 0x32, 0x42, 0x42, 0x31, 0x39, 0x36, 0x39, 0x45, 0x41, 0x45, 0x42, 0x41, 0x44, 0x43, 0x34, 0x33, 0x44, 0x32, 0x35, 0x31, 0x31, 0x44, 0x36, 0x45, 0x30, 0x32, 0x33, 0x39, 0x32, 0x38, 0x37, 0x38, 0x31, 0x42, 0x31, 0x36, 0x37, 0x41, 0x34, 0x38, 0x32, 0x37, 0x33, 0x42, 0x39, 0x35, 0x33, 0x33, 0x37, 0x38, 0x44, 0x33, 0x44, 0x32, 0x30, 0x38, 0x30, 0x43, 0x43, 0x30, 0x36, 0x37, 0x37, 0x37, 0x45, 0x38, 0x41, 0x32, 0x33, 0x36, 0x34, 0x46, 0x30, 0x32, 0x33, 0x34, 0x42, 0x38, 0x31, 0x30, 0x36, 0x34, 0x43, 0x35, 0x43, 0x37, 0x33, 0x39, 0x41, 0x38, 0x44, 0x41, 0x32, 0x38, 0x44, 0x43, 0x35, 0x38, 0x38, 0x39, 0x30, 0x37, 0x32, 0x42, 0x46, 0x33, 0x37, 0x36, 0x38, 0x35, 0x43, 0x42, 0x43, 0x39, 0x34, 0x43, 0x32, 0x44, 0x33, 0x31, 0x44, 0x30, 0x31, 0x37, 0x39, 0x41, 0x44, 0x38, 0x36, 0x44, 0x38, 0x45, 0x33, 0x41, 0x41, 0x38, 0x30, 0x39, 0x30, 0x44, 0x34, 0x46, 0x30, 0x42, 0x32, 0x38, 0x31, 0x42, 0x45, 0x33, 0x37, 0x45, 0x30, 0x31, 0x34, 0x33, 0x37, 0x34, 0x36, 0x45, 0x36, 0x30, 0x34, 0x39, 0x43, 0x43, 0x43, 0x30, 0x36, 0x38, 0x39, 0x39, 0x34, 0x30, 0x31, 0x32, 0x36, 0x34, 0x46, 0x41, 0x34, 0x37, 0x31, 0x43, 0x30, 0x31, 0x36, 0x41, 0x39, 0x36, 0x43, 0x37, 0x39, 0x38, 0x31, 0x35, 0x42, 0x35, 0x35, 0x42, 0x42, 0x43, 0x32, 0x36, 0x42, 0x34, 0x33, 0x30, 0x35, 0x32, 0x36, 0x30, 0x39, 0x44, 0x39, 0x44, 0x31, 0x37, 0x35, 0x46, 0x42, 0x43, 0x44, 0x45, 0x34, 0x35, 0x35, 0x33, 0x39, 0x32, 0x46, 0x31, 0x30, 0x45, 0x35, 0x31, 0x45, 0x43, 0x31, 0x36, 0x32, 0x46, 0x35, 0x31, 0x43, 0x46, 0x37, 0x33, 0x32, 0x45, 0x36, 0x42, 0x42, 0x33, 0x39, 0x31, 0x46, 0x35, 0x36, 0x42, 0x42, 0x46, 0x44, 0x38, 0x44, 0x39, 0x35, 0x37, 0x44, 0x46, 0x33, 0x44, 0x34, 0x43, 0x35, 0x35, 0x42, 0x37, 0x31, 0x43, 0x45, 0x46, 0x44, 0x35, 0x34, 0x42, 0x31, 0x39, 0x43, 0x31, 0x36, 0x44, 0x34, 0x35, 0x38, 0x37, 0x35, 0x37, 0x33, 0x37, 0x33, 0x45, 0x36, 0x39, 0x38, 0x44, 0x37, 0x45, 0x36, 0x39, 0x33, 0x41, 0x38, 0x46, 0x43, 0x33, 0x39, 0x38, 0x31, 0x35, 0x41, 0x38, 0x42, 0x46, 0x30, 0x33, 0x42, 0x41, 0x30, 0x35, 0x45, 0x41, 0x38, 0x43, 0x38, 0x37, 0x37, 0x38, 0x44, 0x33, 0x38, 0x46, 0x39, 0x38, 0x37, 0x33, 0x44, 0x36, 0x32, 0x42, 0x34, 0x34, 0x36, 0x30, 0x46, 0x34, 0x31, 0x41, 0x43, 0x46, 0x39, 0x39, 0x37, 0x43, 0x33, 0x30, 0x45, 0x37, 0x43, 0x33, 0x41, 0x46, 0x30, 0x32, 0x35, 0x46, 0x41, 0x31, 0x37, 0x31, 0x42, 0x35, 0x46, 0x35, 0x41, 0x44, 0x34, 0x44, 0x36, 0x42, 0x31, 0x35, 0x45, 0x39, 0x35, 0x43, 0x32, 0x37, 0x46, 0x36, 0x42, 0x33, 0x35, 0x41, 0x44, 0x36, 0x31, 0x38, 0x37, 0x35, 0x45, 0x35, 0x35, 0x30, 0x35, 0x34, 0x34, 0x39, 0x42, 0x34, 0x45 },
is64bitlibcc ? new byte[] { 0x41, 0xB8, 0x59, 0x08, 0x01 } : new byte[] { 0x68, 0x59, 0x08, 0x01, 0x00 }, //67673 -> 10859h -> 590801
new byte[] { 0x39, 0x32, 0x39, 0x33, 0x33 }
};
byte[][] libcc_s =
{
new byte[] { 0x44, 0x37, 0x35, 0x31, 0x32, 0x35, 0x42, 0x37, 0x30, 0x37, 0x36, 0x37, 0x42, 0x39, 0x34, 0x31, 0x34, 0x35, 0x42, 0x34, 0x37, 0x43, 0x31, 0x43, 0x42, 0x33, 0x43, 0x30, 0x37, 0x35, 0x35, 0x45, 0x37, 0x43, 0x43, 0x42, 0x38, 0x38, 0x32, 0x35, 0x43, 0x35, 0x44, 0x43, 0x45, 0x30, 0x43, 0x35, 0x38, 0x41, 0x43, 0x46, 0x39, 0x34, 0x34, 0x45, 0x30, 0x38, 0x32, 0x38, 0x30, 0x31, 0x34, 0x30, 0x39, 0x41, 0x30, 0x32, 0x34, 0x37, 0x32, 0x46, 0x41, 0x46, 0x46, 0x44, 0x31, 0x43, 0x44, 0x37, 0x37, 0x38, 0x36, 0x34, 0x42, 0x42, 0x38, 0x32, 0x31, 0x41, 0x45, 0x33, 0x36, 0x37, 0x36, 0x36, 0x46, 0x45, 0x45, 0x44, 0x45, 0x36, 0x41, 0x32, 0x34, 0x46, 0x31, 0x32, 0x36, 0x36, 0x32, 0x39, 0x35, 0x34, 0x31, 0x36, 0x38, 0x42, 0x46, 0x41, 0x33, 0x31, 0x34, 0x42, 0x44, 0x39, 0x35, 0x30, 0x33, 0x32, 0x42, 0x39, 0x44, 0x38, 0x32, 0x34, 0x34, 0x35, 0x33, 0x35, 0x35, 0x45, 0x44, 0x37, 0x46, 0x32, 0x38, 0x35, 0x33, 0x32, 0x38, 0x43, 0x43, 0x34, 0x31, 0x37, 0x37, 0x32, 0x45, 0x38 },
is64bitlibcc ? new byte[] { 0x41, 0xB8, 0x1D, 0x77, 0x47, 0x05 } : new byte[] { 0x68, 0x1D, 0x77, 0x47, 0x05 }, //88569629 -> 547771Dh -> 1D774705
new byte[] { 0x43, 0x37, 0x41, 0x41, 0x34, 0x38, 0x35, 0x46, 0x30, 0x30, 0x46, 0x45, 0x45, 0x45, 0x38, 0x36, 0x38, 0x33, 0x36, 0x38, 0x44, 0x42, 0x31, 0x38, 0x37, 0x36, 0x39, 0x45, 0x44, 0x41, 0x43, 0x44, 0x46, 0x30, 0x37, 0x36, 0x31, 0x32, 0x31, 0x35, 0x38, 0x44, 0x43, 0x38, 0x31, 0x45, 0x33, 0x33, 0x42, 0x44, 0x36, 0x46, 0x38, 0x37, 0x33, 0x33, 0x41, 0x30, 0x30, 0x33, 0x35, 0x39, 0x46, 0x32, 0x33, 0x35, 0x39, 0x35, 0x35, 0x44, 0x34, 0x35, 0x32, 0x32, 0x35, 0x36, 0x31, 0x36, 0x33, 0x43, 0x32, 0x36, 0x45, 0x34, 0x35, 0x35, 0x37, 0x44, 0x38, 0x34, 0x41, 0x43, 0x35, 0x37, 0x46, 0x37, 0x31, 0x34, 0x32, 0x31, 0x42, 0x31, 0x44, 0x44, 0x39, 0x37, 0x31, 0x39, 0x34, 0x31, 0x46, 0x42, 0x46, 0x33, 0x45, 0x32, 0x36, 0x37, 0x33, 0x45, 0x42, 0x32, 0x31, 0x42, 0x37, 0x43, 0x35, 0x36, 0x35, 0x31, 0x44, 0x46, 0x34, 0x30, 0x41, 0x32, 0x30, 0x38, 0x44, 0x39, 0x35, 0x45, 0x33, 0x37, 0x44, 0x39, 0x36, 0x45, 0x32, 0x31, 0x32, 0x32, 0x42, 0x37, 0x33, 0x39, 0x41, 0x38, 0x39, 0x44, 0x42, 0x46, 0x46, 0x34, 0x39, 0x46, 0x33, 0x39, 0x35, 0x42, 0x44, 0x36, 0x34, 0x31, 0x31, 0x33, 0x30, 0x36, 0x38, 0x44, 0x34, 0x41, 0x32, 0x30, 0x44, 0x38, 0x46, 0x35, 0x45, 0x43, 0x44, 0x30, 0x33, 0x30, 0x36, 0x38, 0x45, 0x46, 0x41, 0x37, 0x44, 0x33, 0x35, 0x38, 0x45, 0x30, 0x32, 0x31, 0x43, 0x45, 0x39, 0x33, 0x41, 0x39, 0x37, 0x30, 0x46, 0x36, 0x35, 0x37, 0x43, 0x45, 0x38, 0x41, 0x35, 0x45, 0x42, 0x32, 0x30, 0x46, 0x39, 0x32, 0x34, 0x32, 0x32, 0x35, 0x43, 0x45, 0x43, 0x32, 0x30, 0x43, 0x32, 0x32, 0x44, 0x34, 0x46, 0x42, 0x45, 0x36, 0x45, 0x35, 0x34, 0x39, 0x32, 0x41, 0x39, 0x45, 0x37, 0x43, 0x44, 0x36, 0x38, 0x39, 0x35, 0x46, 0x38, 0x45, 0x32, 0x39, 0x30, 0x45, 0x42, 0x45, 0x41, 0x34, 0x38, 0x33, 0x46, 0x46, 0x42, 0x32, 0x31, 0x35, 0x35, 0x36, 0x32, 0x31, 0x30, 0x31, 0x30, 0x42, 0x30, 0x38, 0x46, 0x37, 0x45, 0x36, 0x33, 0x44, 0x44, 0x43, 0x31, 0x44, 0x33, 0x37, 0x36, 0x43, 0x31, 0x41, 0x39, 0x44, 0x39, 0x35, 0x30, 0x30, 0x36, 0x46, 0x42, 0x42, 0x43, 0x42, 0x37, 0x31, 0x33, 0x42, 0x39, 0x41, 0x46, 0x30, 0x33, 0x42, 0x35, 0x44, 0x43, 0x35, 0x42, 0x30, 0x34, 0x38, 0x35, 0x42, 0x33, 0x30, 0x33, 0x34, 0x46, 0x33, 0x34, 0x35, 0x30, 0x30, 0x32, 0x32, 0x46, 0x42, 0x37, 0x32, 0x41, 0x44, 0x42, 0x37, 0x46, 0x46, 0x34, 0x33, 0x36, 0x32, 0x36, 0x43, 0x32, 0x30, 0x30, 0x37, 0x41, 0x46, 0x35, 0x44, 0x30, 0x36, 0x31, 0x30, 0x42, 0x45, 0x45, 0x36, 0x45, 0x34, 0x38, 0x41, 0x34, 0x43, 0x45, 0x39, 0x35, 0x39, 0x37, 0x31, 0x37, 0x31, 0x34, 0x39, 0x39, 0x45, 0x38, 0x37, 0x37, 0x35, 0x35, 0x43, 0x35, 0x45, 0x38, 0x46, 0x30, 0x44, 0x31, 0x39, 0x45, 0x31, 0x43, 0x33, 0x38, 0x37, 0x41, 0x34, 0x45, 0x46, 0x41, 0x42, 0x39, 0x39, 0x37, 0x35, 0x35, 0x33, 0x37, 0x35, 0x39, 0x35, 0x34, 0x38, 0x31, 0x31, 0x35, 0x31, 0x41, 0x34, 0x46, 0x39, 0x37, 0x44, 0x30, 0x37, 0x44, 0x32, 0x44, 0x36, 0x30, 0x43, 0x34, 0x36, 0x33, 0x43, 0x43, 0x44, 0x44, 0x37, 0x45, 0x41, 0x37, 0x33, 0x45, 0x37, 0x37, 0x39, 0x32, 0x42, 0x36, 0x39, 0x34, 0x33, 0x32, 0x37, 0x38, 0x42, 0x37, 0x41, 0x45, 0x39, 0x41, 0x33, 0x43, 0x34, 0x43, 0x34, 0x37, 0x36, 0x46, 0x32, 0x43, 0x32, 0x44, 0x31, 0x41, 0x37, 0x32, 0x46, 0x39, 0x34, 0x37, 0x44, 0x41, 0x36, 0x35, 0x31, 0x41, 0x43, 0x32, 0x46, 0x33, 0x36, 0x30, 0x43, 0x42, 0x43, 0x42, 0x37, 0x31, 0x41, 0x31, 0x36, 0x36, 0x32, 0x36, 0x44, 0x33, 0x44, 0x39, 0x46, 0x33, 0x32, 0x44, 0x34, 0x36, 0x31, 0x31, 0x44, 0x32, 0x37, 0x43, 0x41, 0x33, 0x35, 0x45, 0x33, 0x46, 0x32, 0x35, 0x41, 0x30, 0x32, 0x43, 0x44, 0x39, 0x42, 0x31, 0x36, 0x45, 0x32, 0x45, 0x38, 0x45, 0x37, 0x41, 0x43, 0x36, 0x33, 0x36, 0x38, 0x37, 0x32, 0x41, 0x32, 0x35, 0x38, 0x39, 0x46, 0x46, 0x45, 0x46, 0x34, 0x31, 0x34, 0x41, 0x32, 0x43, 0x30, 0x44, 0x36, 0x42, 0x39, 0x39, 0x32, 0x31, 0x39, 0x45, 0x32, 0x34, 0x30, 0x38, 0x45, 0x34, 0x38, 0x35, 0x32, 0x32, 0x41, 0x31, 0x38, 0x44, 0x36, 0x41, 0x37, 0x41, 0x42, 0x37, 0x35, 0x38, 0x37, 0x43, 0x39, 0x38, 0x38, 0x32, 0x34, 0x43, 0x42, 0x44, 0x39, 0x34, 0x30, 0x31, 0x46, 0x37, 0x41, 0x35, 0x46, 0x31, 0x44, 0x39, 0x43, 0x45, 0x31, 0x37, 0x42, 0x34, 0x31, 0x36, 0x39, 0x38, 0x37, 0x30, 0x36, 0x43, 0x37, 0x38, 0x37, 0x43, 0x33, 0x39, 0x42, 0x32, 0x32, 0x37, 0x46, 0x41, 0x30, 0x36, 0x43, 0x30, 0x30, 0x36, 0x30, 0x44, 0x38, 0x36, 0x37, 0x36, 0x32, 0x30, 0x35, 0x31, 0x36, 0x34, 0x46, 0x33, 0x46, 0x31, 0x30, 0x44, 0x30, 0x45, 0x46, 0x38, 0x42, 0x43, 0x36, 0x37, 0x35, 0x43, 0x43, 0x46, 0x38, 0x42, 0x32, 0x37, 0x45, 0x39, 0x41, 0x45, 0x36, 0x34, 0x41, 0x36, 0x44, 0x41, 0x44, 0x39, 0x44, 0x45, 0x36, 0x31, 0x39, 0x42, 0x32, 0x33, 0x38, 0x37, 0x39, 0x45, 0x46 },
is64bitlibcc ? new byte[] { 0x41, 0xB8, 0x6C, 0x5F, 0x00 } : new byte[] { 0x68, 0x6C, 0x5F, 0x00, 0x00 }, //24428 -> 5F6Ch -> 6C5F00
new byte[] { 0x30, 0x30, 0x46, 0x44, 0x37 }
};
for (int i = 0; i < libcc_c.Length; i++)
{
offsetHexlibcc = cercaBytes(filearrlibcc, libcc_c[i], 0, filearrlibcc.Length);
if (offsetHexlibcc != -1)
{
for (int p = 0; p < libcc_s[i].Length; p++)
filearrlibcc[offsetHexlibcc + p] = libcc_s[i][p];
}
else
{
libccok1 = false;
break;
}
}
offsetHexlibcc = 0;
if (is64bitlibcc)
try
{
for (int p = 0; p < a2.Length; p++)
{
byte[] tmpdfxc = { 0x83, 0xF0, a2[p], 0x88, 0x05 };
byte[] tmpdfxs = { 0x83, 0xF0, b2[p], 0x88, 0x05 };
try
{
offsetHexlibcc = cercaBytes(filearrlibcc, tmpdfxc, offsetHexlibcc + 5, filearrlibcc.Length);
if (offsetHexlibcc != -1)
{
for (int p2 = 0; p2 < tmpdfxs.Length; p2++)
filearrlibcc[offsetHexlibcc + p2] = tmpdfxs[p2];
}
else
{
libccok2 = false;
break;
}
}
catch
{
//Nothing
}
}
p.Kill();
}
else
catch
{
int add = 0;
for (int p = 0; p < a2.Length; p++)
try
{
byte[] tmpdfxc = null;
byte[] tmpdfxs = null;
switch (p % 3)
{
case 0:
add = 5;
tmpdfxc = new byte[] { 0x83, 0xF2, a2[p], 0x88, 0x15 };
tmpdfxs = new byte[] { 0x83, 0xF2, b2[p], 0x88, 0x15 };
break;
case 1:
add = 4;
tmpdfxc = new byte[] { 0x83, 0xF0, a2[p], 0xA2 };
tmpdfxs = new byte[] { 0x83, 0xF0, b2[p], 0xA2 };
break;
default:
add = 5;
tmpdfxc = new byte[] { 0x83, 0xF1, a2[p], 0x88, 0x0D };
tmpdfxs = new byte[] { 0x83, 0xF1, b2[p], 0x88, 0x0D };
break;
}
try
{
offsetHexlibcc = cercaBytes(filearrlibcc, tmpdfxc, offsetHexlibcc + add, filearrlibcc.Length);
if (offsetHexlibcc != -1)
{
for (int p2 = 0; p2 < tmpdfxs.Length; p2++)
filearrlibcc[offsetHexlibcc + p2] = tmpdfxs[p2];
}
else
{
libccok2 = false;
break;
}
}
catch
{
//Nothing
}
p.Close();
}
}
if (libccok1 || libccok2)
{
if (controlloBackup.Checked == true)
catch
{
if (File.Exists(libcc + ".BAK"))
File.Delete(libcc + ".BAK");
File.Copy(libcc, libcc + ".BAK");
}
}
else
{
DialogResult dialogResult = MessageBox.Show("No All Pattern Found on libcc for both Solution!\nFile Already Patched... Continue?", "Info", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dialogResult == DialogResult.No)
return;
}
finale(libcc, filearrlibcc);
}
byte[] filearr = File.ReadAllBytes(file);
Thread.Sleep(200);
return;
}
private void PatchewNV(string file)
{
if (controlloBackup.Checked == true)
{
if (File.Exists(file + ".BAK"))
File.Delete(file + ".BAK");
File.Copy(file, file + ".BAK");
string libcc = Path.GetDirectoryName(file) + @"\libcc.dll";
if (File.Exists(libcc))
{
if (File.Exists(libcc + ".BAK"))
File.Delete(libcc + ".BAK");
File.Copy(libcc, libcc + ".BAK");
}
}
int offsetHex = cercaBytes(filearr, a, 0, filearr.Length);
if (offsetHex != -1)
{
for (int p = 0; p < b.Length; p++)
filearr[offsetHex + p] = b[p];
finale(file, filearr);
}
puhost(patchhost.Checked ? false : true);
bool is64bit = filea64bit(file);
string np3264 = is64bit ? "NP_x64.exe" : "NP_x32.exe";
Process[] pr = Process.GetProcessesByName(np3264.Replace(".exe", ""));
if (pr.Length > 0)
terminaProcesso(pr);
string np = dirtmp + np3264;
string npk = dirtmp + @"NP.pem";
if (File.Exists(np))
File.Delete(np);
File.WriteAllBytes(np, (is64bit ? Resources.NP_x64 : Resources.NP_x32));
File.SetAttributes(np, FileAttributes.Hidden);
if (File.Exists(npk))
File.Delete(npk);
File.WriteAllBytes(npk, Resources.RegPrivateKeyNP);
File.SetAttributes(npk, FileAttributes.Hidden);
Process p = new Process();
p.StartInfo.WorkingDirectory = dirtmp;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = np;
if (Environment.OSVersion.Version.Major >= 6)
p.StartInfo.Verb = "runas";
p.StartInfo.Arguments = " \"" + Path.GetDirectoryName(file) + "\" \"" + npk + "\"";
p.Start();
//p.WaitForExit(60000);
string error = p.StandardOutput.ReadToEnd();
if (error.Contains("Patch has been done successfully"))
MessageBox.Show(Path.GetFileName(file) + ((!is64bit) ? " - x32 -> " : " - x64 -> ") + " Cracked!.", "Info...", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
else
{
MessageBox.Show("No Pattern Found! / File Already Patched?", "Info", MessageBoxButtons.OK, MessageBoxIcon.Question);
return;
}
MessageBox.Show(Path.GetFileName(file) + ((!is64bit) ? " - x32 -> " : " - x64 -> ") + " Cracked!.\nLibcc Solution 1 -> " + (libccok1 ? "Ok" : "Error") + "\nLibcc Solution 2 -> " + (libccok2 ? "Ok" : "Error"), "Info...", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
MessageBox.Show("No All Pattern Found!\nFile Already Patched?", "Info", MessageBoxButtons.OK, MessageBoxIcon.Question);
if (File.Exists(np))
File.Delete(np);
if (File.Exists(npk))
File.Delete(npk);
return;
}
private void finale(string filefull, byte[] filearr, bool mt = true)
{
@ -1151,6 +1076,7 @@ namespace Navicat_Keygen_Patch_By_DFoX
int indiceFine = contatore > 0 ? Math.Min(indiceDiPartenza + contatore, array.Length) : array.Length;
int dfx = 0;
int ultimoDfx = 0;
while (i < indiceFine)
{
ultimoDfx = dfx;
@ -1495,4 +1421,4 @@ namespace Navicat_Keygen_Patch_By_DFoX
.ToArray();
}
}
}
}

@ -34,11 +34,12 @@
<PropertyGroup>
<ApplicationIcon>navicat_MAINICON.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup />
<PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest>
<StartupObject>Navicat_Keygen_Patch_By_DFoX.Program</StartupObject>
</PropertyGroup>
<PropertyGroup>
<StartupObject>Navicat_Keygen_Patch_By_DFoX.Program</StartupObject>
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
<ItemGroup>
<Reference Include="BouncyCastle.Crypto">
@ -101,11 +102,14 @@
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="Resources\NP_x64.exe" />
<None Include="Resources\NP_x32.exe" />
<EmbeddedResource Include="Newtonsoft.Json.dll" />
<EmbeddedResource Include="BouncyCastle.Crypto.dll" />
<Content Include="navicat_MAINICON.ico" />
<None Include="Resources\MongoDB.ico" />
<None Include="Resources\RegPrivateKey.pem" />
<None Include="Resources\RegPrivateKeyNP.pem" />
<None Include="Resources\SQLite.ico" />
<None Include="Resources\ReportViewer.ico" />
<None Include="Resources\PostgreSQL.ico" />

@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("DeltaFoX")]
[assembly: AssemblyProduct("Navicat_Keygen_Patch_By_DFoX")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("DeFconX")]
[assembly: AssemblyCulture("")]
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
// usando l'asterisco '*' come illustrato di seguito:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("4.2.0.0")]
[assembly: AssemblyFileVersion("4.2.0.0")]
[assembly: AssemblyVersion("4.3.0.0")]
[assembly: AssemblyFileVersion("4.3.0.0")]

@ -130,6 +130,26 @@ namespace Navicat_Keygen_Patch_By_DFoX.Properties {
}
}
/// <summary>
/// Cerca una risorsa localizzata di tipo System.Byte[].
/// </summary>
internal static byte[] NP_x32 {
get {
object obj = ResourceManager.GetObject("NP_x32", resourceCulture);
return ((byte[])(obj));
}
}
/// <summary>
/// Cerca una risorsa localizzata di tipo System.Byte[].
/// </summary>
internal static byte[] NP_x64 {
get {
object obj = ResourceManager.GetObject("NP_x64", resourceCulture);
return ((byte[])(obj));
}
}
/// <summary>
/// Cerca una risorsa localizzata di tipo System.Drawing.Icon simile a (Icona).
/// </summary>
@ -160,6 +180,16 @@ namespace Navicat_Keygen_Patch_By_DFoX.Properties {
}
}
/// <summary>
/// Cerca una risorsa localizzata di tipo System.Byte[].
/// </summary>
internal static byte[] RegPrivateKeyNP {
get {
object obj = ResourceManager.GetObject("RegPrivateKeyNP", resourceCulture);
return ((byte[])(obj));
}
}
/// <summary>
/// Cerca una risorsa localizzata di tipo System.Drawing.Icon simile a (Icona).
/// </summary>

@ -157,4 +157,13 @@
<data name="MongoDB" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\MongoDB.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="NP_x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\NP_x32.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="NP_x64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\NP_x64.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="RegPrivateKeyNP" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\RegPrivateKeyNP.pem;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAtOZGsX7UoDPuxCfEuw4iyWDASpwaN19GaPNrTlWz6K7MKXGr
AQpYD5gNZ8nGdfRgp52TErTHSNoRjgfpxGqKApPUISsIanGMcyf/H2b8pGuz1oF1
9kVKSyZTPaVLbE+1Cw7FULbI04bc64XnWSHoaQAXrYKGpC7oDomRGMtx28figu3A
HAk1UQrcCvE3+0ITTA7X8xaRwz6+gb+uLgCdiXyRYDodG8i+kk1YIt3f2mt7jH+u
EHqBYjIfvvo6g5MZz4KNz7Ewc6+sDyO8bmlXeFnHo6YAgCcaHVvVtGNCxCd1O5wW
HvUN985HHQYnFr7qzJaL9cPb735pP2hb0IXeywIDAQABAoIBAA5W7qWlQx+L3lJo
QJz/Styhsbx4UU+wWrl5CjmEa6V3LbHfU8naUw6xY+alRPkWrQ68W+swr1dkCd4z
XGF4fIYlx7v1WE5vv81lD0Ei/cXez7uiOYKTDYeVeyW405i7XMOKoTN7ucGiwCJf
U+5p1K12F2pmnVuoaDa2yuynO9hLBqf3SeQ8qd2dQvKLqL8JVLE+a1txl3YuV5Ap
PzUyLtGOmo5pIyKeeQ2dgR+AhnsUPDj5t0F1see6ysQVsNDk7i8Zcyfn2uWy4DPy
NcWu/zLilelKDiYqI2UH+Fm0RzkG7ce2UmNbrG4ESEPNfwMyzy8IUGv3sBxL8p9a
Xvtg7YkCgYEA7x9+cJNjs1DVxhTCatQrqWUwtwDiXZniz/WRUK7mQgX3mdFRhBhH
GjZCvWOz1muYYvkwPSDMzwjwuV3ItPSUp7sI9FWhkrYqG+lMLpKXrYLSj1Grc9pn
CZLQwmL9UegBUihBonm6bp+xJxbQeF/HStUWXP3xnWyRHBwUyAQC5v8CgYEAwarK
08U7NbRcrYBgzegn0n2z3iG16JR/3kLQt/MJAsbQAxavW98b8rUb3V7XvkECiTcD
74XuFdIAeeZeqlcsnYq2Gbr1tKCbTLHewztuFBwsQzeEmu1i81w0LeUaZqtB8HwQ
evRRQGaEZfIdsXCn+PiPb/O5zGJNTJTD3aE/9DUCgYAdYutw/kwEX2zGGQsDgeuT
t8HS26L2CdFb6TvghH37oywYlSbFaw5h5EUzbStOsI5bq3AIMx24W8rpnOLrihsy
ucOR82wV0Zk/MN6R4qYNRsSFpG3DoRWEkaxiFzQ2eqKe7B+UzgzhR3LH8P/Rq0Oc
qK9E4lhtFkiHAdRz+Do7FQKBgH8thkZtJcXNrHKvdGKjSstaiuybXJbgNdwiKmgx
7D/riRwOIJgHOpY2wparuqeQj3bGLwpy+/dOUcu7MX1RA9ZtCcp50PKN6Y4C3FN+
ynngSlzVr3oB29IOQaHF6oFzgzjGcBgeKuFMsTM1PLSSU2wW5jLRbbi+8R4SL1Fy
m8nlAoGBAJsq8E6qkAErFkjHt7u1Pmp7iGdgoP8hDQ0NXH6BxU432j3cIT+g2W3y
K28wXuHGamDqA9PLq3lb55wEkHqR62mTBqt9nJAW6CmAsl1Appvtf7ynep5SSNZg
jLUllIz/D76Kb4AXehqfkLmU+X3a1dNofpDSqCr4AdEizZHbX8Zp
-----END RSA PRIVATE KEY-----

@ -24,7 +24,7 @@
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Elenco delle versioni di Windows in cui è stata testata questa applicazione e
per cui è stato previsto l'uso. Rimuovere il commento dagli elementi appropriati per
per cui è stato previsto l'uso. Rimuovere il commento dagli elementi appropriati per
fare in modo che Windows selezioni automaticamente l'ambiente più compatibile. -->
<!-- Windows Vista -->

Loading…
Cancel
Save