private void PatchScanTest()
{
IntPtr PatchReturnAddress;
byte[] searchBytePattern = HelperFunctions.StringToByteArray(txtPatternBytesSearch.Text);
string match = txtPatternMatch.Text;
int offset = Convert.ToInt32(txtPatternOffset.Text);
PatchReturnAddress = MagicPatches.ScanForPattern(MainForm.HaloOnline, searchBytePattern, match, offset);
if (PatchReturnAddress == null || PatchReturnAddress.ToInt32() <= 0)
{
GoogleAnalyticsApi.TrackEvent("PatchEditor.cs", "PatchScanTest", "No results, bad patch?");
MessageBox.Show("No results, bad patch?");
}
else
{
GoogleAnalyticsApi.TrackEvent("PatchEditor.cs", "PatchScanTest", "Found Results!");
while (PatchReturnAddress.ToInt32() > 0)
{
this.Invoke((MethodInvoker)delegate()
{
listPatternResults.Items.Add(PatchReturnAddress.ToString("X"));
});
IntPtr startOffset = PatchReturnAddress + 0x1;
PatchReturnAddress = MagicPatches.ScanForPattern(MainForm.HaloOnline, searchBytePattern, match, offset, startOffset);
}
}
this.Invoke((MethodInvoker)delegate()
{
lblPatternResultCount.Text = listPatternResults.Items.Count.ToString() + " Results";
btnPatchScanTest.Enabled = true;
btnPatchScanTest.Text = "Test Pattern";
SetProgressBarValue(0, 0, 100);
});
}