diff --git a/client/src/main/java/GlobalConfig.java b/client/src/main/java/GlobalConfig.java index 8a972c6..36c103a 100644 --- a/client/src/main/java/GlobalConfig.java +++ b/client/src/main/java/GlobalConfig.java @@ -1,8 +1,41 @@ +import org.openrs2.deob.annotation.OriginalMember; + +import java.math.BigInteger; + public class GlobalConfig { + //region 2009scape-compatibility Configuration + @OriginalMember(owner = "client!um", name = "V", descriptor = "Ljava/math/BigInteger;") + public static final BigInteger RSA_MODULUS = new BigInteger("96982303379631821170939875058071478695026608406924780574168393250855797534862289546229721580153879336741968220328805101128831071152160922518190059946555203865621183480223212969502122536662721687753974815205744569357388338433981424032996046420057284324856368815997832596174397728134370577184183004453899764051"); + + @OriginalMember(owner = "client!gm", name = "X", descriptor = "Ljava/math/BigInteger;") + public static final BigInteger RSA_EXPONENT = new BigInteger("65537"); + + // Server IP + public static String DEFAULT_HOSTNAME = "play.2009scape.org"; + + // Jagex had this at 40000+id public static int DEFAULT_PORT = 43594; + + // Jagex had this at 50000+id/443 public static int ALTERNATE_PORT = 43593; + + // If this isn't set, the world server will need to send a default public static boolean SELECT_DEFAULT_WORLD = true; - // Some servers don't use ISAAC. + // Send strings instead of base37 for login/registration packets + public static boolean LOGIN_USE_STRINGS = true; + + // Send additional information like user/serial/mac address + public static boolean LOGIN_EXTRA_INFO = true; + + // Send an additional empty CRC for idx28 (not in this revision originally) + public static boolean LOGIN_FAKE_IDX28 = true; + + // Packet opcode encryption public static boolean USE_ISAAC = false; + //endregion + + // Jagex's RSA key: + // public static final BigInteger RSA_MODULUS = new BigInteger("7162900525229798032761816791230527296329313291232324290237849263501208207972894053929065636522363163621000728841182238772712427862772219676577293600221789"); + // public static final BigInteger RSA_EXPONENT = new BigInteger("58778699976184461502525193738213253649000149147835990136706041084440742975821"); } diff --git a/client/src/main/java/JagString.java b/client/src/main/java/JagString.java index 55d7247..fd50592 100644 --- a/client/src/main/java/JagString.java +++ b/client/src/main/java/JagString.java @@ -787,7 +787,7 @@ public final class JagString implements StringInterface { } @OriginalMember(owner = "client!na", name = "j", descriptor = "(I)J") - public final long method3158() { + public final long encode37() { @Pc(7) long local7 = 0L; for (@Pc(14) int local14 = 0; this.anInt4030 > local14 && local14 < 12; local14++) { @Pc(32) byte local32 = this.aByteArray52[local14]; @@ -808,7 +808,7 @@ public final class JagString implements StringInterface { @OriginalMember(owner = "client!na", name = "k", descriptor = "(I)Lclient!na;") public final JagString method3159() { - @Pc(9) JagString local9 = Static79.method1702(this.method3158()); + @Pc(9) JagString local9 = Static79.decode37(this.encode37()); return local9 == null ? Static228.aClass100_967 : local9; } diff --git a/client/src/main/java/Player.java b/client/src/main/java/Player.java index 5402f24..40c3f9f 100644 --- a/client/src/main/java/Player.java +++ b/client/src/main/java/Player.java @@ -120,7 +120,7 @@ public final class Player extends PathingEntity { } this.anInt3365 = arg0.g2(); @Pc(236) long local236 = arg0.g8(); - this.aClass100_364 = Static79.method1702(local236).method3125(); + this.aClass100_364 = Static79.decode37(local236).method3125(); this.anInt1652 = arg0.g1(); if (local37) { this.anInt1671 = arg0.g2(); diff --git a/client/src/main/java/Static122.java b/client/src/main/java/Static122.java index 88969ea..168f991 100644 --- a/client/src/main/java/Static122.java +++ b/client/src/main/java/Static122.java @@ -85,7 +85,7 @@ public final class Static122 { local13.anInt2028 = (arg6.method2693() + arg0) * 128; local13.anInt2044 = Static140.method2706(arg6); local13.anInt2042 = arg6.anInt1664 * 128; - Static93.aClass133_7.method3862(local13, arg6.aClass100_364.method3158()); + Static93.aClass133_7.method3862(local13, arg6.aClass100_364.encode37()); } } diff --git a/client/src/main/java/Static140.java b/client/src/main/java/Static140.java index e7664f7..a7cecfb 100644 --- a/client/src/main/java/Static140.java +++ b/client/src/main/java/Static140.java @@ -57,7 +57,7 @@ public final class Static140 { Static103.method2231(Static186.aClass100_827, 0, LocalizedText.IGNORELISTFULL); return; } - @Pc(34) JagString local34 = Static79.method1702(arg0).method3125(); + @Pc(34) JagString local34 = Static79.decode37(arg0).method3125(); @Pc(36) int local36; for (local36 = 0; local36 < Static35.anInt1093; local36++) { if (Static190.aLongArray6[local36] == arg0) { @@ -76,7 +76,7 @@ public final class Static140 { return; } Static190.aLongArray6[Static35.anInt1093] = arg0; - Static193.aClass100Array134[Static35.anInt1093++] = Static79.method1702(arg0); + Static193.aClass100Array134[Static35.anInt1093++] = Static79.decode37(arg0); Static185.anInt4369 = Static119.transmitTimer; Static6.outboundBuffer.p1isaac(34); Static6.outboundBuffer.p8(arg0); diff --git a/client/src/main/java/Static158.java b/client/src/main/java/Static158.java index 7be2014..1618f7a 100644 --- a/client/src/main/java/Static158.java +++ b/client/src/main/java/Static158.java @@ -96,7 +96,7 @@ public final class Static158 { Static57.aClass3_Sub15_Sub1_3.offset = 0; Static124.socket.method2827(0, Static229.aClass100Array156.length * 8, Static57.aClass3_Sub15_Sub1_3.data); for (local120 = 0; local120 < Static229.aClass100Array156.length; local120++) { - Static229.aClass100Array156[local120] = Static79.method1702(Static57.aClass3_Sub15_Sub1_3.g8()); + Static229.aClass100Array156[local120] = Static79.decode37(Static57.aClass3_Sub15_Sub1_3.g8()); } Static223.anInt5034 = 21; Static179.anInt4261 = 0; diff --git a/client/src/main/java/Static171.java b/client/src/main/java/Static171.java index de00b6a..a40791a 100644 --- a/client/src/main/java/Static171.java +++ b/client/src/main/java/Static171.java @@ -50,6 +50,6 @@ public final class Static171 { public static void method3221(@OriginalArg(1) JagString arg0, @OriginalArg(2) int arg1) { Static6.outboundBuffer.p1isaac(188); Static6.outboundBuffer.p1a(arg1); - Static6.outboundBuffer.p8(arg0.method3158()); + Static6.outboundBuffer.p8(arg0.encode37()); } } diff --git a/client/src/main/java/Static178.java b/client/src/main/java/Static178.java index 6238eb6..ec8b03f 100644 --- a/client/src/main/java/Static178.java +++ b/client/src/main/java/Static178.java @@ -27,7 +27,7 @@ public final class Static178 { if (Static199.aClass3_Sub22Array1 == null) { return; } - @Pc(22) long local22 = arg0.method3158(); + @Pc(22) long local22 = arg0.encode37(); @Pc(24) int local24 = 0; if (local22 == 0L) { return; diff --git a/client/src/main/java/Static186.java b/client/src/main/java/Static186.java index ebb7431..cf617ca 100644 --- a/client/src/main/java/Static186.java +++ b/client/src/main/java/Static186.java @@ -17,13 +17,13 @@ public final class Static186 { public static final JagString aClass100_827 = Static28.parse(""); @OriginalMember(owner = "client!pa", name = "P", descriptor = "Lclient!na;") - public static JagString aClass100_828 = aClass100_827; + public static JagString password = aClass100_827; @OriginalMember(owner = "client!pa", name = "R", descriptor = "[Z") public static final boolean[] aBooleanArray100 = new boolean[100]; @OriginalMember(owner = "client!pa", name = "S", descriptor = "Lclient!na;") - public static JagString aClass100_829 = aClass100_827; + public static JagString username = aClass100_827; @OriginalMember(owner = "client!pa", name = "d", descriptor = "(I)V") public static void method3413() { diff --git a/client/src/main/java/Static2.java b/client/src/main/java/Static2.java index d840e04..fc33396 100644 --- a/client/src/main/java/Static2.java +++ b/client/src/main/java/Static2.java @@ -290,7 +290,7 @@ public final class Static2 { arg0.modelXAngle = 150; arg0.modelYAngle = (int) (Math.sin((double) Static83.anInt372 / 40.0D) * 256.0D) & 0x7FF; arg0.modelType = 5; - arg0.modelId = ((int) Static173.self.aClass100_364.method3158() << 11) + 2047; + arg0.modelId = ((int) Static173.self.aClass100_364.encode37() << 11) + 2047; arg0.anInt496 = Static173.self.anInt3388; arg0.anInt500 = 0; arg0.anInt522 = Static173.self.anInt3366; diff --git a/client/src/main/java/Static214.java b/client/src/main/java/Static214.java index a8a267c..6f1559f 100644 --- a/client/src/main/java/Static214.java +++ b/client/src/main/java/Static214.java @@ -27,7 +27,7 @@ public final class Static214 { @OriginalMember(owner = "client!rg", name = "a", descriptor = "(Lclient!e;I)V") public static void method4359(@OriginalArg(0) Player arg0) { - @Pc(12) AreaSound local12 = (AreaSound) Static93.aClass133_7.method3863(arg0.aClass100_364.method3158()); + @Pc(12) AreaSound local12 = (AreaSound) Static93.aClass133_7.method3863(arg0.aClass100_364.encode37()); if (local12 == null) { Static122.method2411(arg0.movementQueueZ[0], null, 0, null, arg0.movementQueueX[0], Static55.level, arg0); } else { diff --git a/client/src/main/java/Static216.java b/client/src/main/java/Static216.java index 5f27456..cb50e32 100644 --- a/client/src/main/java/Static216.java +++ b/client/src/main/java/Static216.java @@ -53,7 +53,7 @@ public final class Static216 { } Static124.socket = new BufferedSocket((Socket) Static72.aClass212_3.result, Static71.signLink); Static72.aClass212_3 = null; - @Pc(106) long local106 = Static101.aLong98 = Static186.aClass100_829.method3158(); + @Pc(106) long local106 = Static101.aLong98 = Static186.username.encode37(); Static6.outboundBuffer.offset = 0; Static6.outboundBuffer.p1(14); @Pc(120) int local120 = (int) (local106 >> 16 & 0x1FL); @@ -99,16 +99,26 @@ public final class Static216 { Static6.outboundBuffer.p4(local210[1]); Static6.outboundBuffer.p4(local210[2]); Static6.outboundBuffer.p4(local210[3]); - Static6.outboundBuffer.p8(Static186.aClass100_829.method3158()); - Static6.outboundBuffer.pjstr(Static186.aClass100_828); - Static6.outboundBuffer.encryptRsa(Static86.aBigInteger1, Static256.aBigInteger2); + Static6.outboundBuffer.p8(Static186.username.encode37()); + Static6.outboundBuffer.pjstr(Static186.password); + if (GlobalConfig.LOGIN_EXTRA_INFO) { + Static6.outboundBuffer.pjstr(Static28.parse("")); + Static6.outboundBuffer.pjstr(Static28.parse("")); + Static6.outboundBuffer.pjstr(Static28.parse("")); + } + Static6.outboundBuffer.encryptRsa(GlobalConfig.RSA_EXPONENT, GlobalConfig.RSA_MODULUS); Static17.aClass3_Sub15_Sub1_2.offset = 0; if (Static244.anInt5370 == 40) { Static17.aClass3_Sub15_Sub1_2.p1(18); } else { Static17.aClass3_Sub15_Sub1_2.p1(16); } - Static17.aClass3_Sub15_Sub1_2.p2(Static6.outboundBuffer.offset + Static229.method3937(Static47.aClass100_991) + 159); + int offset = 0; + if (GlobalConfig.LOGIN_FAKE_IDX28) { + // pretend that we're loading the archive so we don't throw the packet size off + offset = 4; + } + Static17.aClass3_Sub15_Sub1_2.p2(Static6.outboundBuffer.offset + Static229.method3937(Static47.aClass100_991) + (159 + offset)); Static17.aClass3_Sub15_Sub1_2.p4(530); Static17.aClass3_Sub15_Sub1_2.p1(Static5.anInt39); Static17.aClass3_Sub15_Sub1_2.p1(Static249.aBoolean282 ? 1 : 0); @@ -151,6 +161,9 @@ public final class Static216 { Static17.aClass3_Sub15_Sub1_2.p4(Static28.aClass153_18.method4480()); Static17.aClass3_Sub15_Sub1_2.p4(Static167.aClass153_63.method4480()); Static17.aClass3_Sub15_Sub1_2.p4(Static226.aClass153_93.method4480()); + if (GlobalConfig.LOGIN_FAKE_IDX28) { + Static17.aClass3_Sub15_Sub1_2.p4(0); + } Static17.aClass3_Sub15_Sub1_2.pBytes(Static6.outboundBuffer.data, Static6.outboundBuffer.offset); Static124.socket.write(Static17.aClass3_Sub15_Sub1_2.data, Static17.aClass3_Sub15_Sub1_2.offset); Static6.outboundBuffer.method2240(local210); diff --git a/client/src/main/java/Static225.java b/client/src/main/java/Static225.java index 76d4daf..77b0537 100644 --- a/client/src/main/java/Static225.java +++ b/client/src/main/java/Static225.java @@ -79,10 +79,10 @@ public final class Static225 { @OriginalMember(owner = "client!se", name = "a", descriptor = "(Lclient!na;Lclient!na;IB)V") public static void method3896(@OriginalArg(0) JagString arg0, @OriginalArg(1) JagString arg1, @OriginalArg(2) int arg2) { - Static186.aClass100_828 = arg1; + Static186.password = arg1; Static5.anInt39 = arg2; - Static186.aClass100_829 = arg0; - if (Static186.aClass100_829.method3108(Static186.aClass100_827) || Static186.aClass100_828.method3108(Static186.aClass100_827)) { + Static186.username = arg0; + if (Static186.username.method3108(Static186.aClass100_827) || Static186.password.method3108(Static186.aClass100_827)) { Static266.anInt5336 = 3; } else if (Static125.worldId == -1) { Static20.anInt673 = 0; @@ -93,11 +93,11 @@ public final class Static225 { local43.p1(10); local43.p2((int) (Math.random() * 99999.0D)); local43.p2(530); - local43.p8(Static186.aClass100_829.method3158()); + local43.p8(Static186.username.encode37()); local43.p4((int) (Math.random() * 9.9999999E7D)); - local43.pjstr(Static186.aClass100_828); + local43.pjstr(Static186.password); local43.p4((int) (Math.random() * 9.9999999E7D)); - local43.encryptRsa(Static86.aBigInteger1, Static256.aBigInteger2); + local43.encryptRsa(GlobalConfig.RSA_EXPONENT, GlobalConfig.RSA_MODULUS); Static6.outboundBuffer.offset = 0; Static6.outboundBuffer.p1(210); Static6.outboundBuffer.p1(local43.offset); diff --git a/client/src/main/java/Static256.java b/client/src/main/java/Static256.java index ada91dc..29b19eb 100644 --- a/client/src/main/java/Static256.java +++ b/client/src/main/java/Static256.java @@ -1,4 +1,3 @@ -import java.math.BigInteger; import org.openrs2.deob.annotation.OriginalArg; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; @@ -8,9 +7,6 @@ public final class Static256 { @OriginalMember(owner = "client!um", name = "U", descriptor = "Lclient!dd;") public static SoftwareFont aClass3_Sub2_Sub9_Sub1_1; - @OriginalMember(owner = "client!um", name = "V", descriptor = "Ljava/math/BigInteger;") - public static final BigInteger aBigInteger2 = new BigInteger("7162900525229798032761816791230527296329313291232324290237849263501208207972894053929065636522363163621000728841182238772712427862772219676577293600221789"); - @OriginalMember(owner = "client!um", name = "a", descriptor = "(Z)V") public static void method4392() { Static11.anInt384 = 0; diff --git a/client/src/main/java/Static271.java b/client/src/main/java/Static271.java index e17d9a9..1869d37 100644 --- a/client/src/main/java/Static271.java +++ b/client/src/main/java/Static271.java @@ -18,7 +18,7 @@ public final class Static271 { @OriginalMember(owner = "client!wc", name = "a", descriptor = "(Lclient!e;I)V") public static void method4597(@OriginalArg(0) Player arg0) { - @Pc(10) AreaSound local10 = (AreaSound) Static93.aClass133_7.method3863(arg0.aClass100_364.method3158()); + @Pc(10) AreaSound local10 = (AreaSound) Static93.aClass133_7.method3863(arg0.aClass100_364.encode37()); if (local10 == null) { return; } diff --git a/client/src/main/java/Static4.java b/client/src/main/java/Static4.java index 78bccd1..410f2d4 100644 --- a/client/src/main/java/Static4.java +++ b/client/src/main/java/Static4.java @@ -145,7 +145,7 @@ public final class Static4 { @Pc(245) JagString local245 = Static57.aClass3_Sub15_Sub1_3.gjstr(); if (local245.method3130(Static196.aClass100_863)) { local156 = local245.substring(local245.indexOf(Static264.aClass100_875), 0); - local275 = local156.method3158(); + local275 = local156.encode37(); local262 = false; for (local277 = 0; local277 < Static35.anInt1093; local277++) { if (Static190.aLongArray6[local277] == local275) { @@ -158,7 +158,7 @@ public final class Static4 { } } else if (local245.method3130(Static61.aClass100_423)) { local156 = local245.substring(local245.indexOf(Static264.aClass100_875), 0); - local275 = local156.method3158(); + local275 = local156.encode37(); local262 = false; for (local277 = 0; local277 < Static35.anInt1093; local277++) { if (Static190.aLongArray6[local277] == local275) { @@ -173,7 +173,7 @@ public final class Static4 { } else if (local245.method3130(Static191.aClass100_845)) { local262 = false; local156 = local245.substring(local245.indexOf(Static264.aClass100_875), 0); - local275 = local156.method3158(); + local275 = local156.encode37(); for (local277 = 0; local277 < Static35.anInt1093; local277++) { if (local275 == Static190.aLongArray6[local277]) { local262 = true; @@ -199,7 +199,7 @@ public final class Static4 { } else if (local245.method3130(Static56.aClass100_379)) { local262 = false; local156 = local245.substring(local245.indexOf(Static264.aClass100_875), 0); - local275 = local156.method3158(); + local275 = local156.encode37(); for (local277 = 0; local277 < Static35.anInt1093; local277++) { if (local275 == Static190.aLongArray6[local277]) { local262 = true; @@ -212,7 +212,7 @@ public final class Static4 { } else if (local245.method3130(Static112.aClass100_574)) { local156 = local245.substring(local245.indexOf(Static264.aClass100_875), 0); local262 = false; - local275 = local156.method3158(); + local275 = local156.encode37(); for (local277 = 0; local277 < Static35.anInt1093; local277++) { if (Static190.aLongArray6[local277] == local275) { local262 = true; @@ -224,7 +224,7 @@ public final class Static4 { } } else if (local245.method3130(Static217.aClass100_916)) { local156 = local245.substring(local245.indexOf(Static264.aClass100_875), 0); - local275 = local156.method3158(); + local275 = local156.encode37(); local262 = false; for (local277 = 0; local277 < Static35.anInt1093; local277++) { if (local275 == Static190.aLongArray6[local277]) { @@ -238,7 +238,7 @@ public final class Static4 { } else if (local245.method3130(Static164.aClass100_770)) { local156 = local245.substring(local245.indexOf(Static264.aClass100_875), 0); local262 = false; - local275 = local156.method3158(); + local275 = local156.encode37(); for (local277 = 0; local277 < Static35.anInt1093; local277++) { if (Static190.aLongArray6[local277] == local275) { local262 = true; @@ -331,11 +331,11 @@ public final class Static4 { Static251.anInt5447 = (Static251.anInt5447 + 1) % 100; @Pc(999) JagString local999 = Static230.method3953(local916).method770(Static57.aClass3_Sub15_Sub1_3); if (local908 == 2 || local908 == 3) { - Static154.method2928(local916, 20, local999, Static79.method1702(local275).method3125(), Static34.method882(new JagString[] { Static44.aClass100_336, Static79.method1702(local884).method3125() })); + Static154.method2928(local916, 20, local999, Static79.decode37(local275).method3125(), Static34.method882(new JagString[] { Static44.aClass100_336, Static79.decode37(local884).method3125() })); } else if (local908 == 1) { - Static154.method2928(local916, 20, local999, Static79.method1702(local275).method3125(), Static34.method882(new JagString[] { Static65.aClass100_435, Static79.method1702(local884).method3125() })); + Static154.method2928(local916, 20, local999, Static79.decode37(local275).method3125(), Static34.method882(new JagString[] { Static65.aClass100_435, Static79.decode37(local884).method3125() })); } else { - Static154.method2928(local916, 20, local999, Static79.method1702(local275).method3125(), Static79.method1702(local884).method3125()); + Static154.method2928(local916, 20, local999, Static79.decode37(local275).method3125(), Static79.decode37(local884).method3125()); } } Static164.anInt3985 = -1; @@ -356,8 +356,8 @@ public final class Static4 { return true; } local275 = Static57.aClass3_Sub15_Sub1_3.g8(); - Static15.aClass100_87 = Static79.method1702(local275); - Static270.aClass100_1094 = Static79.method1702(local884); + Static15.aClass100_87 = Static79.decode37(local275); + Static270.aClass100_1094 = Static79.decode37(local884); Static50.aByte6 = Static57.aClass3_Sub15_Sub1_3.g1s(); local1146 = Static57.aClass3_Sub15_Sub1_3.g1(); if (local1146 == 255) { @@ -369,7 +369,7 @@ public final class Static4 { for (local1160 = 0; local1160 < Static214.anInt5577; local1160++) { local1158[local1160] = new Class3_Sub22(); local1158[local1160].aLong192 = Static57.aClass3_Sub15_Sub1_3.g8(); - local1158[local1160].aClass100_636 = Static79.method1702(local1158[local1160].aLong192); + local1158[local1160].aClass100_636 = Static79.decode37(local1158[local1160].aLong192); local1158[local1160].anInt3340 = Static57.aClass3_Sub15_Sub1_3.g2(); local1158[local1160].aByte9 = Static57.aClass3_Sub15_Sub1_3.g1s(); local1158[local1160].aClass100_635 = Static57.aClass3_Sub15_Sub1_3.gjstr(); @@ -486,7 +486,7 @@ public final class Static4 { local884 = Static57.aClass3_Sub15_Sub1_3.g8(); local864 = Static57.aClass3_Sub15_Sub1_3.g2(); local1409 = Static230.method3953(local864).method770(Static57.aClass3_Sub15_Sub1_3); - Static154.method2928(local864, 19, local1409, null, Static79.method1702(local884).method3125()); + Static154.method2928(local864, 19, local1409, null, Static79.decode37(local884).method3125()); Static164.anInt3985 = -1; return true; } else if (Static164.anInt3985 == 169) { @@ -787,7 +787,7 @@ public final class Static4 { if (local864 > 0) { local506 = Static57.aClass3_Sub15_Sub1_3.gjstr(); } - @Pc(2834) JagString local2834 = Static79.method1702(local884).method3125(); + @Pc(2834) JagString local2834 = Static79.decode37(local884).method3125(); for (local1986 = 0; local1986 < Static9.anInt178; local1986++) { if (local884 == Static92.aLongArray3[local1986]) { if (local864 != Static104.anIntArray255[local1986]) { @@ -912,11 +912,11 @@ public final class Static4 { Static251.anInt5447 = (Static251.anInt5447 + 1) % 100; local3020 = Static230.method3953(local1986).method770(Static57.aClass3_Sub15_Sub1_3); if (local1160 == 2) { - Static154.method2928(local1986, 18, local3020, null, Static34.method882(new JagString[] { Static44.aClass100_336, Static79.method1702(local884).method3125() })); + Static154.method2928(local1986, 18, local3020, null, Static34.method882(new JagString[] { Static44.aClass100_336, Static79.decode37(local884).method3125() })); } else if (local1160 == 1) { - Static154.method2928(local1986, 18, local3020, null, Static34.method882(new JagString[] { Static65.aClass100_435, Static79.method1702(local884).method3125() })); + Static154.method2928(local1986, 18, local3020, null, Static34.method882(new JagString[] { Static65.aClass100_435, Static79.decode37(local884).method3125() })); } else { - Static154.method2928(local1986, 18, local3020, null, Static79.method1702(local884).method3125()); + Static154.method2928(local1986, 18, local3020, null, Static79.decode37(local884).method3125()); } } Static164.anInt3985 = -1; @@ -1032,7 +1032,7 @@ public final class Static4 { } else if (Static164.anInt3985 == 71) { local884 = Static57.aClass3_Sub15_Sub1_3.g8(); local790 = Static218.method2862(Static65.method1497(Static57.aClass3_Sub15_Sub1_3).method3116()); - Static103.method2231(Static79.method1702(local884).method3125(), 6, local790); + Static103.method2231(Static79.decode37(local884).method3125(), 6, local790); Static164.anInt3985 = -1; return true; } else if (Static164.anInt3985 == 42) { @@ -1143,7 +1143,7 @@ public final class Static4 { Static35.anInt1093 = Static223.anInt5028 / 8; for (local133 = 0; local133 < Static35.anInt1093; local133++) { Static190.aLongArray6[local133] = Static57.aClass3_Sub15_Sub1_3.g8(); - Static193.aClass100Array134[local133] = Static79.method1702(Static190.aLongArray6[local133]); + Static193.aClass100Array134[local133] = Static79.decode37(Static190.aLongArray6[local133]); } Static185.anInt4369 = Static119.transmitTimer; Static164.anInt3985 = -1; @@ -1215,11 +1215,11 @@ public final class Static4 { Static251.anInt5447 = (Static251.anInt5447 + 1) % 100; @Pc(4518) JagString local4518 = Static218.method2862(Static65.method1497(Static57.aClass3_Sub15_Sub1_3).method3116()); if (local1160 == 2 || local1160 == 3) { - Static103.method2231(Static34.method882(new JagString[] { Static44.aClass100_336, Static79.method1702(local884).method3125() }), 7, local4518); + Static103.method2231(Static34.method882(new JagString[] { Static44.aClass100_336, Static79.decode37(local884).method3125() }), 7, local4518); } else if (local1160 == 1) { - Static103.method2231(Static34.method882(new JagString[] { Static65.aClass100_435, Static79.method1702(local884).method3125() }), 7, local4518); + Static103.method2231(Static34.method882(new JagString[] { Static65.aClass100_435, Static79.decode37(local884).method3125() }), 7, local4518); } else { - Static103.method2231(Static79.method1702(local884).method3125(), 3, local4518); + Static103.method2231(Static79.decode37(local884).method3125(), 3, local4518); } } Static164.anInt3985 = -1; @@ -1261,11 +1261,11 @@ public final class Static4 { Static251.anInt5447 = (Static251.anInt5447 + 1) % 100; local3038 = Static218.method2862(Static65.method1497(Static57.aClass3_Sub15_Sub1_3).method3116()); if (local908 == 2 || local908 == 3) { - Static73.method1598(local3038, Static34.method882(new JagString[] { Static44.aClass100_336, Static79.method1702(local884).method3125() }), Static79.method1702(local275).method3125()); + Static73.method1598(local3038, Static34.method882(new JagString[] { Static44.aClass100_336, Static79.decode37(local884).method3125() }), Static79.decode37(local275).method3125()); } else if (local908 == 1) { - Static73.method1598(local3038, Static34.method882(new JagString[] { Static65.aClass100_435, Static79.method1702(local884).method3125() }), Static79.method1702(local275).method3125()); + Static73.method1598(local3038, Static34.method882(new JagString[] { Static65.aClass100_435, Static79.decode37(local884).method3125() }), Static79.decode37(local275).method3125()); } else { - Static73.method1598(local3038, Static79.method1702(local884).method3125(), Static79.method1702(local275).method3125()); + Static73.method1598(local3038, Static79.decode37(local884).method3125(), Static79.decode37(local275).method3125()); } } Static164.anInt3985 = -1; @@ -1447,7 +1447,7 @@ public final class Static4 { local506 = Static57.aClass3_Sub15_Sub1_3.gjstr(); @Pc(5347) Class3_Sub22 local5347 = new Class3_Sub22(); local5347.aLong192 = local884; - local5347.aClass100_636 = Static79.method1702(local5347.aLong192); + local5347.aClass100_636 = Static79.decode37(local5347.aLong192); local5347.aByte9 = local5325; local5347.aClass100_635 = local506; local5347.anInt3340 = local864; diff --git a/client/src/main/java/Static40.java b/client/src/main/java/Static40.java index f403a67..0782c71 100644 --- a/client/src/main/java/Static40.java +++ b/client/src/main/java/Static40.java @@ -119,14 +119,18 @@ public final class Static40 { } @OriginalMember(owner = "client!da", name = "a", descriptor = "(IIIILclient!na;JI)V") - public static void method1016(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2, @OriginalArg(4) JagString arg3, @OriginalArg(5) long arg4, @OriginalArg(6) int arg5) { - @Pc(8) Buffer local8 = new Buffer(128); + public static void method1016(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2, @OriginalArg(4) JagString password, @OriginalArg(5) long name, @OriginalArg(6) int arg5) { + @Pc(8) Buffer local8 = new Buffer(GlobalConfig.LOGIN_USE_STRINGS ? 129 : 128); local8.p1(10); local8.p2((int) (Math.random() * 99999.0D)); local8.p2(530); - local8.p8(arg4); + if (GlobalConfig.LOGIN_USE_STRINGS) { + local8.pjstr(Static79.decode37(name)); + } else { + local8.p8(name); + } local8.p4((int) (Math.random() * 9.9999999E7D)); - local8.pjstr(arg3); + local8.pjstr(password); local8.p4((int) (Math.random() * 9.9999999E7D)); local8.p2(Static204.anInt4760); local8.p1(arg0); @@ -135,7 +139,7 @@ public final class Static40 { local8.p2(arg5); local8.p2(arg1); local8.p4((int) (Math.random() * 9.9999999E7D)); - local8.encryptRsa(Static86.aBigInteger1, Static256.aBigInteger2); + local8.encryptRsa(GlobalConfig.RSA_EXPONENT, GlobalConfig.RSA_MODULUS); Static6.outboundBuffer.offset = 0; Static6.outboundBuffer.p1(36); Static6.outboundBuffer.p1(local8.offset); diff --git a/client/src/main/java/Static54.java b/client/src/main/java/Static54.java index e5c8892..bf8bf86 100644 --- a/client/src/main/java/Static54.java +++ b/client/src/main/java/Static54.java @@ -127,7 +127,7 @@ public final class Static54 { if (local591 != null && local591.method2682()) { local154 = local591.anInt3421 / 32 - Static173.self.anInt3421 / 32; local150 = local591.anInt3412 / 32 - Static173.self.anInt3412 / 32; - @Pc(624) long local624 = local591.aClass100_364.method3158(); + @Pc(624) long local624 = local591.aClass100_364.encode37(); @Pc(626) boolean local626 = false; for (local239 = 0; local239 < Static9.anInt178; local239++) { if (local624 == Static92.aLongArray3[local239] && Static104.anIntArray255[local239] != 0) { diff --git a/client/src/main/java/Static64.java b/client/src/main/java/Static64.java index bd6d1d6..2e39a8a 100644 --- a/client/src/main/java/Static64.java +++ b/client/src/main/java/Static64.java @@ -62,7 +62,7 @@ public final class Static64 { Static103.method2231(Static186.aClass100_827, 0, LocalizedText.FRIENDLISTFULL); return; } - @Pc(35) JagString local35 = Static79.method1702(arg0).method3125(); + @Pc(35) JagString local35 = Static79.decode37(arg0).method3125(); @Pc(42) int local42; for (local42 = 0; local42 < Static9.anInt178; local42++) { if (Static92.aLongArray3[local42] == arg0) { diff --git a/client/src/main/java/Static78.java b/client/src/main/java/Static78.java index cc26548..ef541ab 100644 --- a/client/src/main/java/Static78.java +++ b/client/src/main/java/Static78.java @@ -34,10 +34,14 @@ public final class Static78 { } @OriginalMember(owner = "client!gd", name = "a", descriptor = "(JI)V") - public static void method1691(@OriginalArg(0) long arg0) { + public static void method1691(@OriginalArg(0) long name) { Static6.outboundBuffer.offset = 0; Static6.outboundBuffer.p1(186); - Static6.outboundBuffer.p8(arg0); + if (GlobalConfig.LOGIN_USE_STRINGS) { + Static6.outboundBuffer.pjstr(Static79.decode37(name)); + } else { + Static6.outboundBuffer.p8(name); + } Static179.anInt4261 = 1; Static226.anInt5079 = 0; Static57.anInt1758 = 0; diff --git a/client/src/main/java/Static79.java b/client/src/main/java/Static79.java index 1a6ade8..c7cf9b2 100644 --- a/client/src/main/java/Static79.java +++ b/client/src/main/java/Static79.java @@ -68,7 +68,7 @@ public final class Static79 { } @OriginalMember(owner = "client!ge", name = "a", descriptor = "(IJ)Lclient!na;") - public static JagString method1702(@OriginalArg(1) long arg0) { + public static JagString decode37(@OriginalArg(1) long arg0) { if (arg0 <= 0L || arg0 >= 6582952005840035281L) { return null; } else if (arg0 % 37L == 0L) { diff --git a/client/src/main/java/Static84.java b/client/src/main/java/Static84.java index 6e36fd8..df836fd 100644 --- a/client/src/main/java/Static84.java +++ b/client/src/main/java/Static84.java @@ -40,7 +40,7 @@ public final class Static84 { local24 = Static57.aClass3_Sub15_Sub1_3.offset; @Pc(35) boolean local35 = (local13 & 0x8000) != 0; if (arg2.aClass100_364 != null && arg2.aClass59_1 != null) { - @Pc(48) long local48 = arg2.aClass100_364.method3158(); + @Pc(48) long local48 = arg2.aClass100_364.encode37(); @Pc(50) boolean local50 = false; if (local17 <= 1) { if (!local35 && (Static124.aBoolean157 && !Static207.aBoolean236 || Static86.aBoolean129)) { diff --git a/client/src/main/java/Static86.java b/client/src/main/java/Static86.java index d382eff..551623a 100644 --- a/client/src/main/java/Static86.java +++ b/client/src/main/java/Static86.java @@ -1,4 +1,3 @@ -import java.math.BigInteger; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; @@ -16,9 +15,6 @@ public final class Static86 { @OriginalMember(owner = "client!gm", name = "W", descriptor = "Lclient!na;") public static final JagString aClass100_488 = Static28.parse("_"); - @OriginalMember(owner = "client!gm", name = "X", descriptor = "Ljava/math/BigInteger;") - public static final BigInteger aBigInteger1 = new BigInteger("58778699976184461502525193738213253649000149147835990136706041084440742975821"); - @OriginalMember(owner = "client!gm", name = "bb", descriptor = "Z") public static boolean aBoolean129 = false; diff --git a/client/src/main/java/Static87.java b/client/src/main/java/Static87.java index b2d8eb3..756e39d 100644 --- a/client/src/main/java/Static87.java +++ b/client/src/main/java/Static87.java @@ -694,7 +694,7 @@ public final class Static87 { } @Pc(2751) Player local2751 = Static159.aClass8_Sub4_Sub1Array1[local514]; @Pc(2760) SeqType local2760 = local276 == -1 ? null : Static36.method941(local276); - if (local2751 != null && (int) local2751.aClass100_364.method3158() << 11 == (local30.modelId & 0xFFFFF800)) { + if (local2751 != null && (int) local2751.aClass100_364.encode37() << 11 == (local30.modelId & 0xFFFFF800)) { local2589 = local2751.aClass59_1.method1954(null, -1, null, local2760, 0, -1, 0, local30.anInt510, 0); } } diff --git a/client/src/main/java/Static88.java b/client/src/main/java/Static88.java index ac35298..e9cf5b9 100644 --- a/client/src/main/java/Static88.java +++ b/client/src/main/java/Static88.java @@ -1253,7 +1253,7 @@ public final class Static88 { local26--; local609 = Static3.aClass100Array176[local26]; Static6.outboundBuffer.p1isaac(244); - Static6.outboundBuffer.p8(local609.method3158()); + Static6.outboundBuffer.p8(local609.encode37()); continue; } if (local226 == 3106) { @@ -1634,25 +1634,25 @@ public final class Static88 { if (local226 == 3605) { local26--; local609 = Static3.aClass100Array176[local26]; - Static64.method1496(local609.method3158()); + Static64.method1496(local609.encode37()); continue; } if (local226 == 3606) { local26--; local609 = Static3.aClass100Array176[local26]; - Static193.method3500(local609.method3158()); + Static193.method3500(local609.encode37()); continue; } if (local226 == 3607) { local26--; local609 = Static3.aClass100Array176[local26]; - Static140.method2707(local609.method3158()); + Static140.method2707(local609.encode37()); continue; } if (local226 == 3608) { local26--; local609 = Static3.aClass100Array176[local26]; - Static69.method1542(local609.method3158()); + Static69.method1542(local609.encode37()); continue; } if (local226 == 3609) { @@ -1737,7 +1737,7 @@ public final class Static88 { if (local226 == 3619) { local26--; local609 = Static3.aClass100Array176[local26]; - Static156.method2956(local609.method3158()); + Static156.method2956(local609.encode37()); continue; } if (local226 == 3620) { @@ -1756,7 +1756,7 @@ public final class Static88 { local28--; local809 = Static254.anIntArray487[local28]; if (Static166.anInt4054 != 0 && Static35.anInt1093 > local809) { - Static3.aClass100Array176[local26++] = Static79.method1702(Static190.aLongArray6[local809]).method3125(); + Static3.aClass100Array176[local26++] = Static79.decode37(Static190.aLongArray6[local809]).method3125(); continue; } Static3.aClass100Array176[local26++] = Static72.aClass100_447; @@ -2181,7 +2181,7 @@ public final class Static88 { local803 = Static254.anIntArray487[local28]; local1052 = Static254.anIntArray487[local28 + 1]; Static6.outboundBuffer.p1isaac(99); - Static6.outboundBuffer.p8(local609.method3158()); + Static6.outboundBuffer.p8(local609.encode37()); Static6.outboundBuffer.p1(local803 - 1); Static6.outboundBuffer.p1(local1052); continue; @@ -2352,7 +2352,7 @@ public final class Static88 { Static6.outboundBuffer.p1isaac(201); Static6.outboundBuffer.p1(0); local1052 = Static6.outboundBuffer.offset; - Static6.outboundBuffer.p8(local609.method3158()); + Static6.outboundBuffer.p8(local609.encode37()); Static146.method2748(Static6.outboundBuffer, local2522); Static6.outboundBuffer.p1len(Static6.outboundBuffer.offset - local1052); } @@ -2396,7 +2396,7 @@ public final class Static88 { } if (local226 == 5015) { if (Static173.self == null || Static173.self.aClass100_364 == null) { - local609 = Static186.aClass100_829; + local609 = Static186.username; } else { local609 = Static173.self.method1264(); } @@ -2504,7 +2504,7 @@ public final class Static88 { Static6.outboundBuffer.p1isaac(178); Static6.outboundBuffer.p1(0); local803 = Static6.outboundBuffer.offset; - Static6.outboundBuffer.p8(local609.method3158()); + Static6.outboundBuffer.p8(local609.encode37()); Static6.outboundBuffer.p2(Static122.aClass12_1.anInt439); Static122.aClass12_1.aClass3_Sub2_Sub6_1.method760(Static6.outboundBuffer, Static122.aClass12_1.anIntArray33); Static6.outboundBuffer.p1len(Static6.outboundBuffer.offset - local803); @@ -3151,7 +3151,7 @@ public final class Static88 { if (local226 == 5604) { local26--; if (Static244.anInt5370 == 10 && Static219.anInt4937 == 0 && Static184.anInt4348 == 0 && Static179.anInt4261 == 0 && Static82.anInt2231 == 0) { - Static78.method1691(Static3.aClass100Array176[local26].method3158()); + Static78.method1691(Static3.aClass100Array176[local26].encode37()); } continue; } @@ -3159,7 +3159,7 @@ public final class Static88 { local28 -= 4; local26 -= 2; if (Static244.anInt5370 == 10 && Static219.anInt4937 == 0 && Static184.anInt4348 == 0 && Static179.anInt4261 == 0 && Static82.anInt2231 == 0) { - Static40.method1016(Static254.anIntArray487[local28], Static254.anIntArray487[local28 + 3], Static254.anIntArray487[local28 + 1], Static3.aClass100Array176[local26 + 1], Static3.aClass100Array176[local26].method3158(), Static254.anIntArray487[local28 + 2]); + Static40.method1016(Static254.anIntArray487[local28], Static254.anIntArray487[local28 + 3], Static254.anIntArray487[local28 + 1], Static3.aClass100Array176[local26 + 1], Static3.aClass100Array176[local26].encode37(), Static254.anIntArray487[local28 + 2]); } continue; } diff --git a/client/src/main/java/client.java b/client/src/main/java/client.java index e4c582e..99189e1 100644 --- a/client/src/main/java/client.java +++ b/client/src/main/java/client.java @@ -329,15 +329,15 @@ public final class client extends GameShell { } Static80.read(Static71.signLink); // preferences if (Static83.modeWhere == 0) { - Static143.worldListHostname = this.getCodeBase().getHost(); + Static143.worldListHostname = GlobalConfig.DEFAULT_HOSTNAME; // this.getCodeBase().getHost(); Static97.worldListAlternatePort = GlobalConfig.ALTERNATE_PORT + 1; Static249.worldListDefaultPort = GlobalConfig.DEFAULT_PORT + 1; } else if (Static83.modeWhere == 1) { - Static143.worldListHostname = this.getCodeBase().getHost(); + Static143.worldListHostname = GlobalConfig.DEFAULT_HOSTNAME; // this.getCodeBase().getHost(); Static97.worldListAlternatePort = GlobalConfig.ALTERNATE_PORT + Static187.worldListId; Static249.worldListDefaultPort = GlobalConfig.DEFAULT_PORT + Static187.worldListId; } else if (Static83.modeWhere == 2) { - Static143.worldListHostname = "127.0.0.1"; + Static143.worldListHostname = GlobalConfig.DEFAULT_HOSTNAME; // "127.0.0.1"; Static97.worldListAlternatePort = GlobalConfig.ALTERNATE_PORT + Static187.worldListId; Static249.worldListDefaultPort = GlobalConfig.DEFAULT_PORT + Static187.worldListId; }