Exemple #1
0
        // Token: 0x0600012B RID: 299 RVA: 0x0001D260 File Offset: 0x0001B460
        public long pagedMemorySearchMatch(int[] search, long startAddress, long regionSize)
        {
            long result = -1L;
            int  val    = 20480;
            int  num    = Math.Max(search.Length * 20, val);

            if (this.p == null)
            {
                return(result);
            }
            IntPtr hProcess = MemAPI.OpenProcess(MemAPI.ProcessAccessFlags.All, false, this.p.Id);

            byte[] array = new byte[num];
            long   num2  = startAddress + regionSize;

            for (long num3 = startAddress; num3 < num2; num3 += (long)(array.Length - search.Length))
            {
                MemAPI.ReadBytes(num3, array, num, this.p, hProcess);
                int num4;
                if ((num4 = MemAPI.findSequenceMatch(array, 0, search, true, false)) >= 0)
                {
                    result = num3 + (long)num4;
                    break;
                }
            }
            MemAPI.CloseHandle(hProcess);
            return(result);
        }
Exemple #2
0
        public long pagedMemorySearch(byte[] search, long startAddress, long regionSize)
        {
            long num1  = -1;
            int  val2  = 20480;
            int  count = Math.Max(search.Length * 20, val2);

            if (this.p == null)
            {
                return(num1);
            }
            IntPtr num2 = MemAPI.OpenProcess(MemAPI.ProcessAccessFlags.All, false, this.p.Id);

            byte[] numArray = new byte[count];
            long   num3     = startAddress;
            long   num4     = startAddress + regionSize;
            long   address  = num3;

            while (address < num4)
            {
                MemAPI.ReadBytes(address, numArray, count, this.p, num2);
                int sequence;
                if ((sequence = MemAPI.findSequence(numArray, 0, search, true, false)) >= 0)
                {
                    num1 = address + (long)sequence;
                    break;
                }
                address += (long)(numArray.Length - search.Length);
            }
            MemAPI.CloseHandle(num2);
            return(num1);
        }
Exemple #3
0
 public void CloseProcessHandle()
 {
     if (!(this.hProc != IntPtr.Zero))
     {
         return;
     }
     MemAPI.CloseHandle(this.hProc);
     this.hProc = IntPtr.Zero;
 }
Exemple #4
0
        public void SetByteAt(long address, byte newValue)
        {
            if (this.p == null)
            {
                return;
            }
            IntPtr num = MemAPI.OpenProcess(MemAPI.ProcessAccessFlags.All, false, this.p.Id);

            MemAPI.WriteByte(address, newValue, this.p, num);
            MemAPI.CloseHandle(num);
        }
Exemple #5
0
        // Token: 0x0600011B RID: 283 RVA: 0x0001CA90 File Offset: 0x0001AC90
        public int GetBytesAt(long address, byte[] buffer, int count)
        {
            if (this.p == null)
            {
                return(0);
            }
            IntPtr hProcess = MemAPI.OpenProcess(MemAPI.ProcessAccessFlags.All, false, this.p.Id);
            int    arg_37_0 = MemAPI.ReadBytes(address, buffer, count, this.p, hProcess);

            MemAPI.CloseHandle(hProcess);
            return(arg_37_0);
        }
Exemple #6
0
        // Token: 0x060000F7 RID: 247 RVA: 0x0001C0C8 File Offset: 0x0001A2C8
        public static int WriteBytes(long address, byte[] buffer, int count, Process p, IntPtr hProc)
        {
            IntPtr hProcess = (hProc == IntPtr.Zero) ? MemAPI.OpenProcess(MemAPI.ProcessAccessFlags.All, false, p.Id) : hProc;
            int    result   = 0;

            MemAPI.WriteProcessMemory(hProc, address, buffer, (uint)count, out result);
            if (hProc == IntPtr.Zero)
            {
                MemAPI.CloseHandle(hProcess);
            }
            return(result);
        }
Exemple #7
0
        public static int ReadBytes(long address, byte[] buffer, int count, Process p, IntPtr hProc)
        {
            IntPtr hProcess            = hProc == IntPtr.Zero ? MemAPI.OpenProcess(MemAPI.ProcessAccessFlags.All, false, p.Id) : hProc;
            int    lpNumberOfBytesRead = 0;

            MemAPI.ReadProcessMemory(hProcess, address, buffer, count, ref lpNumberOfBytesRead);
            if (hProc == IntPtr.Zero)
            {
                MemAPI.CloseHandle(hProcess);
            }
            return(lpNumberOfBytesRead);
        }
Exemple #8
0
        // Token: 0x0600011E RID: 286 RVA: 0x0001CB64 File Offset: 0x0001AD64
        public float GetSingleAt(long address)
        {
            float result = 0f;

            if (this.p == null)
            {
                return(result);
            }
            IntPtr hProcess = MemAPI.OpenProcess(MemAPI.ProcessAccessFlags.All, false, this.p.Id);

            result = MemAPI.ReadSingle(address, this.p, hProcess);
            MemAPI.CloseHandle(hProcess);
            return(result);
        }
Exemple #9
0
        // Token: 0x0600011D RID: 285 RVA: 0x0001CB1C File Offset: 0x0001AD1C
        public uint GetUInt32At(long address)
        {
            uint result = 0u;

            if (this.p == null)
            {
                return(result);
            }
            IntPtr hProcess = MemAPI.OpenProcess(MemAPI.ProcessAccessFlags.All, false, this.p.Id);

            result = MemAPI.ReadUInt32(address, this.p, hProcess);
            MemAPI.CloseHandle(hProcess);
            return(result);
        }
Exemple #10
0
        // Token: 0x0600011A RID: 282 RVA: 0x0001CA48 File Offset: 0x0001AC48
        public byte GetByteAt(long address)
        {
            byte result = 0;

            if (this.p == null)
            {
                return(result);
            }
            IntPtr hProcess = MemAPI.OpenProcess(MemAPI.ProcessAccessFlags.All, false, this.p.Id);

            result = MemAPI.ReadByte(address, this.p, hProcess);
            MemAPI.CloseHandle(hProcess);
            return(result);
        }
Exemple #11
0
        public float GetSingleAt(long address)
        {
            float num1 = 0.0f;

            if (this.p == null)
            {
                return(num1);
            }
            IntPtr num2 = MemAPI.OpenProcess(MemAPI.ProcessAccessFlags.All, false, this.p.Id);
            float  num3 = MemAPI.ReadSingle(address, this.p, num2);

            MemAPI.CloseHandle(num2);
            return(num3);
        }
Exemple #12
0
        public uint GetUInt32At(long address)
        {
            uint num1 = 0;

            if (this.p == null)
            {
                return(num1);
            }
            IntPtr num2 = MemAPI.OpenProcess(MemAPI.ProcessAccessFlags.All, false, this.p.Id);
            uint   num3 = MemAPI.ReadUInt32(address, this.p, num2);

            MemAPI.CloseHandle(num2);
            return(num3);
        }
Exemple #13
0
        public byte GetByteAt(long address)
        {
            byte num1 = 0;

            if (this.p == null)
            {
                return(num1);
            }
            IntPtr num2 = MemAPI.OpenProcess(MemAPI.ProcessAccessFlags.All, false, this.p.Id);
            byte   num3 = MemAPI.ReadByte(address, this.p, num2);

            MemAPI.CloseHandle(num2);
            return(num3);
        }