/// <summary> /// Search offset Adreses In Memory of Attached process /// </summary> /// <param name="mv">Memory object attached to process</param> public void SearchOffset(MemoryWorker mv) { uint num = mv.FindPattern(pattern, mask); uint oldnum = 0; while (num != oldnum) { uint offset = num; num += (uint)dislocation; if (!IsPointer) { adresses.Add(num); } else { uint num1 = mv.ReadUInt(num); adresses.Add(num1); } oldnum = num; //num = mv.FindPattern(num, (int)mv.MainModule.ModuleMemorySize-num, pattern, mask); num = mv.FindPattern(num, (int)mv.MainModule.ModuleMemorySize - (int)offset, pattern, mask); } return; //TODO: Add IsPointer and Dislocation reaction //TODO: Add search of multiple adresses }
/// <summary> /// Search Offset Addresses in Attached process /// </summary> public void SearchOffsets(MemoryWorker mv) { foreach (Offset offset in offsets) { offset.ClearAdreses(); offset.SearchOffset(mv); } }
public ProcTools() { _procs = new List <prc>(); Memory = new MemoryWorker(); Mems = new Mem(); }