From 94885ec936930291a80b25d21ab317d06ddcd3ee Mon Sep 17 00:00:00 2001
From: dogty <[email protected]>
Subject: [PATCH] Allow to increase the size of the nfim patches
---
IPS_Patch_Creator/Main.cs | 51 +++++++++++++++++++++++++++++----------
1 file changed, 38 insertions(+), 13 deletions(-)
diff --git a/IPS_Patch_Creator/Main.cs b/IPS_Patch_Creator/Main.cs
index 6e40b4a..37ac333 100644
--- a/IPS_Patch_Creator/Main.cs
+++ b/IPS_Patch_Creator/Main.cs
@@ -3337,7 +3337,32 @@ namespace IPS_Patch_Creator
MessageBox.Show("Error is: " + error.Message);
}
}
-
+ private int GetHexVal(char hex)
+ {
+ int val = (int)hex;
+ //For uppercase A-F letters:
+ //return val - (val < 58 ? 48 : 55);
+ //For lowercase a-f letters:
+ //return val - (val < 58 ? 48 : 87);
+ //Or the two combined, but a bit slower:
+ return val - (val <= '9' ? '0' : (val <= 'Z' ? ('A' - 10) : ('a' - 10)));
+ }
+ private void convert_Hexstring_To_Bytes(string hexstring, out byte[] bytesArray)
+ {
+ char[] hexCharArray = hexstring.ToCharArray();
+ int sizeArray = 1;
+ int index = 0;
+ byte[] tempByteArray = new byte[sizeArray];
+ for (int i=0; i < hexCharArray.Length; i+=2)
+ {
+ Array.Resize(ref tempByteArray, sizeArray);
+ tempByteArray[index] = (byte)(GetHexVal(hexCharArray[i])*16 + GetHexVal(hexCharArray[i+1]));
+ index++;
+ sizeArray++;
+ }
+ bytesArray = new byte[sizeArray - 1];
+ Array.Copy(tempByteArray, bytesArray, sizeArray - 1);
+ }
private void nfim_Patch_Creation()
{
try
@@ -3363,14 +3388,14 @@ namespace IPS_Patch_Creator
if (checkBox_nfim_patch_override.Checked == true)
{
string hexstring = textBox_nfim_patch1.Text;
- uint patch = uint.Parse(hexstring, System.Globalization.NumberStyles.AllowHexSpecifier);
- patch = ReverseBytes(patch);
- PatchBytes = BitConverter.GetBytes(patch);
+ convert_Hexstring_To_Bytes(hexstring, out PatchBytes);
string hexstring2 = textBox_nfim_patch2.Text;
- uint patch2 = uint.Parse(hexstring2, System.Globalization.NumberStyles.AllowHexSpecifier);
- patch2 = ReverseBytes(patch2);
- PatchBytes2 = BitConverter.GetBytes(patch2);
+ convert_Hexstring_To_Bytes(hexstring2, out PatchBytes2);
+
+ int lengthPatches = PatchBytes2.Length + PatchBytes.Length;
+ string PaddingString = lengthPatches.ToString("x4");
+ convert_Hexstring_To_Bytes(PaddingString, out PaddingBytes);
}
}
@@ -4859,14 +4884,14 @@ namespace IPS_Patch_Creator
if (checkBox_fs_patch_override.Checked == true)
{
string hexstring = textBox_fs_patch1.Text;
- uint patch = uint.Parse(hexstring, System.Globalization.NumberStyles.AllowHexSpecifier);
- patch = ReverseBytes(patch);
- PatchBytes = BitConverter.GetBytes(patch);
+ convert_Hexstring_To_Bytes(hexstring, out PatchBytes);
string hexstring2 = textBox_fs_patch2.Text;
- uint patch2 = uint.Parse(hexstring2, System.Globalization.NumberStyles.AllowHexSpecifier);
- patch2 = ReverseBytes(patch2);
- PatchBytes2 = BitConverter.GetBytes(patch2);
+ convert_Hexstring_To_Bytes(hexstring2, out PatchBytes2);
+
+ int lengthPatches = PatchBytes2.Length + PatchBytes.Length;
+ string PaddingString = lengthPatches.ToString("x4");
+ convert_Hexstring_To_Bytes(PaddingString, out PaddingBytes);
}
}
--
2.36.0.windows.1