diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5d26588 --- /dev/null +++ b/.gitignore @@ -0,0 +1,126 @@ +# Ignore Visual Studio temporary files, build results, and +# build logs directory. + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific folders +.vs/ +.vscode/ +.idea/ +.vscode-test/ + +# Mono Auto Generated Files +mono_crash.* + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini +$RECYCLE.BIN/ + +# VS Code directories +.vscode/ + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# DotNet Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# NuGet +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# Include only NuGet's .gitignore +!/.nuget/ +!/.nuget/NuGet.Config +!/.nuget/NuGet.exe + +# If using the new MSBuild .csproj format, uncomment this to ignore .NET Core / NuGet cache +#!**/[Dd]ebug/ +#!**/[Rr]elease/ + +# Include only DLLs in the bin directory +bin/**/*.dll + +# Include only the package directory itself +!**/[Pp]ackages/ + +# Ignore temp files +**/bin +**/obj +**/TempPE + +# Rider specific files +.idea/ +*.sln.iml + +# .NET Core directories +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopCache.xml + +# Files generated by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Recycle Bin used by Visual Studio +*.cachefile + +# Exclude folder containing source code +src/ +!src/**/*.cs diff --git a/Win_1337_Patch/1337.Designer.cs b/Win_1337_Patch/1337.Designer.cs index df15762..1cbe49f 100644 --- a/Win_1337_Patch/1337.Designer.cs +++ b/Win_1337_Patch/1337.Designer.cs @@ -40,6 +40,7 @@ this.controlloBackup = new System.Windows.Forms.CheckBox(); this.cfileoffsett = new System.Windows.Forms.CheckBox(); this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.cchangeOwnership = new System.Windows.Forms.CheckBox(); this.SuspendLayout(); // // label7 @@ -61,7 +62,7 @@ this.t1337.Location = new System.Drawing.Point(90, 5); this.t1337.Name = "t1337"; this.t1337.ReadOnly = true; - this.t1337.Size = new System.Drawing.Size(309, 20); + this.t1337.Size = new System.Drawing.Size(343, 20); this.t1337.TabIndex = 16; this.t1337.TabStop = false; this.t1337.Text = "Select 1337 File..."; @@ -88,7 +89,7 @@ this.texe.Location = new System.Drawing.Point(90, 31); this.texe.Name = "texe"; this.texe.ReadOnly = true; - this.texe.Size = new System.Drawing.Size(336, 20); + this.texe.Size = new System.Drawing.Size(370, 20); this.texe.TabIndex = 14; this.texe.TabStop = false; this.texe.Text = "Name of Exe/Dll to Patch..."; @@ -99,7 +100,7 @@ this.btnSelect1337.CausesValidation = false; this.btnSelect1337.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.btnSelect1337.ForeColor = System.Drawing.Color.DarkRed; - this.btnSelect1337.Location = new System.Drawing.Point(402, 3); + this.btnSelect1337.Location = new System.Drawing.Point(436, 2); this.btnSelect1337.Margin = new System.Windows.Forms.Padding(0); this.btnSelect1337.Name = "btnSelect1337"; this.btnSelect1337.Size = new System.Drawing.Size(24, 23); @@ -114,7 +115,7 @@ this.linkdfox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.linkdfox.ForeColor = System.Drawing.Color.BlueViolet; this.linkdfox.LinkColor = System.Drawing.Color.Indigo; - this.linkdfox.Location = new System.Drawing.Point(226, 62); + this.linkdfox.Location = new System.Drawing.Point(256, 61); this.linkdfox.Name = "linkdfox"; this.linkdfox.Size = new System.Drawing.Size(77, 13); this.linkdfox.TabIndex = 73; @@ -126,7 +127,7 @@ // this.Patch.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Patch.ForeColor = System.Drawing.Color.DarkBlue; - this.Patch.Location = new System.Drawing.Point(338, 57); + this.Patch.Location = new System.Drawing.Point(372, 56); this.Patch.Name = "Patch"; this.Patch.Size = new System.Drawing.Size(88, 23); this.Patch.TabIndex = 74; @@ -142,7 +143,7 @@ this.controlloBackup.Cursor = System.Windows.Forms.Cursors.Hand; this.controlloBackup.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.controlloBackup.ForeColor = System.Drawing.Color.Teal; - this.controlloBackup.Location = new System.Drawing.Point(3, 61); + this.controlloBackup.Location = new System.Drawing.Point(8, 60); this.controlloBackup.Name = "controlloBackup"; this.controlloBackup.Size = new System.Drawing.Size(69, 17); this.controlloBackup.TabIndex = 76; @@ -158,7 +159,7 @@ this.cfileoffsett.Cursor = System.Windows.Forms.Cursors.Hand; this.cfileoffsett.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.cfileoffsett.ForeColor = System.Drawing.Color.Teal; - this.cfileoffsett.Location = new System.Drawing.Point(74, 61); + this.cfileoffsett.Location = new System.Drawing.Point(79, 60); this.cfileoffsett.Name = "cfileoffsett"; this.cfileoffsett.Size = new System.Drawing.Size(80, 17); this.cfileoffsett.TabIndex = 77; @@ -166,11 +167,27 @@ this.cfileoffsett.UseVisualStyleBackColor = true; this.cfileoffsett.CheckedChanged += new System.EventHandler(this.cfileoffsett_CheckedChanged); // + // cchangeOwnership + // + this.cchangeOwnership.AutoSize = true; + this.cchangeOwnership.Checked = true; + this.cchangeOwnership.CheckState = System.Windows.Forms.CheckState.Checked; + this.cchangeOwnership.Cursor = System.Windows.Forms.Cursors.Hand; + this.cchangeOwnership.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold); + this.cchangeOwnership.ForeColor = System.Drawing.Color.Teal; + this.cchangeOwnership.Location = new System.Drawing.Point(165, 60); + this.cchangeOwnership.Name = "cchangeOwnership"; + this.cchangeOwnership.Size = new System.Drawing.Size(93, 17); + this.cchangeOwnership.TabIndex = 78; + this.cchangeOwnership.Text = "Unlock DLL"; + this.cchangeOwnership.UseVisualStyleBackColor = true; + this.cchangeOwnership.CheckedChanged += new System.EventHandler(this.cchangeOwnership_CheckedChanged); + // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(432, 83); + this.ClientSize = new System.Drawing.Size(472, 83); this.Controls.Add(this.cfileoffsett); this.Controls.Add(this.controlloBackup); this.Controls.Add(this.Patch); @@ -180,10 +197,11 @@ this.Controls.Add(this.t1337); this.Controls.Add(this.label6); this.Controls.Add(this.texe); + this.Controls.Add(this.cchangeOwnership); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(448, 122); - this.MinimumSize = new System.Drawing.Size(448, 122); + this.MaximumSize = new System.Drawing.Size(488, 122); + this.MinimumSize = new System.Drawing.Size(488, 122); this.Name = "Form1"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Win 1337 Apply Patch File"; @@ -204,6 +222,7 @@ private System.Windows.Forms.CheckBox controlloBackup; private System.Windows.Forms.CheckBox cfileoffsett; private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.CheckBox cchangeOwnership; } } diff --git a/Win_1337_Patch/1337.cs b/Win_1337_Patch/1337.cs index 5c14d26..289be29 100644 --- a/Win_1337_Patch/1337.cs +++ b/Win_1337_Patch/1337.cs @@ -3,6 +3,8 @@ using System; using System.Diagnostics; using System.IO; using System.Windows.Forms; +using System.Security.AccessControl; +using System.Security.Principal; namespace Win_1337_Patch { @@ -284,5 +286,63 @@ namespace Win_1337_Patch { btnSelect1337.PerformClick(); } + + private void cchangeOwnership_CheckedChanged(object sender, EventArgs e) + { + if (cchangeOwnership.Checked) + { + try + { + if (!string.IsNullOrEmpty(exe)) + { + UnlockDLL(exe); + MessageBox.Show($"Ownership of {exe} changed to Administrators and full control granted.", "Ownership Changed", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + MessageBox.Show("Please select a DLL/EXE file first.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + cchangeOwnership.Checked = false; + } + } + catch (Exception ex) + { + MessageBox.Show($"An error occurred: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + cchangeOwnership.Checked = false; + } + } + } + + private void UnlockDLL(string filePath) + { + if (!File.Exists(filePath)) + { + MessageBox.Show("The specified file does not exist.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + try + { + FileSecurity fileSecurity = File.GetAccessControl(filePath); + IdentityReference administrators = new NTAccount("Administrators"); + + fileSecurity.SetOwner(administrators); + + File.SetAccessControl(filePath, fileSecurity); + + FileSystemAccessRule accessRule = new FileSystemAccessRule(administrators, + FileSystemRights.FullControl, + AccessControlType.Allow); + + fileSecurity.AddAccessRule(accessRule); + + File.SetAccessControl(filePath, fileSecurity); + + MessageBox.Show($"Owner changed to 'Administrators' and full control permissions granted to 'Administrators' for file: {filePath}", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + catch (Exception ex) + { + MessageBox.Show($"An error occurred while changing ownership: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } } } diff --git a/Win_1337_Patch/Properties/AssemblyInfo.cs b/Win_1337_Patch/Properties/AssemblyInfo.cs index 4221447..a4f19ff 100644 --- a/Win_1337_Patch/Properties/AssemblyInfo.cs +++ b/Win_1337_Patch/Properties/AssemblyInfo.cs @@ -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("1.9.0.0")] -[assembly: AssemblyFileVersion("1.9.0.0")] +[assembly: AssemblyVersion("2.0.0.0")] +[assembly: AssemblyFileVersion("2.0.0.0")] diff --git a/Win_1337_Patch/Properties/Resources.Designer.cs b/Win_1337_Patch/Properties/Resources.Designer.cs index 157385d..11ac648 100644 --- a/Win_1337_Patch/Properties/Resources.Designer.cs +++ b/Win_1337_Patch/Properties/Resources.Designer.cs @@ -1,10 +1,10 @@ //------------------------------------------------------------------------------ // -// Il codice è stato generato da uno strumento. -// Versione runtime:4.0.30319.42000 +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 // -// Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se -// il codice viene rigenerato. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. // //------------------------------------------------------------------------------ @@ -13,13 +13,13 @@ namespace Win_1337_Patch.Properties { /// - /// Classe di risorse fortemente tipizzata per la ricerca di stringhe localizzate e così via. + /// A strongly-typed resource class, for looking up localized strings, etc. /// - // Questa classe è stata generata automaticamente dalla classe StronglyTypedResourceBuilder. - // tramite uno strumento quale ResGen o Visual Studio. - // Per aggiungere o rimuovere un membro, modificare il file con estensione ResX ed eseguire nuovamente ResGen - // con l'opzione /str oppure ricompilare il progetto VS. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -33,7 +33,7 @@ namespace Win_1337_Patch.Properties { } /// - /// Restituisce l'istanza di ResourceManager nella cache utilizzata da questa classe. + /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Resources.ResourceManager ResourceManager { @@ -47,8 +47,8 @@ namespace Win_1337_Patch.Properties { } /// - /// Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte le - /// ricerche di risorse eseguite utilizzando questa classe di risorse fortemente tipizzata. + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { diff --git a/Win_1337_Patch/Properties/Settings.Designer.cs b/Win_1337_Patch/Properties/Settings.Designer.cs index 5bd05e4..65b8fd8 100644 --- a/Win_1337_Patch/Properties/Settings.Designer.cs +++ b/Win_1337_Patch/Properties/Settings.Designer.cs @@ -1,10 +1,10 @@ //------------------------------------------------------------------------------ // -// Il codice è stato generato da uno strumento. -// Versione runtime:4.0.30319.42000 +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 // -// Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se -// il codice viene rigenerato. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. // //------------------------------------------------------------------------------ @@ -12,7 +12,7 @@ namespace Win_1337_Patch.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.8.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.10.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/Win_1337_Patch/Win_1337_Patch.csproj b/Win_1337_Patch/Win_1337_Patch.csproj index 1ab5e23..03b0204 100644 --- a/Win_1337_Patch/Win_1337_Patch.csproj +++ b/Win_1337_Patch/Win_1337_Patch.csproj @@ -8,9 +8,10 @@ WinExe Win_1337_Patch Win_1337_Patch - v4.0 + v4.8 512 true + AnyCPU @@ -21,6 +22,7 @@ DEBUG;TRACE prompt 4 + false AnyCPU @@ -30,6 +32,7 @@ TRACE prompt 4 + false vampire.ico diff --git a/Win_1337_Patch/app.config b/Win_1337_Patch/app.config index d5c3fae..fb31ed4 100644 --- a/Win_1337_Patch/app.config +++ b/Win_1337_Patch/app.config @@ -1,17 +1,17 @@ - + - -
+ +
- + - + True @@ -21,4 +21,4 @@ - \ No newline at end of file +