示例#1
0
        public static string ReadString(int address, Encoding Encoding)
        {
            var dataBuffer = new byte[512];

            NativeImport.ReadProcessMemory(
                System.Diagnostics.Process.GetProcessesByName("League of Legends").FirstOrDefault().Handle,
                (IntPtr)address, dataBuffer, dataBuffer.Length, out var bytesRead);

            return(bytesRead == IntPtr.Zero ? string.Empty : Encoding.GetString(dataBuffer).Split('\0')[0]);
        }
示例#2
0
        public static T Read <T>(int Address)
        {
            var  Size   = Marshal.SizeOf <T>();
            var  Buffer = new byte[Size];
            bool Result = NativeImport.ReadProcessMemory(Process.GetProcessesByName("League of Legends").FirstOrDefault().Handle, (IntPtr)Address, Buffer, Size, out var lpRead);
            var  Ptr    = Marshal.AllocHGlobal(Size);

            Marshal.Copy(Buffer, 0, Ptr, Size);
            var Struct = Marshal.PtrToStructure <T>(Ptr);

            Marshal.FreeHGlobal(Ptr);
            return(Struct);
        }
示例#3
0
        public static Vector3 Read3DVector(int address)
        {
            Vector3 tmp = new Vector3();

            byte[] Buffer = new byte[12];
            IntPtr ByteRead;

            NativeImport.ReadProcessMemory(Process.GetProcessesByName("League of Legends").FirstOrDefault().Handle, (IntPtr)(address + Game.OffsetManager.Object.Pos), Buffer, 12, out ByteRead);

            tmp.X = BitConverter.ToSingle(Buffer, (0 * 4));
            tmp.Y = BitConverter.ToSingle(Buffer, (1 * 4));
            tmp.Z = BitConverter.ToSingle(Buffer, (2 * 4));

            return(tmp);
        }
示例#4
0
        public static T Read <T>(int address)
        {
            var size   = Marshal.SizeOf <T>();
            var buffer = new byte[size];
            var result = NativeImport.ReadProcessMemory(
                Process.GetProcessesByName("League of Legends").FirstOrDefault().Handle, (IntPtr)address, buffer, size,
                out var lpRead);
            var ptr = Marshal.AllocHGlobal(size);

            Marshal.Copy(buffer, 0, ptr, size);
            var ptrToStructure = Marshal.PtrToStructure <T>(ptr);

            Marshal.FreeHGlobal(ptr);
            return(ptrToStructure);
        }
示例#5
0
        public static Matrix ReadMatrix(int address)
        {
            Matrix tmp = Matrix.Zero;

            byte[] Buffer = new byte[64];
            IntPtr ByteRead;

            NativeImport.ReadProcessMemory(Process.GetProcessesByName("League of Legends").FirstOrDefault().Handle, (IntPtr)address, Buffer, 64, out ByteRead);

            if (ByteRead == IntPtr.Zero)
            {
                //Console.WriteLine($"[ReadMatrix] No bytes has been read at 0x{address.ToString("X")}");
                return(new Matrix());
            }

            tmp.M11 = BitConverter.ToSingle(Buffer, (0 * 4));
            tmp.M12 = BitConverter.ToSingle(Buffer, (1 * 4));
            tmp.M13 = BitConverter.ToSingle(Buffer, (2 * 4));
            tmp.M14 = BitConverter.ToSingle(Buffer, (3 * 4));

            tmp.M21 = BitConverter.ToSingle(Buffer, (4 * 4));
            tmp.M22 = BitConverter.ToSingle(Buffer, (5 * 4));
            tmp.M23 = BitConverter.ToSingle(Buffer, (6 * 4));
            tmp.M24 = BitConverter.ToSingle(Buffer, (7 * 4));

            tmp.M31 = BitConverter.ToSingle(Buffer, (8 * 4));
            tmp.M32 = BitConverter.ToSingle(Buffer, (9 * 4));
            tmp.M33 = BitConverter.ToSingle(Buffer, (10 * 4));
            tmp.M34 = BitConverter.ToSingle(Buffer, (11 * 4));

            tmp.M41 = BitConverter.ToSingle(Buffer, (12 * 4));
            tmp.M42 = BitConverter.ToSingle(Buffer, (13 * 4));
            tmp.M43 = BitConverter.ToSingle(Buffer, (14 * 4));
            tmp.M44 = BitConverter.ToSingle(Buffer, (15 * 4));

            return(tmp);
        }