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); }
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); }
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 }