Esempio n. 1
0
        private void next_pointer_finder_worker_DoWork(object sender, DoWorkEventArgs e)
        {
            PointerFinderWorkerArgs pointerFinderWorkerArgs = (PointerFinderWorkerArgs)e.Argument;

            result_counter = 0;
            pointerList.Clear();
            next_pointer_finder_worker.ReportProgress(0);
            for (int section_idx = 0; section_idx < processManager.MappedSectionList.Count; ++section_idx)
            {
                if (next_pointer_finder_worker.CancellationPending)
                {
                    break;
                }
                if (isFastNextScanBox.Checked && mappedSections.Count > 0 && !mappedSections.Contains(section_idx))
                {
                    continue;
                }

                MappedSection mappedSection = processManager.MappedSectionList[section_idx];
                if (isFilterBox.Checked && Util.SectionIsFilter(mappedSection.Name))
                {
                    continue;
                }
                if (!isFilterBox.Checked && mappedSection.Name.StartsWith("libSce"))
                {
                    continue;
                }
                mappedSection.PointerSearchInit(processManager, MemoryHelper, pointerList);
                next_pointer_finder_worker.ReportProgress((int)(((float)section_idx / processManager.MappedSectionList.Count) * 65),
                                                          "Init scanning pointer..." + pointerList.Count + " (" + (section_idx + 1) + "/" + processManager.MappedSectionList.Count + "), " + mappedSection.ToString());
            }

            if (next_pointer_finder_worker.CancellationPending)
            {
                return;
            }

            next_pointer_finder_worker.ReportProgress(65);
            pointerList.Init();
            next_pointer_finder_worker.ReportProgress(70);

            NextFinderEvent?.Invoke(pointerList, pointerFinderWorkerArgs);
        }
Esempio n. 2
0
        private void pointer_finder_worker_DoWork(object sender, DoWorkEventArgs e)
        {
            pointer_finder_worker.ReportProgress(0);
            for (int section_idx = 0; section_idx < processManager.MappedSectionList.Count; ++section_idx)
            {
                if (pointer_finder_worker.CancellationPending)
                {
                    break;
                }
                MappedSection mappedSection = processManager.MappedSectionList[section_idx];
                if (isFilterBox.Checked && Util.SectionIsFilter(mappedSection.Name))
                {
                    continue;
                }
                if (!isFilterBox.Checked && mappedSection.Name.StartsWith("libSce"))
                {
                    continue;
                }
                mappedSection.PointerSearchInit(processManager, MemoryHelper, pointerList);
                pointer_finder_worker.ReportProgress((int)(((float)section_idx / processManager.MappedSectionList.Count) * 80),
                                                     "Init scanning pointer..." + pointerList.Count + " (" + (section_idx + 1) + "/" + processManager.MappedSectionList.Count + "), " + mappedSection.ToString());
            }

            if (pointer_finder_worker.CancellationPending)
            {
                return;
            }

            pointer_finder_worker.ReportProgress(80);
            pointerList.Init();
            pointer_finder_worker.ReportProgress(90);

            PointerFinderWorkerArgs pointerFinderWorkerArgs = (PointerFinderWorkerArgs)e.Argument;

            pointerList.FindPointerList(pointerFinderWorkerArgs.Address, pointerFinderWorkerArgs.Range);
            pointer_finder_worker.ReportProgress(100);
        }