ValveSoftware / Source-1-Games

Source 1 based games such as TF2 and Counter-Strike: Source
646 stars 74 forks source link

[TF2] [Urgent] [Bug] Creating a shortcut of tf.exe with -steam in the targets section allows you to connect to official servers with the 32bit client #5777

Closed AzureWoof closed 6 months ago

AzureWoof commented 6 months ago

You can connect to Official/VAC secured servers with TF2's 32bit client by creating a shortcut of tf.exe in the game's directory, adding "-steam" to the targets section of the shortcut, and then launching it. This is how botting software is getting past the 64bit update.

It needs to be set up like so:

5N3GusW

Please fix this ASAP. This is being abused to bring bots back way quicker. The intended functionality is for the 32bit client to reject connections to VAC secured servers.

Niterux commented 6 months ago

it works fine for me

Jeffonehundred commented 6 months ago

it works fine for me

Does not work with windows 7. Tried oping the options menu, and the game crashed. Same thing with trying to join a game. I can not get the 32 bit mode to work with this command.

Niterux commented 6 months ago

Windows 7 is generally no longer supported by Valve so this isn't surprising.

Jeffonehundred commented 6 months ago

@Niterux How is my reply off topic? How does it not correlate to the topic here?

Niterux commented 6 months ago

@Niterux How is my reply off topic? How does it not correlate to the topic here?

Your reply is off topic because it doesn't have to do with the -steam launch argument causing the game to launch the 32 bit executable.

Jeffonehundred commented 6 months ago

@Niterux Oh, I am sorry, I forgot to mention I was using that command. The 32 bit vision does not load after using on windows 7. I forgot to mention that part.

digivorix commented 6 months ago

I've got Windows 7 (Professional, 64-bit) and can confirm these things happen to me, with or without the -steam launch option. The game launches just fine, but as soon as I try to join a server or offline game it just crashes. I know Valve doesn't support Windows 7 anymore, but I find it weird that starting an offline game or joining a server is what causes a crash, as opposed to just having the entire application being incompatible with Windows 7 now.

I've also seen crash reports from users with Windows 10 systems (different circumstances, but still crashes), so I wonder if it comes down to an incompatibility with Windows 7 or some other weird bug?

Jeffonehundred commented 6 months ago

@digivorix Yes, its completely strange. The 64 bit build was working just 2 days ago. I still have a backup of the exe file that can play it. I think im going to fiddle around with it and see if I can get it to work. You would not think that the person who pushed this update sabotaged the files so widows 7 users would migrate to lenix do you? Not saying this is what happens. But its something to take note of just in case.

Niterux commented 6 months ago

Are you sure you're using tf_win64.exe instead of tf.exe? tf.exe launches the 32 bit version, launching tf_win64.exe with -steam and -game tf shows it as running the 64 bit version of Team Fortress 2 for me. Cannot reproduce your issue. image

Jeffonehundred commented 6 months ago

@Niterux Yes,after looking again, using -steam does nothing. It simply launch tf_win64.exe with not differences. Launching the tf.exe the 32 bit vision, creating your own server works using "tf.exe", but does not work with tf_win64.exe. Attempting to join a sever with "tf.exe" causes a error message to appear. The error "You are in an insecure mode. You must restart before you can connect to secure servers."

AzureWoof commented 6 months ago

Are you sure you're using tf_win64.exe instead of tf.exe? tf.exe launches the 32 bit version, launching tf_win64.exe with -steam and -game tf shows it as running the 64 bit version of Team Fortress 2 for me. Cannot reproduce your issue.

Launching tf.exe in your game directory after putting -steam in your launch options allows you to connect to official servers, I believe. I'll edit the post to clarify.

Jeffonehundred commented 6 months ago

@AzureWoof I just tried that, it does not work on vac secured servers, only on non vac serves can I join. And that is with "tf.exe" not "tf_win64.exe"

AzureWoof commented 6 months ago

@AzureWoof I just tried that, it does not work on vac secured servers, only on non vac serves can I join. And that is with "tf.exe" not "tf_win64.exe"

Wait, I got confused. Create a shortcut of tf.exe, and in the properties, add -steam to the targets section. Now you'll be able to connect to VAC secured servers. Editing the post to reflect this now.

AzureWoof commented 6 months ago

Apologies for all of the confusion. I had conflicting information. Updated the post to include accurate information. This is an urgent issue, and I hope this gets fixed ASAP.

misyltoad commented 6 months ago

We are still supporting the 32-bit client on Windows for a few tools people were using that exist. We'll probably drop the 32-bit client totally on Windows at some point in the future.

kisak-valve commented 6 months ago

Hello @AzureWoof, as @Joshua-Ashton noted, the 32 bit variant of the game existing is not a bug by mere existence.

AzureWoof commented 6 months ago

@kisak-valve @Joshua-Ashton My apologies if I'm causing a lot of confusion. My main reasoning for creating this post is because the 32bit client seemingly isn't supposed to allow you to connect to secure servers while in use. Launching tf.exe (32bit) by itself makes it launch in insecure mode, which still allows you to use all of the tools included with the game, but stops you from connecting to secure servers. But by making a shortcut out of it with "-steam" in the targets section of the properties, it allows you to bypass this and connect to secure servers.

Do any of the tools that are still being supported on the 32bit client require connecting to VAC secured servers for them to function?

kisak-valve commented 6 months ago

Running the Windows 32 bit client of Team Fortress 2 from the Steam client will start the game with the -steam argument included. If there is any confusion here, it's from starting the game outside of the Steam client and building an assumption starting from there.

AzureWoof commented 6 months ago

Running the Windows 32 bit client of Team Fortress 2 from the Steam client will start the game with the -steam argument included. If there is any confusion here, it's from starting the game outside of the Steam client and building an assumption starting from there.

As of the latest update to the game, the 32bit client for TF2 was replaced with the 64bit client. I don't believe there's a way to launch 32bit TF2 from the steam client anymore. But like Joshua said, it seems like it's being kept around in the game's directory as "tf.exe" so that players can still utilize it for its tools. The 64bit client, which is the new default client that's launched from steam when launching the game is "tf_win64.exe".

So, the only way to launch the 32bit client to my knowledge is to launch tf.exe from the game's directory. By default, doing so will automatically launch it in insecure mode, which is why I'm assuming that it's not intended for players to be able to connect to VAC secured servers with that executable at all, as the 64bit version of the game has replaced it for the purposes of joining matchmaking.

I originally mistook the process of launching the 32bit client in this way as a steam client launch option, but I was incorrect. The following process is how players are bypassing the now default insecure mode on the 32bit client:

  1. Go to the Team Fortress 2 main directory
  2. Find "tf.exe"
  3. Create a shortcut of "tf.exe"
  4. Open the properties of the shortcut
  5. Find targets and add -steam
  6. Launch "tf.exe" via the Shortcut

You can now join VAC secure servers with the 32-bit version of Team Fortress 2 after the 64-bit update.

I also made a video to showcase and explain the process: Link

Niterux commented 6 months ago

The 64 bit update isn't a anti-cheat update. It's designed to be a maintenance update, the presence of a 32 bit client that is able to join multiplayer is fully intentional unless it's been stated otherwise. And there's nothing wrong with it! I'm sure cheaters have already updated their cheats to work on the 64 bit executable anyways!

AzureWoof commented 6 months ago

The 64 bit update isn't a anti-cheat update. It's designed to be a maintenance update, the presence of a 32 bit client that is able to join multiplayer is fully intentional unless it's been stated otherwise. And there's nothing wrong with it! I'm sure cheaters have already updated their cheats to work on the 64 bit executable anyways!

I'm well aware of that fact. As I have previously stated, launching the 32bit client unaltered does not allow you to connect to VAC secure servers. That is where my assumption lies that this tweak that bypasses that is unintentional.

Niterux commented 6 months ago

The 64 bit update isn't a anti-cheat update. It's designed to be a maintenance update, the presence of a 32 bit client that is able to join multiplayer is fully intentional unless it's been stated otherwise. And there's nothing wrong with it! I'm sure cheaters have already updated their cheats to work on the 64 bit executable anyways!

I'm well aware of that fact. As I have previously stated, launching the 32bit client unaltered does not allow you to connect to VAC secure servers. That is where my assumption lies that this tweak that bypasses that is unintentional.

You cannot connect to VAC secured servers on the 64 bit client without the -steam argument.

AzureWoof commented 6 months ago

You cannot connect to VAC secured servers on the 64 bit client without the -steam argument.

Correct, which is why launching the 64bit client through steam allows connectivity. The 32bit client seemingly has no way to launch through steam, and launching the 32bit executable without the shortcut method will not allow you to join any VAC secure servers either, and there is no officially supported option to launch the 32bit version of the game to connect to VAC secure servers. That is where the confusion lies. It's unclear if this method of doing so is intentional or not.

Niterux commented 6 months ago

You cannot connect to VAC secured servers on the 64 bit client without the -steam argument.

Correct, which is why launching the 64bit client through steam allows connectivity. The 32bit client seemingly has no way to launch through steam, and launching the 32bit executable without the shortcut method will not allow you to join any VAC secure servers either, and there is no officially supported option to launch the 32bit version of the game to connect to VAC secure servers. That is where the confusion lies. It's unclear if this method of doing so is intentional or not.

That's because the 32 bit client is niche and will be removed in the future. If connecting to servers on the 32 bit client was unintentional then the functionality would have been removed.

Jeffonehundred commented 6 months ago

Replying to https://github.com/ValveSoftware/Source-1-Games/issues/5777#issuecomment-2067784371

I just tried this on Windows 7, it does not work. I still can only connect to non-VAC servers. I have followed your instructions, and they do nothing for windows 7.

AzureWoof commented 6 months ago

That's because the 32 bit client is niche and will be removed in the future. If connecting to servers on the 32 bit client was unintentional then the functionality would have been removed.

If the ability to join VAC secure servers on the 32bit client was an intentional choice, (which I feel isn't very likely considering that it takes altering a shortcut to get it to function) then I'm pretty sure that launching the game through Steam would allow you to pick between either the 32bit version of the game or the 64bit version of the game via a popup dialog like most other titles on Steam that give you that choice.

AzureWoof commented 6 months ago

I just tried this on Windows 7, it does not work. I still can only connect to non-VAC servers. I have followed your instructions, and they do nothing for windows 7.

I'm personally on Windows 11. If you're absolutely sure you've followed everything correctly, it's entirely possible that this is operating-system-specific.

It's also worth mentioning that Windows 7 is no longer considered a supported operating system for Steam, so it's entirely possible this is why it doesn't work on there.

Jeffonehundred commented 6 months ago

@AzureWoof May I ask why you are trying to run the 32 bit vision of the exe? Something to do with mods right? I am just trying to find a state that the game can run.

AzureWoof commented 6 months ago

@AzureWoof May I ask why you are trying to run the 32 bit vision of the exe? Something to do with mods right? I am just trying to find a state that the game can run.

No, I was just pointing out the strange interaction that the 32bit client has with those shortcut parameters, since I'm assuming that being able to join secure servers with that method is unintentional. I always run the 64bit client whenever I want to play.

slender100 commented 6 months ago

We are still supporting the 32-bit client on Windows for a few tools people were using that exist. We'll probably drop the 32-bit client totally on Windows at some point in the future.

This issue wasn't created about postponing the discontinuation of 32 bit support because it is needed for various tools, this issue was opened to address a method of opening the 32 bit client which circumvents the 32 bit client normally putting the user into insecure mode upon launching the game. Will reopen this as a separate issue if I get no response.

Niterux commented 6 months ago

We are still supporting the 32-bit client on Windows for a few tools people were using that exist. We'll probably drop the 32-bit client totally on Windows at some point in the future.

This issue wasn't created about postponing the discontinuation of 32 bit support because it is needed for various tools, this issue was opened to address a method of opening the 32 bit client which circumvents the 32 bit client normally putting the user into insecure mode upon launching the game. Will reopen this as a separate issue if I get no response.

All clients usually put the game into insecure mode, -steam enables Steam support which includes enabling VAC since VAC is a part of Steam. There is nothing out of the ordinary here, please don't open another issue.

slender100 commented 6 months ago

We are still supporting the 32-bit client on Windows for a few tools people were using that exist. We'll probably drop the 32-bit client totally on Windows at some point in the future.

This issue wasn't created about postponing the discontinuation of 32 bit support because it is needed for various tools, this issue was opened to address a method of opening the 32 bit client which circumvents the 32 bit client normally putting the user into insecure mode upon launching the game. Will reopen this as a separate issue if I get no response.

All clients usually put the game into insecure mode, -steam enables Steam support which includes enabling VAC since VAC is a part of Steam. There is nothing out of the ordinary here, please don't open another issue.

So users on the 32 bit client should still be able to join into official VAC servers?

Niterux commented 6 months ago

So users on the 32 bit client should still be able to joined official VAC servers?

I mean I'm not a developer of this game but I don't see why Valve wouldn't allow that.

slender100 commented 6 months ago

So users on the 32 bit client should still be able to joined official VAC servers?

I mean I'm not a developer of this game but I don't see why Valve wouldn't allow that.

The reason why is because the current 64 bit client is the client that everyone uses for joining games, yet attempting to use the 32 bit client to join a game results in an insecure message when attempting to join VAC servers.

Niterux commented 6 months ago

The reason why is because the current 64 bit client is the client that everyone uses for joining games, yet attempting to use the 32 bit client to join a game results in an insecure message when attempting to join VAC servers.

Only without the -steam launch argument, the 64 bit client behaves the same, this is fully intentional behavior. As VAC is a component of Steam, so enabling Steam is required for VAC to be present.

slender100 commented 6 months ago

The reason why is because the current 64 bit client is the client that everyone uses for joining games, yet attempting to use the 32 bit client to join a game results in an insecure message when attempting to join VAC servers.

Only without the -steam launch argument, the 64 bit client behaves the same, this is fully intentional behavior. As VAC is a component of Steam, so enabling Steam is required for VAC to be present.

By this logic, if the only reason the 32 bit client is still supported is due to certain tools that are reliant on it, then there is no reason why the 32 bit client should be able to connect to VAC secured servers due to the planned discontinuation of 32 bit in the future.

The current client that steam launches is the 64 bit client, not the 32 bit client.

Yet, the method mentioned earlier circumvents this, and thus is not intentional.

Niterux commented 6 months ago

By this logic, if the only reason the 32 bit client is still supported is due to certain tools that are reliant on it, then there is no reason why the 32 bit client should be able to connect to VAC secured servers due to the planned discontinuation of 32 bit in the future.

Competitive players use old plugins to record demos better.

slender100 commented 6 months ago

By this logic, if the only reason the 32 bit client is still supported is due to certain tools that are reliant on it, then there is no reason why the 32 bit client should be able to connect to VAC secured servers due to the planned discontinuation of 32 bit in the future.

Competitive players use old plugins to record demos better.

The game has an in-built feature for recording demos automatically, as well as other features shown at the end of this video: https://www.youtube.com/watch?v=LX7Ef7bM4t8

sapphonie commented 3 months ago

If this is actually intended behavior, it's hilariously incompetent. Why in god's name would you create the opportunity to functionally brick all old cheats and just not take it? Keep the binaries, allow people to use them and play old demos + use old plugins, but x86 clients should not be allowed to connect to VAC protected servers. There is no functional reason why this should be allowed. Valve, do better.