Beispiel #1
0
        public IntPtr FindPointer(Process program, string asmName)
        {
            if (string.IsNullOrEmpty(asmName))
            {
                BasePtr = program.MainModule.BaseAddress;
            }
            else
            {
                Tuple <IntPtr, IntPtr> range = ProgramPointer.GetAddressRange(program, asmName);
                BasePtr = range.Item1;
            }

            if (Offsets.Length > 1)
            {
                LastVerified = DateTime.Now.AddSeconds(5);
                return(ProgramPointer.DerefPointer(program, program.Read <IntPtr>(BasePtr, Offsets), AutoDeref));
            }
            else
            {
                LastVerified = DateTime.MaxValue;
                BasePtr     += Offsets[0];
                return(ProgramPointer.DerefPointer(program, BasePtr, AutoDeref));
            }
        }
Beispiel #2
0
 public IntPtr FindPointer(Process program, string asmName)
 {
     return(ProgramPointer.DerefPointer(program, GetPointer(program, asmName), AutoDeref));
 }