예제 #1
0
        public static void Set(string name)
        {
            if (Address == IntPtr.Zero)
            {
                Address = gvar.Allocator.Alloc(Size);

                if (Address == IntPtr.Zero)
                {
                    return;
                }

                Buffer.BlockCopy(BitConverter.GetBytes((int)Address + 0x1D), 0, Shellcode, 0xD, 4);
                Buffer.BlockCopy(BitConverter.GetBytes((int)Address + 0x22), 0, Shellcode, 0x12, 4);
                Buffer.BlockCopy(BitConverter.GetBytes(Memory.Engine + Offsets.dw_SetConVar), 0, Shellcode, 0x17, 4);
            }

            if (!Local.InGame)
            {
                return;
            }

            if (name == PREVNAME)
            {
                return;
            }
            PREVNAME = name;

            byte[] reset =
            {
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
            };

            byte[] name_bytes;

            if (name == "\n")
            {
                name_bytes = Encoding.UTF8.GetBytes('\n' + "\0");
            }
            else
            {
                name_bytes = Encoding.UTF8.GetBytes(name + "\0");
            }

            Buffer.BlockCopy(reset, 0, Shellcode, 0x22, reset.Length);
            Buffer.BlockCopy(name_bytes, 0, Shellcode, 0x22, name_bytes.Length);
            WinAPI.WriteProcessMemory(Memory.pHandle, Address, Shellcode, Shellcode.Length, 0);

            for (var i = 0; i < 100; i++)
            {
                CreateThread.Execute(Address);
            }
        }
예제 #2
0
        public static void Show()
        {
            if (Address == IntPtr.Zero)
            {
                Address = gvar.Alloc.Alloc(Size);
                if (Address == IntPtr.Zero)
                {
                    return;
                }

                Buffer.BlockCopy(BitConverter.GetBytes((int)Address + 20), 0, Shellcode, 1, 4);
                Buffer.BlockCopy(BitConverter.GetBytes(Memory.client + Offsets.dw_RevealRankFn), 0, Shellcode, 9, 4);
                WinAPI.WriteProcessMemory(Memory.pHandle, Address, Shellcode, Shellcode.Length, 0);
            }

            CreateThread.Execute(Address);
        }
예제 #3
0
        public static void Show()
        {
            if (Address == IntPtr.Zero)
            {
                Address = gvar.Allocator.Alloc(Shellcode.Length + 12);

                if (Address == IntPtr.Zero)
                {
                    return;
                }

                Buffer.BlockCopy(BitConverter.GetBytes((int)Address + Shellcode.Length), 0, Shellcode, 1, 4);
                Buffer.BlockCopy(BitConverter.GetBytes(Memory.Client + Offsets.dw_RevealRankFn), 0, Shellcode, 6, 4);

                uint nBytesWritten = 0;
                WinAPI.WriteProcessMemory(Memory.pHandle, Address, Shellcode, (IntPtr)Shellcode.Length,
                                          out nBytesWritten);
            }

            CreateThread.Execute(Address);
        }