Skip to content

Commit

Permalink
Added BungeeCordSpoof (Closes #98)
Browse files Browse the repository at this point in the history
  • Loading branch information
hexadecimal233 committed Aug 5, 2023
1 parent ecf2d1a commit 6c72c9e
Show file tree
Hide file tree
Showing 6 changed files with 86 additions and 1 deletion.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
- BlockIn
- BoatGlitch & BoatPhase (Taken from an [unmerged PR](https://github.com/MeteorDevelopment/meteor-client/pull/814))
- Boost (Ported from [Cornos](https://github.com/cornos/Cornos/blob/master/src/main/java/me/zeroX150/cornos/features/module/impl/movement/Boost.java))
- BungeeCordSpoof (Ported from [LiquidBounce](https://github.com/CCBlueX/LiquidBounce))
- ChatBot
- ChestAura
- ChorusExploit (Taken from an [unmerged PR](https://github.com/MeteorDevelopment/meteor-client/pull/1727))
Expand Down
1 change: 1 addition & 0 deletions src/main/java/anticope/rejects/MeteorRejectsAddon.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ public void onInitialize() {
modules.add(new BlockIn());
modules.add(new BoatPhase());
modules.add(new Boost());
modules.add(new BungeeCordSpoof());
modules.add(new ChatBot());
modules.add(new ChestAura());
modules.add(new ChorusExploit());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public ServerFinderScreen(GuiTheme theme, MultiplayerScreen multiplayerScreen, S
this.multiplayerScreen = multiplayerScreen;
this.parent = parent;
ipBox = theme.textBox("127.0.0.1");
versionBox = theme.textBox("1.19; 1.18; 1.17; 1.16; 1.15; 1.14; 1.13; 1.12; 1.11; 1.10; 1.9; 1.8");
versionBox = theme.textBox("1.20; 1.19; 1.18; 1.17; 1.16; 1.15; 1.14; 1.13; 1.12; 1.11; 1.10; 1.9; 1.8");
maxThreadsBox = theme.intEdit(128, 1, 1024, 1, 1024);
stateLabel = theme.label("");
checkedLabel = theme.label("");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package anticope.rejects.mixin;

import net.minecraft.network.packet.c2s.handshake.HandshakeC2SPacket;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Mutable;
import org.spongepowered.asm.mixin.gen.Accessor;

@Mixin(HandshakeC2SPacket.class)
public interface HandshakeC2SPacketAccessor {
@Mutable
@Accessor
void setAddress(String address);
}
69 changes: 69 additions & 0 deletions src/main/java/anticope/rejects/modules/BungeeCordSpoof.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package anticope.rejects.modules;

import anticope.rejects.MeteorRejectsAddon;
import anticope.rejects.mixin.HandshakeC2SPacketAccessor;
import com.google.gson.Gson;
import com.mojang.authlib.properties.PropertyMap;
import meteordevelopment.meteorclient.events.packets.PacketEvent;
import meteordevelopment.meteorclient.settings.*;
import meteordevelopment.meteorclient.systems.modules.Module;
import meteordevelopment.meteorclient.utils.Utils;
import meteordevelopment.orbit.EventHandler;
import net.minecraft.network.NetworkState;
import net.minecraft.network.packet.c2s.handshake.HandshakeC2SPacket;

import java.util.List;

public class BungeeCordSpoof extends Module {
private final SettingGroup sgGeneral = settings.getDefaultGroup();

private static final Gson GSON = new Gson();

private final Setting<Boolean> whitelist = sgGeneral.add(new BoolSetting.Builder()
.name("whitelist")
.description("Use whitelist.")
.defaultValue(false)
.build()
);

private final Setting<List<String>> whitelistedServers = sgGeneral.add(new StringListSetting.Builder()
.name("whitelisted-servers")
.description("Will only work if you joined the servers above.")
.visible(whitelist::get)
.build()
);

private final Setting<Boolean> spoofProfile = sgGeneral.add(new BoolSetting.Builder()
.name("spoof-profile")
.description("Spoof account profile.")
.defaultValue(false)
.build()
);

private final Setting<String> forwardedIP = sgGeneral.add(new StringSetting.Builder()
.name("forwarded-IP")
.description("The forwarded IP address.")
.defaultValue("127.0.0.1")
.build()
);

public BungeeCordSpoof() {
super(MeteorRejectsAddon.CATEGORY, "bungeeCord-spoof", "Let you join BungeeCord servers, useful when bypassing proxies.");
runInMainMenu = true;
}

@EventHandler
private void onPacketSend(PacketEvent.Send event) {
if (event.packet instanceof HandshakeC2SPacket packet && packet.getIntendedState() == NetworkState.LOGIN) {
if (whitelist.get() && !whitelistedServers.get().contains(Utils.getWorldName())) return;
String address = packet.getAddress() + "\0" + forwardedIP + "\0" + mc.getSession().getUuid().replace("-", "")
+ (spoofProfile.get() ? getProperty() : "");
((HandshakeC2SPacketAccessor) packet).setAddress(address);
}
}

private String getProperty() {
PropertyMap propertyMap = mc.getSession().getProfile().getProperties();
return "\0" + GSON.toJson(propertyMap.values().toArray());
}
}
1 change: 1 addition & 0 deletions src/main/resources/meteor-rejects.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"Deadmau5FeatureRendererMixin",
"EntityAccessor",
"GameRendererMixin",
"HandshakeC2SPacketAccessor",
"LivingEntityMixin",
"LivingEntityRendererMixin",
"MultiplayerScreenAccessor",
Expand Down

0 comments on commit 6c72c9e

Please sign in to comment.