Пример #1
0
        static void InjectReplaceMusicCode()
        {
            var injectAddress = API.Accesser.GetMainModuleAdress() + MUSIC_CHOICE_ADDR;
            var asm           = new Assembler(32);

            asm.push(MUSIC_ID);

            var stream = new MemoryStream();
            var writer = new StreamCodeWriter(stream);

            asm.Assemble(writer, 0);
            var newCode = stream.ToArray();

            stream.Close();

            API.Accesser.ReplaceCode(newCode, injectAddress, 6);
        }
Пример #2
0
        static void InjectReplaceLevelCode(IntPtr cpAddr)
        {
            var injectAddress = API.Accesser.GetMainModuleAdress() + REPLACE_BY_LEVEL_ADDR;
            var asm           = new Assembler(32);

            asm.mov(edx, (int)cpAddr);

            var stream = new MemoryStream();
            var writer = new StreamCodeWriter(stream);

            asm.Assemble(writer, 0);
            var newCode = stream.ToArray();

            stream.Close();

            API.Accesser.InsertCode(newCode, injectAddress);
        }
Пример #3
0
        static void PatchLoadFailed()
        {
            var injectAddress       = API.Accesser.GetMainModuleAdress() + ANTICHEAT_JUMP_ADDR;
            var absoluteDestination = API.Accesser.GetMainModuleAdress() + END_OF_ANTICHEAT_ADDR;
            var relativeDestination = (int)absoluteDestination - (int)injectAddress;

            var asm = new Assembler(32);

            asm.jmp((ulong)relativeDestination);

            var stream = new MemoryStream();
            var writer = new StreamCodeWriter(stream);

            asm.Assemble(writer, 0);
            var newCode = stream.ToArray();

            stream.Close();

            API.Accesser.ReplaceCode(newCode, injectAddress, 6);//énorme jus de branle
        }