DllImageAddress() public method

public DllImageAddress ( string dllname ) : int
dllname string
return int
Beispiel #1
0
        static void Main(string[] args)
        {
            Memory.StartProcess();

            ClientPointer = Memory.DllImageAddress("client.dll");
            EnginePointer = Memory.DllImageAddress("engine.dll");

            DLLImports.SetHook();

            Initialize();

            Application.Run();
        }
Beispiel #2
0
        private bool DoPatch64Bit(string appExe, string dllName)
        {
            ProcessMemory Mem = new ProcessMemory(appExe);

            if (!Mem.CheckProcess())
            {
                //"Is Running ?"
                return(false);
            }
            else
            {
                Mem.StartProcess();
            }

            byte[] buff;

            IntPtr baseoffset;
            IntPtr offset;

            baseoffset = Mem.DllImageAddress(dllName);
            offset     = baseoffset + 23704519;
            buff       = Mem.ReadMem(offset, 3);

            if (!(buff[0] == 0xC6 && buff[1] == 0x00 && buff[2] == 0x24))
            {
                //"Not Found!"
                return(false);
            }

            buff[0] = 0x90;
            buff[1] = 0x90;
            buff[2] = 0x90;
            Mem.WriteMem(offset, buff);

            offset = baseoffset + 23704541;
            buff   = Mem.ReadMem(offset, 5);

            if (!(buff[0] == 0xC6 && buff[1] == 0x44 && buff[2] == 0x08 && buff[3] == 0xFF))
            {
                //"Not Found!"
                return(false);
            }

            buff[0] = 0x90;
            buff[1] = 0x90;
            buff[2] = 0x90;
            buff[3] = 0x90;
            buff[4] = 0x90;

            Mem.WriteMem(offset, buff);
            offset = baseoffset + 22128914;
            buff   = Mem.ReadMem(offset, 2);

            if (!(buff[0] == 0x74 && buff[1] == 0x03))
            {
                //"Not Found!"
                return(false);
            }

            buff[0] = 0xEB;
            Mem.WriteMem(offset, buff);
            offset = baseoffset + 22129554;

            buff = Mem.ReadMem(offset, 4);

            if (!(buff[0] == 0x0F && buff[1] == 0x85 && buff[2] == 0xB5 && buff[3] == 0x03))
            {
                //"Not Found!"
                return(false);
            }

            buff[2] = 0x00;
            buff[3] = 0x00;
            Mem.WriteMem(offset, buff);
            offset = baseoffset + 22128738;
            buff   = Mem.ReadMem(offset, 2);

            if (!(buff[0] == 0x74 && buff[1] == 0x03))
            {
                //"Not Found!"
                return(false);
            }

            buff[0] = 0xEB;
            Mem.WriteMem(offset, buff);
            offset = baseoffset + 22128504;
            buff   = Mem.ReadMem(offset, 2);

            if (!(buff[0] == 0x74 && buff[1] == 0x03))
            {
                //"Not Found!"
                return(false);
            }

            buff[0] = 0xEB;
            Mem.WriteMem(offset, buff);
            offset = baseoffset + 23735088;
            buff   = Mem.ReadMem(offset, 8);

            if (!(buff[0] == 0x41 && buff[1] == 0x80 && buff[2] == 0xBD && buff[3] == 0xC4 && buff[4] == 0x02))
            {
                //"Not Found!"
                return(false);
            }

            buff[1] = 0xC6;
            buff[2] = 0x85;
            buff[7] = 0x01;
            Mem.WriteMem(offset, buff);
            offset = baseoffset + 23735096;
            buff   = Mem.ReadMem(offset, 5);

            if (!(buff[0] == 0x0F && buff[1] == 0x85 && buff[2] == 0xAB && buff[3] == 0x00 && buff[4] == 0x00))
            {
                //"Not Found!"
                return(false);
            }

            buff[0] = 0x90;
            buff[1] = 0xE9;
            Mem.WriteMem(offset, buff);
            return(true);
        }