Beispiel #1
0
        private void PointerList_OnNewPathGenerated(PointerList pointerList, List <Int64> path_offset, List <Pointer> path_address)
        {
            if (path_address.Count > 0)
            {
                Int32 baseSectionID = ProcessManager.mInstance.MappedSectionList.GetMappedSectionID(path_address[path_offset.Count - 1].Address);
                if (fastScan && !ProcessManager.mInstance.MappedSectionList[baseSectionID].Name.StartsWith("executable"))
                {
                    return;
                }

                ScannerThreadUIUpdateInfo view_info = new ScannerThreadUIUpdateInfo(path_offset, path_address, baseSectionID);
                bgWorkerScanner.ReportProgress(95, view_info);
            }
        }
Beispiel #2
0
        private void bgWorkerScanner_ProgressChanged(Object sender, ProgressChangedEventArgs e)
        {
            uiStatusStrip_ProgressBarScannerThread.Value = e.ProgressPercentage;

            if (e.UserState != null)
            {
                ScannerThreadUIUpdateInfo pointerFinderWorkerListViewUpdate = (ScannerThreadUIUpdateInfo)e.UserState;

                List <Int64>   path_offset   = pointerFinderWorkerListViewUpdate.pathOffset;
                List <Pointer> path_address  = pointerFinderWorkerListViewUpdate.pathAddress;
                Int32          baseSectionID = pointerFinderWorkerListViewUpdate.sectionID;
                try {
                    UInt64 baseOffset = path_address[path_offset.Count - 1].Address - ProcessManager.mInstance.MappedSectionList[baseSectionID].Start;

                    PointerResult pointerResult = new PointerResult(baseSectionID, baseOffset, path_offset);
                    pointerResults.Add(pointerResult);

                    Int32 row_index = dataGridPointerList.Rows.Add();
                    DataGridViewCellCollection row = dataGridPointerList.Rows[row_index].Cells;

                    for (Int32 i = 0; i < path_offset.Count; ++i)
                    {
                        row[i].Value = (path_offset[i].ToString("X"));                     //offset
                        Int32 sectionID = ProcessManager.mInstance.MappedSectionList.GetMappedSectionID(path_address[i].Address);
                    }

                    if (path_offset.Count > 0)
                    {
                        row[row.Count - 2].Value = (path_address[path_address.Count - 1].Address.ToString("X"));            //address
                        Int32 sectionID = ProcessManager.mInstance.MappedSectionList.GetMappedSectionID(path_address[path_address.Count - 1].Address);
                        row[row.Count - 1].Value = (ProcessManager.mInstance.MappedSectionList.GetSectionName(sectionID));  //section
                    }
                    uiStatusStrip_lblStatus.Text = String.Format("{0} results", pointerResults.Count);
                } catch (Exception ex) {
                    MessageBox.Show(ex.ToString());
                }
            }
        }