From 165bbccc2dc34e7caf2efd9268423530fda3e126 Mon Sep 17 00:00:00 2001 From: Lossy Date: Sat, 15 Jan 2022 06:00:24 -0600 Subject: [PATCH 1/2] Create obfuscated_private_ip object when LoginID is provided --- .../steam/handlers/steamuser/SteamUser.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamuser/SteamUser.java b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamuser/SteamUser.java index 53d84b44..f2af158e 100644 --- a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamuser/SteamUser.java +++ b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamuser/SteamUser.java @@ -12,6 +12,7 @@ import in.dragonbra.javasteam.generated.MsgClientLogon; import in.dragonbra.javasteam.generated.MsgClientMarketingMessageUpdate2; import in.dragonbra.javasteam.handlers.ClientMsgHandler; +import in.dragonbra.javasteam.protobufs.steamclient.SteammessagesBase; import in.dragonbra.javasteam.protobufs.steamclient.SteammessagesClientserver.CMsgClientSessionToken; import in.dragonbra.javasteam.protobufs.steamclient.SteammessagesClientserver.CMsgClientWalletInfoUpdate; import in.dragonbra.javasteam.protobufs.steamclient.SteammessagesClientserver2.CMsgClientEmailAddrInfo; @@ -144,13 +145,24 @@ public void logOn(LogOnDetails details) { SteamID steamID = new SteamID(details.getAccountID(), details.getAccountInstance(), client.getUniverse(), EAccountType.Individual); + SteammessagesBase.CMsgIPAddress.Builder ipAddress = SteammessagesBase.CMsgIPAddress.newBuilder(); if (details.getLoginID() != null) { - logon.getBody().setDeprecatedObfustucatedPrivateIp(details.getLoginID()); // NOTE: Using deprecated method. + ipAddress.setV4(details.getLoginID()); + + logon.getBody().setObfuscatedPrivateIp(ipAddress.build()); } else { int localIp = NetHelpers.getIPAddress(client.getLocalIP()); - logon.getBody().setDeprecatedObfustucatedPrivateIp(localIp ^ MsgClientLogon.ObfuscationMask); // NOTE: Using deprecated method. + ipAddress.setV4(localIp ^ MsgClientLogon.ObfuscationMask); + + logon.getBody().setObfuscatedPrivateIp(ipAddress); } + // Legacy field, Steam client still sets it + if (logon.getBody().getObfuscatedPrivateIp().hasV4()) { + logon.getBody().setDeprecatedObfustucatedPrivateIp(logon.getBody().getObfuscatedPrivateIp().getV4()); + } + + logon.getProtoHeader().setClientSessionid(0); logon.getProtoHeader().setSteamid(steamID.convertToUInt64()); From 52bacdf17f84bd8954b74e6e9bc0ef28cb677d4d Mon Sep 17 00:00:00 2001 From: Lossy Date: Sat, 15 Jan 2022 06:04:18 -0600 Subject: [PATCH 2/2] Fix CMsgIPAddress builder --- .../dragonbra/javasteam/steam/handlers/steamuser/SteamUser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamuser/SteamUser.java b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamuser/SteamUser.java index f2af158e..e4a02ac2 100644 --- a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamuser/SteamUser.java +++ b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamuser/SteamUser.java @@ -154,7 +154,7 @@ public void logOn(LogOnDetails details) { int localIp = NetHelpers.getIPAddress(client.getLocalIP()); ipAddress.setV4(localIp ^ MsgClientLogon.ObfuscationMask); - logon.getBody().setObfuscatedPrivateIp(ipAddress); + logon.getBody().setObfuscatedPrivateIp(ipAddress.build()); } // Legacy field, Steam client still sets it