Files
2026-08-27 11:21:42 -06:00

1110 lines
49 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security.Cryptography;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using DevexpressPatchKeygen.Properties;
using dnlib.DotNet;
using dnlib.DotNet.Emit;
using dnlib.DotNet.Writer;
using Microsoft.Win32;
namespace DevexpressPatchKeygen
{
public partial class SchemaAdapter : Form
{
public Func<string, IEnumerable<string>> Selector;
public Thread m_Authentication;
public int expression = 24;
public int repository = 1;
public string[] m_Task = new string[]
{
"2012 A.I.O.",
"2013 A.I.O.",
"2015 A.I.O.",
"2017 ENT.",
"2017 PRE.",
"2017 PRO.",
"2019 COM.",
"2019 ENT.",
"2019 PRE.",
"2019 PRO.",
"2022 COM.",
"2022 ENT.",
"2022 PRE.",
"2022 PRO."
};
public string _Parser = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\";
public string m_Property = Path.GetPathRoot(Environment.SystemDirectory);
public string[] _Error;
public List<string> mapping = new List<string>();
public int m_Val;
public bool m_Process = true;
public string publisher = "<RSAKeyValue><Modulus>yNuZy4wH5P3B8z6JizxE8jCOcVi56/1pUEogqmBKb/oHzZoDknOZNS2Eezg90LjJPxht3wCzqWaL4EnpLa2KQmJYRUyxb3HawCFlmBmGIq0gUuYs98j9qsD2HgxgzWT5tV0A5w==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
public string instance = "<RSAKeyValue><Modulus>uWen+I3q039Djs70jBiFJqHuqn02tPY5RCvxTccDoV7iks+8RNVIFKLejgILEHao9wt03cD60duR0kKZu0TbUK1nVlMxlijZseWMJonrfdYj+Xt37jl4OSuz17XM/WtZFMWM9Q==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
public string _Proxy = "<RSAKeyValue><Modulus>uWen+I3q039Djs70jBiFJqHuqn02tPY5RCvxTccDoV7iks+8RNVIFKLejgILEHao9wt03cD60duR0kKZu0TbUK1nVlMxlijZseWMJonrfdYj+Xt37jl4OSuz17XM/WtZFMWM9Q==</Modulus><Exponent>AQAB</Exponent><P>yX1YZkcaTah6AylJHfsc+H2rVLNlRmBfxnhL/oM8tq0oxHx7inLBK/74r52XEK1NiWc=</P><Q>65BS/JKjKZb2KJzemmibE1++BkoVYrgsUFmqZTIj9ywuJfFlSSv/oTL3//6A/SlXUUM=</Q><DP>Bq18zIb2vDQlNw2bOr8jyqh/kSMQ7DAtfGpoOlsnG/bJLxnhDkmXVVnx7AARDaBwvWk=</DP><DQ>vVRYfsxU+55r5qR+fdhJm769+kwc+CVS6JnIzGEKayVFShXE9JS6dxOCJGynu9I4bgU=</DQ><InverseQ>Y4cNBnsbzJ4q/ktV5SklAUadZLaVxTiaeMAJAR3hYazfj3nmt3iXspieD9KJzkQPr+Q=</InverseQ><D>N6hwemNQLXG0/DgQncX2ouRV24R/Wc/Y3Sg75ldqNZVgeyY1pIxKeTdzjDn8zFJy4sZgeL0iw+91lsHpFH5Mr8nwTdoU+/y+xipe2Kb5SipI7dlLSU5TC7Av0W/dJAx3OA1kuQ==</D></RSAKeyValue>";
public static Random _Visitor = new Random();
public IDisposable _Importer;
public GroupBox m_Container;
public Label order;
public ProgressBar @params;
public ComboBox m_Interceptor;
public Label _Request;
public Button m_Getter;
public TextBox exporter;
public Label _Candidate;
public Button m_Decorator;
public Label _Facade;
public NumericUpDown attribute;
public NumericUpDown initializer;
public LinkLabel _Tokenizer;
public Button _Descriptor;
public CheckBox listener;
public LinkLabel _Helper;
public CheckBox registry;
public CheckBox annotation;
// Constructor to initialize the authentication process
internal SchemaAdapter()
{
InitAuthentication();
}
// Initialize UI components (e.g., buttons, checkboxes, labels)
private void InitAuthentication()
{
this.m_Container = new GroupBox();
this.registry = new CheckBox();
this._Helper = new LinkLabel();
this.order = new Label();
this.@params = new ProgressBar();
this.m_Interceptor = new ComboBox();
this._Request = new Label();
this.m_Getter = new Button();
this.exporter = new TextBox();
this._Candidate = new Label();
this.m_Decorator = new Button();
this._Facade = new Label();
this.attribute = new NumericUpDown();
this.initializer = new NumericUpDown();
this._Tokenizer = new LinkLabel();
this._Descriptor = new Button();
this.listener = new CheckBox();
this.annotation = new CheckBox();
this.m_Container.SuspendLayout();
((ISupportInitialize)this.attribute).BeginInit();
((ISupportInitialize)this.initializer).BeginInit();
base.SuspendLayout();
this.m_Container.Controls.Add(this.registry);
this.m_Container.Controls.Add(this._Helper);
this.m_Container.Controls.Add(this.order);
this.m_Container.Controls.Add(this.@params);
this.m_Container.Controls.Add(this.m_Interceptor);
this.m_Container.Controls.Add(this._Request);
this.m_Container.Controls.Add(this.m_Getter);
this.m_Container.Controls.Add(this.exporter);
this.m_Container.Controls.Add(this._Candidate);
this.m_Container.Controls.Add(this.m_Decorator);
this.m_Container.Controls.Add(this._Facade);
this.m_Container.Controls.Add(this.attribute);
this.m_Container.Controls.Add(this.initializer);
this.m_Container.Controls.Add(this._Tokenizer);
this.m_Container.Controls.Add(this._Descriptor);
this.m_Container.Controls.Add(this.listener);
this.m_Container.Controls.Add(this.annotation);
this.m_Container.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold);
this.m_Container.ForeColor = Color.DarkMagenta;
this.m_Container.Location = new Point(6, 3);
this.m_Container.Name = "gDevExpress";
this.m_Container.Size = new Size(383, 135);
this.m_Container.TabIndex = 44;
this.m_Container.TabStop = false;
this.m_Container.Text = "Patch / Keygen...";
this.registry.AutoSize = true;
this.registry.Cursor = Cursors.Hand;
this.registry.ForeColor = Color.ForestGreen;
this.registry.Location = new Point(9, 47);
this.registry.Name = "cELK";
this.registry.Size = new Size(135, 17);
this.registry.TabIndex = 106;
this.registry.Text = "Export License Key";
this.registry.UseVisualStyleBackColor = true;
this._Helper.ActiveLinkColor = Color.Brown;
this._Helper.AutoSize = true;
this._Helper.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold | FontStyle.Italic, GraphicsUnit.Point, 0);
this._Helper.LinkColor = Color.Navy;
this._Helper.Location = new Point(9, 21);
this._Helper.Name = "linkDEV";
this._Helper.Size = new Size(86, 13);
this._Helper.TabIndex = 105;
this._Helper.TabStop = true;
this._Helper.Text = "D.E. Version :";
this._Helper.LinkClicked += this.CheckAuthentication;
this.order.AutoEllipsis = true;
this.order.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold | FontStyle.Italic, GraphicsUnit.Point, 0);
this.order.ForeColor = Color.Magenta;
this.order.Location = new Point(286, 93);
this.order.Name = "lpb";
this.order.Size = new Size(88, 13);
this.order.TabIndex = 104;
this.order.Text = "Calculation...";
this.order.TextAlign = ContentAlignment.MiddleCenter;
this.order.Visible = false;
this.@params.Location = new Point(286, 106);
this.@params.Name = "progressBar1";
this.@params.Size = new Size(88, 18);
this.@params.Style = ProgressBarStyle.Marquee;
this.@params.TabIndex = 103;
this.@params.Visible = false;
this.m_Interceptor.BackColor = SystemColors.Info;
this.m_Interceptor.DropDownHeight = 100;
this.m_Interceptor.ForeColor = Color.DarkRed;
this.m_Interceptor.FormattingEnabled = true;
this.m_Interceptor.IntegralHeight = false;
this.m_Interceptor.ItemHeight = 13;
this.m_Interceptor.Location = new Point(286, 17);
this.m_Interceptor.Name = "comboLicense";
this.m_Interceptor.Size = new Size(88, 21);
this.m_Interceptor.Sorted = true;
this.m_Interceptor.TabIndex = 101;
this.m_Interceptor.Text = "Select...";
this.m_Interceptor.KeyPress += this.FindAuthentication;
this._Request.AutoSize = true;
this._Request.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold | FontStyle.Italic, GraphicsUnit.Point, 0);
this._Request.ForeColor = Color.Navy;
this._Request.Location = new Point(213, 21);
this._Request.Name = "label6";
this._Request.Size = new Size(67, 13);
this._Request.TabIndex = 102;
this._Request.Text = "V.Studio : ";
this.m_Getter.ForeColor = Color.Firebrick;
this.m_Getter.Location = new Point(109, 69);
this.m_Getter.Name = "regLic";
this.m_Getter.Size = new Size(165, 23);
this.m_Getter.TabIndex = 100;
this.m_Getter.Text = "Regenerate License Only";
this.m_Getter.UseVisualStyleBackColor = true;
this.m_Getter.Click += this.CancelAuthentication;
this.exporter.BackColor = SystemColors.Info;
this.exporter.ForeColor = Color.DarkRed;
this.exporter.Location = new Point(146, 105);
this.exporter.MaxLength = 30;
this.exporter.Name = "tname";
this.exporter.Size = new Size(112, 20);
this.exporter.TabIndex = 99;
this.exporter.Text = "PulsarTeam";
this.exporter.TextAlign = HorizontalAlignment.Center;
this._Candidate.AutoSize = true;
this._Candidate.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold | FontStyle.Italic, GraphicsUnit.Point, 0);
this._Candidate.ForeColor = Color.Navy;
this._Candidate.Location = new Point(93, 109);
this._Candidate.Name = "label3";
this._Candidate.Size = new Size(47, 13);
this._Candidate.TabIndex = 98;
this._Candidate.Text = "Name :";
this.m_Decorator.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold, GraphicsUnit.Point, 0);
this.m_Decorator.ForeColor = Color.DarkGoldenrod;
this.m_Decorator.Location = new Point(9, 69);
this.m_Decorator.Name = "Restore";
this.m_Decorator.Size = new Size(88, 23);
this.m_Decorator.TabIndex = 97;
this.m_Decorator.Text = "Restore";
this.m_Decorator.UseVisualStyleBackColor = true;
this.m_Decorator.Click += this.ValidateAuthentication;
this._Facade.AutoSize = true;
this._Facade.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold | FontStyle.Italic, GraphicsUnit.Point, 0);
this._Facade.ForeColor = Color.Navy;
this._Facade.Location = new Point(145, 21);
this._Facade.Name = "label2";
this._Facade.Size = new Size(11, 13);
this._Facade.TabIndex = 96;
this._Facade.Text = ".";
this.attribute.ForeColor = Color.DarkRed;
this.attribute.Location = new Point(98, 17);
NumericUpDown numericUpDown = this.attribute;
int[] array = new int[4];
array[0] = 99;
numericUpDown.Maximum = new decimal(array);
NumericUpDown numericUpDown2 = this.attribute;
int[] array2 = new int[4];
array2[0] = 19;
numericUpDown2.Minimum = new decimal(array2);
this.attribute.Name = "HV";
this.attribute.Size = new Size(41, 20);
this.attribute.TabIndex = 95;
this.attribute.TextAlign = HorizontalAlignment.Center;
NumericUpDown numericUpDown3 = this.attribute;
int[] array3 = new int[4];
array3[0] = 24;
numericUpDown3.Value = new decimal(array3);
this.attribute.ValueChanged += this.ConcatAuthentication;
this.initializer.ForeColor = Color.DarkRed;
this.initializer.Location = new Point(162, 17);
NumericUpDown numericUpDown4 = this.initializer;
int[] array4 = new int[4];
array4[0] = 9;
numericUpDown4.Maximum = new decimal(array4);
this.initializer.Name = "LV";
this.initializer.Size = new Size(41, 20);
this.initializer.TabIndex = 94;
this.initializer.TextAlign = HorizontalAlignment.Center;
NumericUpDown numericUpDown5 = this.initializer;
int[] array5 = new int[4];
array5[0] = 1;
numericUpDown5.Value = new decimal(array5);
this.initializer.ValueChanged += this.ExcludeAuthentication;
this._Tokenizer.AutoSize = true;
this._Tokenizer.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold, GraphicsUnit.Point, 0);
this._Tokenizer.ForeColor = Color.BlueViolet;
this._Tokenizer.LinkColor = Color.OrangeRed;
this._Tokenizer.Location = new Point(297, 109);
this._Tokenizer.Name = "linkdfox";
this._Tokenizer.Size = new Size(77, 13);
this._Tokenizer.TabIndex = 75;
this._Tokenizer.TabStop = true;
this._Tokenizer.Text = "By PulsarTeam";
this._Tokenizer.LinkClicked += this.CalcAuthentication;
this._Descriptor.ForeColor = Color.DarkBlue;
this._Descriptor.Location = new Point(286, 69);
this._Descriptor.Name = "Patch";
this._Descriptor.Size = new Size(88, 23);
this._Descriptor.TabIndex = 0;
this._Descriptor.Text = "Patch";
this._Descriptor.UseVisualStyleBackColor = true;
this._Descriptor.Click += this.VisitAuthentication;
this.listener.AutoSize = true;
this.listener.Checked = true;
this.listener.CheckState = CheckState.Checked;
this.listener.Cursor = Cursors.Hand;
this.listener.ForeColor = Color.Teal;
this.listener.Location = new Point(9, 107);
this.listener.Name = "controlloBackup";
this.listener.Size = new Size(69, 17);
this.listener.TabIndex = 21;
this.listener.Text = "Backup";
this.listener.UseVisualStyleBackColor = true;
this.annotation.AutoSize = true;
this.annotation.Checked = true;
this.annotation.CheckState = CheckState.Checked;
this.annotation.Cursor = Cursors.Hand;
this.annotation.ForeColor = Color.ForestGreen;
this.annotation.Location = new Point(196, 47);
this.annotation.Name = "cRORE";
this.annotation.Size = new Size(178, 17);
this.annotation.TabIndex = 107;
this.annotation.Text = "Remove Old Registry Entry";
this.annotation.UseVisualStyleBackColor = true;
base.AutoScaleDimensions = new SizeF(6f, 13f);
base.AutoScaleMode = AutoScaleMode.Font;
base.ClientSize = new Size(395, 142);
base.Controls.Add(this.m_Container);
base.MaximizeBox = false;
this.MaximumSize = new Size(411, 181);
this.MinimumSize = new Size(411, 181);
base.Name = "DEPK";
base.StartPosition = FormStartPosition.CenterScreen;
this.Text = "DevExpress - Patch/Keygen v{0}.{1}.{2}.{3}";
base.Load += this.QueryAuthentication;
base.MouseDoubleClick += this.InvokeAuthentication;
this.m_Container.ResumeLayout(false);
this.m_Container.PerformLayout();
((ISupportInitialize)this.attribute).EndInit();
((ISupportInitialize)this.initializer).EndInit();
base.ResumeLayout(false);
}
// Method to query authentication status or details
private void QueryAuthentication(object sender, EventArgs e)
{
try
{
Version version = Assembly.GetExecutingAssembly().GetName().Version;
this.Text = string.Format("DevExpress - Patch/Keygen v{0}.{1}.{2}.{3}", new object[]
{
version.Major,
version.Minor,
version.Build,
version.Revision
});
for (int i = 0; i <= this.m_Task.Length - 1; i++)
{
this.m_Interceptor.Items.Add(this.m_Task[i]);
}
string text = this.SetAuthentication();
if (text != null && text != string.Empty)
{
this._Error = text.Split(new char[]
{
Path.AltDirectorySeparatorChar,
Path.DirectorySeparatorChar
});
}
this.m_Interceptor.SelectedIndex = ((this._Error == null || this._Error.Length < 8) ? this.m_Interceptor.FindStringExact("2022 ENT.") : this.m_Interceptor.FindStringExact(this._Error[3] + " " + this._Error[4].Substring(0, 3).ToUpper() + "."));
this.attribute.Value = Settings.Default.dvma;
this.initializer.Value = Settings.Default.dvmi;
}
catch
{
MessageBox.Show("General Error...!", "Info", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
}
private string SortAuthentication()
{
return SchemaAdapter._Visitor.Next(1, int.MaxValue).ToString();
}
private string RemoveAuthentication(string string_0, int int_0 = 0)
{
return new string(Enumerable.Repeat<string>(string_0, (int_0 == 0) ? SchemaAdapter._Visitor.Next(1, 11) : int_0)
.Select(s => RegAdapter.Instance.CollectAuthentication(s))
.ToArray<char>());
}
// Method to set authentication details
private string SetAuthentication()
{
string result;
if (Environment.Is64BitOperatingSystem)
{
result = (string)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\10.0\\", "InstallDir", null);
}
else
{
result = (string)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0\\", "InstallDir", null);
}
return result;
}
// Method to cancel authentication process
private void CancelAuthentication(object sender, EventArgs e)
{
m_Process = true;
bool flag = DestroyAuthentication(true);
if (m_Process)
{
MessageBox.Show((!flag) ? "License Registration Error..." : "License Inserted...", "Info...", MessageBoxButtons.OK, flag ? MessageBoxIcon.Asterisk : MessageBoxIcon.Hand);
}
}
private void CalcAuthentication(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start("https://www.dfox.it");
}
public void VisitAuthentication(object sender, EventArgs e)
{
try
{
if (this.m_Interceptor.SelectedIndex < 0)
{
MessageBox.Show("Select an Edition..!", "Info", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
else
{
this.m_Process = true;
this.CountAuthentication(false);
this.m_Authentication = new Thread(new ParameterizedThreadStart(this.PrepareAuthentication));
this.m_Authentication.Start(true);
}
}
catch (ThreadAbortException)
{
}
catch
{
}
}
private void PrepareAuthentication(object object_0)
{
Interpreter interpreter = new Interpreter();
interpreter.schemaAdapter = this;
interpreter.nofil = true;
while (Process.GetProcessesByName("devenv").Length != 0)
{
if (MessageBox.Show("Close Visual Studio (\"devenv\") Before Proceeding!. Continue?", "Info", MessageBoxButtons.YesNo) == DialogResult.No)
{
interpreter.nofil = true;
base.Invoke(new Collection(this.StartAuthentication), new object[2]);
return;
}
}
interpreter.nofil = false;
int.TryParse(this.attribute.Value.ToString(), out this.expression);
int.TryParse(this.initializer.Value.ToString(), out this.repository);
Version version = new Version(this.expression, this.repository);
string text = string.Format("{0}.{1}", version.Major, version.Minor);
if ((bool)object_0)
{
this.DestroyAuthentication(false);
}
else
{
this.CallAuthentication();
}
interpreter.cvalue = string.Empty;
base.Invoke(new MethodInvoker(interpreter.InstantiateAuthentication));
string[] array = interpreter.cvalue.Split(new char[]
{
' '
});
interpreter.versione = array[0];
interpreter.edition = string.Empty;
string a = array[1];
if (!(a == "COM."))
{
if (!(a == "PRO."))
{
if (!(a == "PRE."))
{
if (!(a == "ENT."))
{
interpreter.edition = "";
}
else
{
interpreter.edition = "Enterprise";
}
}
else
{
interpreter.edition = "Preview";
}
}
else
{
interpreter.edition = "Professional";
}
}
else
{
interpreter.edition = "Community";
}
try
{
PrinterParserList printerParserList = new PrinterParserList();
printerParserList.locals1 = interpreter;
this.m_Val = 0;
this.mapping = new List<string>();
// Ensure that TestAuthentication() returns a string or modify the logic accordingly
string testAuth = !string.IsNullOrEmpty(this.TestAuthentication()) ? "some default value" : string.Empty;
string text2 = !string.IsNullOrEmpty(testAuth) ? testAuth.Replace("Components\\", "") : string.Format(this.m_Property + "Program Files{0}\\DevExpress {1}\\",
(!this.DefineAuthentication()) ? " (x86)" : "", text);
if (!Directory.Exists(text2))
{
text2 = !string.IsNullOrEmpty(testAuth) ? testAuth.Replace("Components\\", "") : string.Format(this.m_Property + "Program Files{0}\\DevExpress {1}\\",
this.DefineAuthentication() ? " (x86)" : "", text);
}
if (!Directory.Exists(text2) && MessageBox.Show("Installation of DevExpress \"" + text + "\" not found...\nContinue?", "Info", MessageBoxButtons.YesNo) == DialogResult.No)
{
printerParserList.locals1.nofil = true;
base.Invoke(new Collection(this.StartAuthentication), new object[2]);
return;
}
printerParserList.dVE = string.Empty;
if (this._Error != null && this._Error.Length >= 8 && this._Error[3] == printerParserList.locals1.versione && this._Error[4].ToLower() == printerParserList.locals1.edition.ToLower())
{
printerParserList.dVE = string.Join("\\", this._Error) + "Extensions\\";
}
else
{
printerParserList.dVE = string.Format(this.m_Property + "Program Files{0}\\Microsoft Visual Studio\\{1}\\{2}\\Common7\\IDE\\Extensions\\", (!this.DefineAuthentication() || !(printerParserList.locals1.versione != "2022")) ? "" : " (x86)", printerParserList.locals1.versione, printerParserList.locals1.edition);
}
if (!Directory.Exists(printerParserList.dVE))
{
base.Invoke(new MethodInvoker(printerParserList.AssetAuthentication));
}
string text3 = this.m_Property + "Windows\\Microsoft.NET\\assembly\\GAC_MSIL\\";
string text4 = this.m_Property + "Windows\\assembly\\";
string text5 = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\Microsoft\\VisualStudio\\";
string text6 = Environment.GetEnvironmentVariable("USERPROFILE") + "\\.nuget\\packages\\devexpress.data\\";
this.ConnectAuthentication(new string[]
{
text2,
printerParserList.dVE,
text3,
text5,
text6,
text4
}, (bool)object_0);
printerParserList.nfl = this.mapping.Count;
if (printerParserList.nfl <= 0)
{
printerParserList.locals1.nofil = true;
MessageBox.Show("\"DevExpress file to patch not found...", "Error...", MessageBoxButtons.OK, MessageBoxIcon.Hand);
base.Invoke(new Collection(this.StartAuthentication), new object[2]);
return;
}
base.Invoke(new MethodInvoker(printerParserList.locals1.CustomizeAuthentication));
ServiceRepositoryService serviceRepositoryService = new ServiceRepositoryService();
serviceRepositoryService.locals2 = printerParserList;
serviceRepositoryService.i = 0;
while (serviceRepositoryService.i < serviceRepositoryService.locals2.nfl)
{
base.Invoke(new MethodInvoker(serviceRepositoryService.ListAuthentication));
if (File.Exists(this.mapping[serviceRepositoryService.i]))
{
this.LoginAuthentication(this.mapping[serviceRepositoryService.i], (bool)object_0);
}
int i = serviceRepositoryService.i;
serviceRepositoryService.i = i + 1;
}
base.Invoke(new MethodInvoker(printerParserList.locals1.PostAuthentication));
MessageBox.Show(this.m_Val.ToString() + ") File" + ((this.m_Val > 1) ? "s" : "") + " Patched...\nEnjoy \"PulsaTeam\"", "Info...", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
catch (IOException)
{
MessageBox.Show("Error on IO File...", "Error...", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
catch (UnauthorizedAccessException)
{
MessageBox.Show("Error on Unauthorized Access File...", "Error...", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
catch
{
if (!interpreter.nofil)
{
MessageBox.Show("Unknow Error on Access File...", "Error...", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
}
base.Invoke(new Collection(this.StartAuthentication), new object[2]);
}
private void ConnectAuthentication(string[] string_0, bool bool_0)
{
RepositoryParserWorker repositoryParserWorker = new RepositoryParserWorker();
repositoryParserWorker.dr = string_0;
try
{
repositoryParserWorker.d = 0;
while (repositoryParserWorker.d < repositoryParserWorker.dr.Length)
{
string[] array;
if (repositoryParserWorker.d < 5)
{
array = new string[]
{
"DevExpress.About.exe",
"DevExpress.Data.v*.dll",
"DevExpress.Xpf.Core.v*.DesignTools.dll",
"DevExpress.DemosUpdater.dll",
"DevExpress.ProjectUpgrade.Package*.dll",
"CodedUIExtension.Registrar.dll",
"DevExpressSharepoint*.wsp",
"DevExpress.DeploymentTool.UI.Async*.dll",
"DevExpress.Data.Portions.dll",
"DevExpress.CodeRush.Platform.dll",
"DevExpress.Generator.dll"
};
}
else if (bool_0)
{
array = new string[]
{
"DevExpress.Data.v*.ni.dll",
"DevExpress.Xpf.Core.v*.DesignTools.ni.dll",
"DevExpress.DemosUpdater.ni.dll",
"DevExpress.ProjectUpgrade.Package*.ni.dll",
"CodedUIExtension.Registrar.ni.dll",
"DevExpress.DeploymentTool.UI.Async*.ni.dll",
"DevExpress.Data.Portions.ni.dll",
"DevExpress.CodeRush.Platform.ni.dll",
"DevExpress.Generator.ni.dll"
};
}
else
{
array = new string[]
{
"DevExpress.Data.v*.ni.dll.DFX",
"DevExpress.Xpf.Core.v*.DesignTools.ni.dll.DFX",
"DevExpress.DemosUpdater.ni.dll.DFX",
"DevExpress.ProjectUpgrade.Package*.ni.dll.DFX",
"CodedUIExtension.Registrar.ni.dll.DFX",
"DevExpress.DeploymentTool.UI.Async*.ni.dll.DFX",
"DevExpress.Data.Portions.ni.dll.DFX",
"DevExpress.CodeRush.Platform.ni.dll.DFX",
"DevExpress.Generator.ni.dll.DFX"
};
}
try
{
IEnumerable<string> source = array;
Func<string, IEnumerable<string>> selector;
if ((selector = repositoryParserWorker.Selector) == null)
{
selector = (repositoryParserWorker.Selector = new Func<string, IEnumerable<string>>(repositoryParserWorker.WriteAuthentication));
}
string[] array2 = source.SelectMany(selector).ToArray<string>();
for (int i = 0; i < array2.Length; i++)
{
if (!array2[i].Trim().EndsWith(".resources.dll"))
{
this.mapping.Add(array2[i].Trim());
}
}
}
catch
{
}
int d = repositoryParserWorker.d;
repositoryParserWorker.d = d + 1;
}
}
catch
{
}
}
private bool DefineAuthentication()
{
return Environment.Is64BitOperatingSystem;
}
private bool CallAuthentication()
{
Guid guid = default(Guid);
int.TryParse(this.attribute.Value.ToString(), out this.expression);
int.TryParse(this.initializer.Value.ToString(), out this.repository);
Version version = new Version(this.expression, this.repository);
string name = string.Format("{0}{1}", version.Major, version.Minor);
bool result;
try
{
guid = new Guid(58230061U, 54679, 18994, 182, 217, 104, 10, 22, 163, 205, 166);
RegistryKey classesRoot = Registry.ClassesRoot;
string str = "Licenses\\";
Guid guid2 = guid;
RegistryKey registryKey = classesRoot.CreateSubKey(str + guid2.ToString());
if (!this.annotation.Checked)
{
registryKey.DeleteValue(name);
}
else
{
foreach (string name2 in registryKey.GetValueNames())
{
registryKey.DeleteValue(name2);
}
}
guid = new Guid(1863287401, 5398, 17606, 189, 48, 14, 144, 190, 39, 135, 28);
RegistryKey classesRoot2 = Registry.ClassesRoot;
string str2 = "Licenses\\";
guid2 = guid;
registryKey = classesRoot2.CreateSubKey(str2 + guid2.ToString());
if (!this.annotation.Checked)
{
registryKey.DeleteValue(name);
}
else
{
foreach (string name3 in registryKey.GetValueNames())
{
registryKey.DeleteValue(name3);
}
}
return true;
}
catch
{
result = false;
}
return result;
}
private void FindAuthentication(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
private void CheckAuthentication(object sender, LinkLabelLinkClickedEventArgs e)
{
this.PopAuthentication();
}
private void LoginAuthentication(string string_0, bool bool_0)
{
bool flag;
if ((flag = string_0.EndsWith("DevExpress.Generator.dll")) && this.FillAuthentication(string_0))
{
this.m_Val++;
}
if (string_0.EndsWith("DevExpress.Generator.dll.DFX"))
{
this.m_Val++;
if (File.Exists(string_0.Replace(".DFX", "")))
{
File.Delete(string_0.Replace(".DFX", ""));
}
File.Copy(string_0, string_0.Replace(".DFX", ""));
return;
}
if (string_0.EndsWith(".ni.dll"))
{
this.m_Val++;
if (File.Exists(string_0 + ".DFX"))
{
File.Delete(string_0 + ".DFX");
}
File.Move(string_0, string_0 + ".DFX");
return;
}
if (string_0.EndsWith(".ni.dll.DFX"))
{
if (!File.Exists(string_0.Replace(".DFX", "")))
{
this.m_Val++;
File.Copy(string_0, string_0.Replace(".DFX", ""));
}
return;
}
byte[] bytes = Encoding.Unicode.GetBytes(bool_0 ? this.publisher : this.instance);
byte[] bytes2 = Encoding.Unicode.GetBytes(bool_0 ? this.instance : this.publisher);
byte[] array = File.ReadAllBytes(string_0);
IList<int> list = array.ComputeAuthentication(bytes);
if (list.Count <= 0)
{
bytes2 = Encoding.UTF8.GetBytes(bool_0 ? this.instance : this.publisher);
list = array.ComputeAuthentication(Encoding.UTF8.GetBytes(bool_0 ? this.publisher : this.instance));
}
int num = 0;
for (int i = 0; i < list.Count; i++)
{
if (num == 0 && !flag)
{
this.m_Val++;
}
num++;
for (int j = 0; j < bytes2.Length; j++)
{
array[list[i] + j] = bytes2[j];
}
}
if (num > 0)
{
if (bool_0 && this.listener.Checked && !flag)
{
this.ReadAuthentication(string_0);
}
File.WriteAllBytes(string_0, array);
}
}
//lol?
private bool FillAuthentication(string string_0)
{
bool result;
try
{
int num = 0;
ModuleDefMD moduleDefMD = ModuleDefMD.Load(File.ReadAllBytes(string_0), new ModuleContext());
foreach (TypeDef typeDef in moduleDefMD.GetTypes())
{
if (typeDef.FullName == "DevExpress.Generator")
{
MethodDef methodDef = typeDef.FindMethod("Execute");
int num2 = methodDef.Body.Instructions.Count<Instruction>();
if (methodDef != null && num2 >= 1 && methodDef.Body.Instructions[0].OpCode.ToString().Trim() != "ret")
{
methodDef.Body.Instructions.Insert(0, OpCodes.Ret.ToInstruction());
num++;
}
}
}
if (num > 0)
{
if (this.listener.Checked)
{
this.ReadAuthentication(string_0);
}
if (moduleDefMD.IsILOnly)
{
ModuleWriterOptions moduleWriterOptions = new ModuleWriterOptions(moduleDefMD);
MetadataOptions metadataOptions = moduleWriterOptions.MetadataOptions;
// Use the appropriate type for bitwise operations
metadataOptions.Flags = (metadataOptions.Flags | (MetadataFlags)32767 | (MetadataFlags)32768);
// Make sure to use the correct Load overload
moduleDefMD.Write(string_0, moduleWriterOptions);
}
else
{
NativeModuleWriterOptions nativeModuleWriterOptions = new NativeModuleWriterOptions(moduleDefMD, false);
// Use the appropriate type for bitwise operations
nativeModuleWriterOptions.MetadataOptions.Flags |= (MetadataFlags)32768;
// Make sure to use the correct Load overload
moduleDefMD.NativeWrite(string_0, nativeModuleWriterOptions);
}
result = true;
}
else
{
result = false;
}
}
catch
{
result = false;
}
return result;
}
private void ReadAuthentication(string string_0)
{
try
{
if (File.Exists(string_0 + ".DFX"))
{
File.Delete(string_0 + ".DFX");
}
File.Copy(string_0, string_0 + ".DFX");
}
catch
{
}
}
public void StartAuthentication(object sender, EventArgs e)
{
try
{
this.CountAuthentication(true);
if (this.m_Authentication != null && this.m_Authentication.IsAlive)
{
this.m_Authentication.Abort();
this.m_Authentication = null;
}
}
catch
{
}
}
private void ConcatAuthentication(object sender, EventArgs e)
{
Settings.Default.dvma = this.attribute.Value;
Settings.Default.Save();
}
private void ExcludeAuthentication(object sender, EventArgs e)
{
Settings.Default.dvmi = this.initializer.Value;
Settings.Default.Save();
}
private void CountAuthentication(bool bool_0)
{
ExpressionParserWorker expressionParserWorker = new ExpressionParserWorker();
expressionParserWorker.schemaAdapter = this;
expressionParserWorker.of = bool_0;
try
{
base.Invoke(new MethodInvoker(expressionParserWorker.DisableAuthentication));
}
catch
{
}
}
// Test if authentication is successful
private string TestAuthentication()
{
string result;
try
{
int.TryParse(this.attribute.Value.ToString(), out this.expression);
int.TryParse(this.initializer.Value.ToString(), out this.repository);
Version version = new Version(this.expression, this.repository);
string str = string.Format("{0}.{1}", version.Major, version.Minor);
RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\\\WOW6432Node\\\\DevExpress\\\\Components\\v" + str);
if (registryKey != null)
{
string text = registryKey.GetValue("RootDirectory").ToString();
registryKey.Close();
result = (Directory.Exists(text) ? text : string.Empty);
}
else
{
result = string.Empty;
}
}
catch
{
result = string.Empty;
}
return result;
}
private void InvokeAuthentication(object sender, MouseEventArgs e)
{
this.PopAuthentication();
}
private void PopAuthentication()
{
if (MessageBox.Show("Reset Settings to Default Values?\nThe application will be Restarted...", "Confirmation!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
this.FlushAuthentication();
}
}
private void FlushAuthentication()
{
Settings.Default.Reset();
try
{
Process.Start(Application.ExecutablePath);
Process.GetCurrentProcess().Kill();
}
catch
{
Process.GetCurrentProcess().Kill();
}
}
private bool CloneAuthentication(string string_0, bool bool_0, string string_1)
{
if (bool_0 && this.TestAuthentication() == string.Empty && MessageBox.Show("Installation of DevExpress not found...\nContinue?", "Info", MessageBoxButtons.YesNo) == DialogResult.No)
{
this.m_Process = false;
return false;
}
bool result;
try
{
int.TryParse(this.attribute.Value.ToString(), out this.expression);
int.TryParse(this.initializer.Value.ToString(), out this.repository);
Version version = new Version(this.expression, this.repository);
string text = string.Format("{0}{1}", version.Major, version.Minor);
string s = string.Format("{0},{1},{1},{2},{3},{4},{5}", new object[]
{
text,
long.MaxValue,
string_0,
this.SortAuthentication(),
this.RemoveAuthentication("123456789", 1),
this.RemoveAuthentication("123456789", 0)
});
byte[] bytes = Encoding.UTF8.GetBytes(s);
byte[] array = new byte[20 + bytes.Length];
Buffer.BlockCopy(bytes, 0, array, 20, bytes.Length);
RSACryptoServiceProvider rsacryptoServiceProvider = new RSACryptoServiceProvider();
rsacryptoServiceProvider.FromXmlString(this._Proxy);
string text2 = Convert.ToBase64String(rsacryptoServiceProvider.SignData(array, CryptoConfig.MapNameToOID("SHA1"))) + Convert.ToBase64String(array);
Guid guid = new Guid(58230061U, 54679, 18994, 182, 217, 104, 10, 22, 163, 205, 166);
Guid guid2 = new Guid(1863287401, 5398, 17606, 189, 48, 14, 144, 190, 39, 135, 28);
Guid guid4;
if (this.annotation.Checked)
{
for (int i = 0; i < 2; i++)
{
Guid guid3 = (i == 0) ? guid : guid2;
string str = "Licenses\\";
guid4 = guid3;
string name = str + guid4.ToString();
RegistryKey registryKey = RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry64).OpenSubKey(name, true);
if (registryKey != null)
{
foreach (string name2 in registryKey.GetValueNames())
{
registryKey.DeleteValue(name2);
}
}
}
}
if (this.registry.Checked)
{
try
{
File.WriteAllText(string_1, text2);
}
catch
{
}
}
RegistryKey classesRoot = Registry.ClassesRoot;
string str2 = "Licenses\\";
guid4 = guid;
classesRoot.CreateSubKey(str2 + guid4.ToString()).SetValue(text, text2, RegistryValueKind.String);
RegistryKey classesRoot2 = Registry.ClassesRoot;
string str3 = "Licenses\\";
guid4 = guid2;
RegistryKey registryKey2 = classesRoot2.CreateSubKey(str3 + guid4.ToString());
registryKey2.SetValue(text, 1309, RegistryValueKind.DWord);
registryKey2.Close();
result = true;
}
catch
{
result = false;
}
return result;
}
// Destroy or clean up authentication data
private bool DestroyAuthentication(bool bool_0)
{
PolicyRepositoryService policyRepositoryService = new PolicyRepositoryService();
policyRepositoryService.schemaAdapter = this;
bool result;
try
{
if (this.exporter.Text.Trim() == "" || this.exporter.Text.Trim().Length > 30)
{
this.exporter.Text = "PulsarTeam";
}
policyRepositoryService.fn = string.Empty;
if (this.registry.Checked)
{
base.Invoke(new MethodInvoker(policyRepositoryService.ForgotAuthentication));
if (!this.m_Process)
{
base.Invoke(new Collection(this.StartAuthentication), new object[2]);
return false;
}
}
result = this.CloneAuthentication(this.exporter.Text.Trim(), bool_0, policyRepositoryService.fn);
}
catch
{
result = false;
}
return result;
}
// Validate authentication process
private void ValidateAuthentication(object sender, EventArgs e)
{
try
{
this.listener.Checked = false;
this.m_Process = true;
this.CountAuthentication(false);
this.m_Authentication = new Thread(new ParameterizedThreadStart(this.PrepareAuthentication));
this.m_Authentication.Start(false);
}
catch (ThreadAbortException)
{
}
catch
{
}
}
}
}