Inheritance: System.Windows.Forms.Form
Esempio n. 1
0
        //This returns an IntPtr of the address found from a byte pattern match.
        public static IntPtr ScanForPattern(Process p, byte[] pattern, string match, int offset, IntPtr startOffset = new IntPtr())
        {
            if (startOffset.ToInt32() == 0)
            {
                startOffset = p.MainModule.BaseAddress;
            }
            try
            {
                //TODO: We need to scan the entire memory (p.WorkingSet64) but that wont all fit in a C# app.
                //TODO: We'll need to loop through all the memory eventually...
                p.Refresh();
                var memSize = (p.PrivateMemorySize64 + p.WorkingSet64);

                IntPtr memoryBlockSize = (IntPtr)(long)(memSize / 64);
                IntPtr endOffset       = IntPtr.Subtract(memoryBlockSize, (int)startOffset);

                SigScan.Classes.SigScan _sigScan = new SigScan.Classes.SigScan();
                _sigScan.Process = p;

                _sigScan.Address = startOffset;
                _sigScan.Size    = (long)endOffset;

                IntPtr result = _sigScan.FindPattern(pattern, match, offset);

                //_sigScan.ResetRegion();
                IntPtr nextAddress  = IntPtr.Add(startOffset, (int)endOffset);
                bool   ShowProgress = false;
                if (PatchEditor.FormShowing)
                {
                    ShowProgress = true;
                }
                var patchForm = PatchEditor.ActiveForm;
                while (result == IntPtr.Zero && (int)nextAddress < memSize && PatchLoopRun)
                {
                    if (ShowProgress)
                    {
                        patchForm.Invoke(new MethodInvoker(delegate
                        {
                            PatchEditor.SetProgressBarValue((long)nextAddress, (long)startOffset, memSize);
                        }));
                    }
                    SigScan.Classes.SigScan _sigScan2 = new SigScan.Classes.SigScan();
                    _sigScan2.Process = p;

                    _sigScan2.Address = nextAddress;
                    _sigScan2.Size    = (long)endOffset;

                    result      = _sigScan2.FindPattern(pattern, match, offset);
                    nextAddress = IntPtr.Add(nextAddress, (int)endOffset);
                }
                return(result);
            }
            catch (Exception)
            {
                return(IntPtr.Zero);
            }
        }
Esempio n. 2
0
 private void btnPatchEditor_click(object sender, EventArgs e)
 {
     GoogleAnalyticsApi.TrackEvent("MainForm.cs", "btnPatchEditor_click", "");
     if (!PatchEditor.FormShowing)
     {
         patchy = new PatchEditor();
         patchy.Show();
     }
     else
     {
         patchy.Focus();
     }
 }
Esempio n. 3
0
        private void btnPatchEditor_click(object sender, EventArgs e)
        {

            if (!PatchEditor.FormShowing)
            {
                patchy = new PatchEditor();
                patchy.Show();
            }
            else
            {
                patchy.Focus();
            }
        }
Esempio n. 4
0
 private void btnPatchEditor_click(object sender, EventArgs e)
 {
     GoogleAnalyticsApi.TrackEvent("MainForm.cs", "btnPatchEditor_click", "");
     if (!PatchEditor.FormShowing)
     {
         patchy = new PatchEditor();
         patchy.Show();
     }
     else
     {
         patchy.Focus();
     }
 }