Beispiel #1
0
        /// <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
        }
Beispiel #2
0
 /// <summary>
 /// Search Offset Addresses in Attached process
 /// </summary>
 public void SearchOffsets(MemoryWorker mv)
 {
     foreach (Offset offset in offsets)
     {
         offset.ClearAdreses();
         offset.SearchOffset(mv);
     }
 }
Beispiel #3
0
 public ProcTools()
 {
     _procs = new List <prc>();
     Memory = new MemoryWorker();
     Mems   = new Mem();
 }