From 671313ab5713d1025e2bb55e1514017632cdbb63 Mon Sep 17 00:00:00 2001 From: P0nk Date: Tue, 29 Jun 2021 08:29:29 +0200 Subject: [PATCH] Encapsulate hwid validation --- .../java/net/server/coordinator/session/Hwid.java | 11 +++++++++++ .../server/handlers/login/CharSelectedHandler.java | 3 ++- .../handlers/login/CharSelectedWithPicHandler.java | 3 ++- .../net/server/handlers/login/RegisterPicHandler.java | 3 ++- .../handlers/login/ViewAllCharRegisterPicHandler.java | 3 ++- .../handlers/login/ViewAllCharSelectedHandler.java | 3 ++- .../login/ViewAllCharSelectedWithPicHandler.java | 3 ++- 7 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 src/main/java/net/server/coordinator/session/Hwid.java diff --git a/src/main/java/net/server/coordinator/session/Hwid.java b/src/main/java/net/server/coordinator/session/Hwid.java new file mode 100644 index 0000000000..8c8b707ae0 --- /dev/null +++ b/src/main/java/net/server/coordinator/session/Hwid.java @@ -0,0 +1,11 @@ +package net.server.coordinator.session; + +import java.util.regex.Pattern; + +public class Hwid { + private static final Pattern VALID_HWID_PATTERN = Pattern.compile("[0-9A-F]{12}_[0-9A-F]{8}"); + + public static boolean isValidHwid(String hwid) { + return VALID_HWID_PATTERN.matcher(hwid).matches(); + } +} diff --git a/src/main/java/net/server/handlers/login/CharSelectedHandler.java b/src/main/java/net/server/handlers/login/CharSelectedHandler.java index 9dfe1f5dad..f6dea38f99 100644 --- a/src/main/java/net/server/handlers/login/CharSelectedHandler.java +++ b/src/main/java/net/server/handlers/login/CharSelectedHandler.java @@ -26,6 +26,7 @@ import java.net.InetAddress; import java.net.UnknownHostException; import net.AbstractMaplePacketHandler; import net.server.Server; +import net.server.coordinator.session.Hwid; import net.server.coordinator.session.MapleSessionCoordinator; import net.server.coordinator.session.MapleSessionCoordinator.AntiMulticlientResult; import net.server.world.World; @@ -61,7 +62,7 @@ public final class CharSelectedHandler extends AbstractMaplePacketHandler { String macs = slea.readMapleAsciiString(); String hwid = slea.readMapleAsciiString(); - if (!hwid.matches("[0-9A-F]{12}_[0-9A-F]{8}")) { + if (!Hwid.isValidHwid(hwid)) { c.announce(MaplePacketCreator.getAfterLoginError(17)); return; } diff --git a/src/main/java/net/server/handlers/login/CharSelectedWithPicHandler.java b/src/main/java/net/server/handlers/login/CharSelectedWithPicHandler.java index 7b8005e41a..e6d2269c8f 100644 --- a/src/main/java/net/server/handlers/login/CharSelectedWithPicHandler.java +++ b/src/main/java/net/server/handlers/login/CharSelectedWithPicHandler.java @@ -5,6 +5,7 @@ import java.net.UnknownHostException; import net.AbstractMaplePacketHandler; import net.server.Server; +import net.server.coordinator.session.Hwid; import net.server.coordinator.session.MapleSessionCoordinator; import net.server.coordinator.session.MapleSessionCoordinator.AntiMulticlientResult; import net.server.world.World; @@ -42,7 +43,7 @@ public class CharSelectedWithPicHandler extends AbstractMaplePacketHandler { String macs = slea.readMapleAsciiString(); String hwid = slea.readMapleAsciiString(); - if (!hwid.matches("[0-9A-F]{12}_[0-9A-F]{8}")) { + if (!Hwid.isValidHwid(hwid)) { c.announce(MaplePacketCreator.getAfterLoginError(17)); return; } diff --git a/src/main/java/net/server/handlers/login/RegisterPicHandler.java b/src/main/java/net/server/handlers/login/RegisterPicHandler.java index f32fac4579..874e7fdd83 100644 --- a/src/main/java/net/server/handlers/login/RegisterPicHandler.java +++ b/src/main/java/net/server/handlers/login/RegisterPicHandler.java @@ -5,6 +5,7 @@ import java.net.UnknownHostException; import net.AbstractMaplePacketHandler; import net.server.Server; +import net.server.coordinator.session.Hwid; import net.server.world.World; import tools.MaplePacketCreator; import tools.data.input.SeekableLittleEndianAccessor; @@ -42,7 +43,7 @@ public final class RegisterPicHandler extends AbstractMaplePacketHandler { String macs = slea.readMapleAsciiString(); String hwid = slea.readMapleAsciiString(); - if (!hwid.matches("[0-9A-F]{12}_[0-9A-F]{8}")) { + if (!Hwid.isValidHwid(hwid)) { c.announce(MaplePacketCreator.getAfterLoginError(17)); return; } diff --git a/src/main/java/net/server/handlers/login/ViewAllCharRegisterPicHandler.java b/src/main/java/net/server/handlers/login/ViewAllCharRegisterPicHandler.java index f6fc999fd3..dbcb5cb8ab 100644 --- a/src/main/java/net/server/handlers/login/ViewAllCharRegisterPicHandler.java +++ b/src/main/java/net/server/handlers/login/ViewAllCharRegisterPicHandler.java @@ -5,6 +5,7 @@ import java.net.InetAddress; import java.net.UnknownHostException; import net.AbstractMaplePacketHandler; import net.server.Server; +import net.server.coordinator.session.Hwid; import net.server.coordinator.session.MapleSessionCoordinator; import net.server.coordinator.session.MapleSessionCoordinator.AntiMulticlientResult; import net.server.world.World; @@ -43,7 +44,7 @@ public final class ViewAllCharRegisterPicHandler extends AbstractMaplePacketHand String mac = slea.readMapleAsciiString(); String hwid = slea.readMapleAsciiString(); - if (!hwid.matches("[0-9A-F]{12}_[0-9A-F]{8}")) { + if (!Hwid.isValidHwid(hwid)) { c.announce(MaplePacketCreator.getAfterLoginError(17)); return; } diff --git a/src/main/java/net/server/handlers/login/ViewAllCharSelectedHandler.java b/src/main/java/net/server/handlers/login/ViewAllCharSelectedHandler.java index 9bda9fc14b..aa4030ab14 100644 --- a/src/main/java/net/server/handlers/login/ViewAllCharSelectedHandler.java +++ b/src/main/java/net/server/handlers/login/ViewAllCharSelectedHandler.java @@ -26,6 +26,7 @@ import java.net.InetAddress; import java.net.UnknownHostException; import net.AbstractMaplePacketHandler; import net.server.Server; +import net.server.coordinator.session.Hwid; import net.server.coordinator.session.MapleSessionCoordinator; import net.server.coordinator.session.MapleSessionCoordinator.AntiMulticlientResult; import net.server.world.World; @@ -63,7 +64,7 @@ public final class ViewAllCharSelectedHandler extends AbstractMaplePacketHandler String macs = slea.readMapleAsciiString(); String hwid = slea.readMapleAsciiString(); - if (!hwid.matches("[0-9A-F]{12}_[0-9A-F]{8}")) { + if (!Hwid.isValidHwid(hwid)) { c.announce(MaplePacketCreator.getAfterLoginError(17)); return; } diff --git a/src/main/java/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java b/src/main/java/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java index 019ff9f8d5..dff8b064d7 100644 --- a/src/main/java/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java +++ b/src/main/java/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java @@ -5,6 +5,7 @@ import java.net.UnknownHostException; import net.AbstractMaplePacketHandler; import net.server.Server; +import net.server.coordinator.session.Hwid; import net.server.world.World; import tools.MaplePacketCreator; import tools.Randomizer; @@ -45,7 +46,7 @@ public class ViewAllCharSelectedWithPicHandler extends AbstractMaplePacketHandle String macs = slea.readMapleAsciiString(); String hwid = slea.readMapleAsciiString(); - if (!hwid.matches("[0-9A-F]{12}_[0-9A-F]{8}")) { + if (!Hwid.isValidHwid(hwid)) { c.announce(MaplePacketCreator.getAfterLoginError(17)); return; }