/// <summary> /// Initializes a new instance of the <see cref="ManualScanner"/> class. /// </summary> public PointerScanner() { this.InitializeComponent(); // Windows Forms hosting -- TODO: Phase this out this.PointerScanAddressHexDecBox = new HexDecTextBox(DataTypes.UInt64); this.PointerScanAddressHexDecBox.IsHex = true; this.PointerScanAddressHexDecBox.TextChanged += this.PointerScanAddressUpdated; this.pointerScanAddressHexDecBox.Children.Add(WinformsHostingHelper.CreateHostedControl(this.PointerScanAddressHexDecBox)); this.DepthHexDecBox = new HexDecTextBox(DataTypes.Int32); this.DepthHexDecBox.TextChanged += this.DepthUpdated; this.DepthHexDecBox.SetValue(PointerScannerViewModel.DefaultPointerScanDepth); this.depthHexDecBox.Children.Add(WinformsHostingHelper.CreateHostedControl(this.DepthHexDecBox)); this.PointerRadiusHexDecBox = new HexDecTextBox(DataTypes.Int32); this.PointerRadiusHexDecBox.TextChanged += this.PointerRadiusUpdated; this.PointerRadiusHexDecBox.SetValue(PointerScannerViewModel.DefaultPointerScanRadius); this.pointerRadiusHexDecBox.Children.Add(WinformsHostingHelper.CreateHostedControl(this.PointerRadiusHexDecBox)); this.PointerRescanAddressHexDecBox = new HexDecTextBox(DataTypes.UInt64); this.PointerRescanAddressHexDecBox.IsHex = true; this.PointerRescanAddressHexDecBox.TextChanged += this.PointerRescanAddressUpdated; this.pointerRescanAddressHexDecBox.Children.Add(WinformsHostingHelper.CreateHostedControl(this.PointerRescanAddressHexDecBox)); this.PointerRescanValueHexDecBox = new HexDecTextBox(); this.PointerRescanValueHexDecBox.TextChanged += this.PointerRescanValueUpdated; this.pointerRescanValueHexDecBox.Children.Add(WinformsHostingHelper.CreateHostedControl(this.PointerRescanValueHexDecBox)); Task.Run(() => PointerScanResultsViewModel.GetInstance().Subscribe(this)); }
/// <summary> /// Initializes a new instance of the <see cref="ManualScanner"/> class. /// </summary> public PointerScanner() { this.InitializeComponent(); this.PointerScanAddressHexDecBoxViewModel = this.PointerScanAddressHexDecBox.DataContext as HexDecBoxViewModel; this.PointerScanAddressHexDecBoxViewModel.PropertyChanged += PointerScanAddressHexDecBoxViewModelPropertyChanged; this.PointerScanAddressHexDecBoxViewModel.IsHex = true; this.PointerScanAddressHexDecBoxViewModel.DataType = DataType.UInt64; this.PointerRetargetAddressHexDecBoxViewModel = this.PointerRetargetAddressHexDecBox.DataContext as HexDecBoxViewModel; this.PointerRetargetAddressHexDecBoxViewModel.PropertyChanged += PointerRetargetAddressHexDecBoxViewModelPropertyChanged; this.PointerRetargetAddressHexDecBoxViewModel.IsHex = true; this.PointerRetargetAddressHexDecBoxViewModel.DataType = DataType.Int32; this.DepthHexDecBoxViewModel = this.DepthHexDecBox.DataContext as HexDecBoxViewModel; this.DepthHexDecBoxViewModel.PropertyChanged += DepthHexDecBoxViewModelPropertyChanged; this.DepthHexDecBoxViewModel.DataType = DataType.Int32; this.DepthHexDecBoxViewModel.SetValue(PointerScannerViewModel.DefaultPointerScanDepth); this.PointerRadiusHexDecBoxViewModel = this.PointerRadiusHexDecBox.DataContext as HexDecBoxViewModel; this.PointerRadiusHexDecBoxViewModel.PropertyChanged += PointerRadiusHexDecBoxViewModelPropertyChanged; this.PointerRadiusHexDecBoxViewModel.DataType = DataType.Int32; this.PointerRadiusHexDecBoxViewModel.SetValue(PointerScannerViewModel.DefaultPointerScanRadius); Task.Run(() => PointerScanResultsViewModel.GetInstance().Subscribe(this)); }
/// <summary> /// Called when the repeated task completes. /// </summary> protected override void OnEnd() { PointerScanResultsViewModel.GetInstance().DiscoveredPointers = this.DiscoveredPointers; this.LevelPointers = null; this.DiscoveredPointers = null; }
/// <summary> /// Starts the pointer value rescan. /// </summary> private void StartPointerRetargetScan() { TrackableTask <PointerBag> pointerRetargetScanTask = PointerRetargetScan.Scan(this.RetargetAddress, 4, PointerScanResultsViewModel.GetInstance().DiscoveredPointers); TaskTrackerViewModel.GetInstance().TrackTask(pointerRetargetScanTask); PointerScanResultsViewModel.GetInstance().DiscoveredPointers = pointerRetargetScanTask.Result; }
/// <summary> /// Starts the pointer address rebase. /// </summary> private void StartPointerRebase() { TrackableTask <PointerBag> pointerRebaseTask = PointerRebase.Scan(PointerScanResultsViewModel.GetInstance().DiscoveredPointers, readMemory: true, performUnchangedScan: true); TaskTrackerViewModel.GetInstance().TrackTask(pointerRebaseTask); PointerScanResultsViewModel.GetInstance().DiscoveredPointers = pointerRebaseTask.Result; }
/// <summary> /// Starts the pointer scan. /// </summary> private void StartScan() { TrackableTask <PointerBag> pointerScanTask = PointerScan.Scan(this.TargetAddress, (UInt32)this.PointerRadius, this.PointerDepth, 4); TaskTrackerViewModel.GetInstance().TrackTask(pointerScanTask); PointerScanResultsViewModel.GetInstance().DiscoveredPointers = pointerScanTask.Result; }
/// <summary> /// Starts the pointer scan or rescan. /// </summary> private void StartScan() { if (PointerScanResultsViewModel.GetInstance().ResultCount <= 0) { this.PointerScan.Start(); } else { this.PointerRescan.Start(); } }
/// <summary> /// Starts the pointer value rescan. /// </summary> private void StartPointerRetargetScan() { try { TrackableTask <PointerBag> pointerRetargetScanTask = PointerRetargetScan.Scan(this.RetargetAddress, 4, PointerScanResultsViewModel.GetInstance().DiscoveredPointers, PointerScannerViewModel.PointerScanTaskIdentifier); TaskTrackerViewModel.GetInstance().TrackTask(pointerRetargetScanTask); PointerScanResultsViewModel.GetInstance().DiscoveredPointers = pointerRetargetScanTask.Result; } catch (TaskConflictException) { } }
/// <summary> /// Starts the pointer address rebase. /// </summary> private void StartPointerRebase() { try { TrackableTask <PointerBag> pointerRebaseTask = PointerRebase.Scan(PointerScanResultsViewModel.GetInstance().DiscoveredPointers, readMemory: true, performUnchangedScan: true, taskIdentifier: PointerScannerViewModel.PointerScanTaskIdentifier); TaskTrackerViewModel.GetInstance().TrackTask(pointerRebaseTask); PointerScanResultsViewModel.GetInstance().DiscoveredPointers = pointerRebaseTask.Result; } catch (TaskConflictException) { } }
/// <summary> /// Starts the pointer value rescan. /// </summary> private void StartPointerRetargetScan() { try { PointerSize pointerSize = SessionManager.Session.OpenedProcess.Is32Bit() ? PointerSize.Byte4 : PointerSize.Byte8; TrackableTask <PointerBag> pointerRetargetScanTask = PointerRetargetScan.Scan( SessionManager.Session.OpenedProcess, this.RetargetAddress, pointerSize.ToSize(), PointerScanResultsViewModel.GetInstance().DiscoveredPointers, PointerScannerViewModel.PointerScanTaskIdentifier ); TaskTrackerViewModel.GetInstance().TrackTask(pointerRetargetScanTask); PointerScanResultsViewModel.GetInstance().DiscoveredPointers = pointerRetargetScanTask.Result; } catch (TaskConflictException) { } }
/// <summary> /// Called when the scheduled task starts. /// </summary> protected override void OnBegin() { this.DiscoveredPointers = PointerScanResultsViewModel.GetInstance().DiscoveredPointers; }