[3.0.12 and above] Allow all client versions to connect

ehthe

Retired Staff
Contributor
Apr 26, 2015
1,029
896
216
Without
>= 3.0.18.2
With
EVERY VERSION* ! (desktop and mobile)

Method 2 is useless and is kept as documentation. Do not use it.

So as some of you know, in the latest server build (3.0.12 - still in beta at the time of writing, out of beta 2016-01-27) a new check was added. That check makes it so that only 3.0.18.2 clients can connect to the server. And we want to bypass that :D

METHOD 1
(warning : this WILL NOT work for the windows binary)
This check is in two parts.

Part 1

The first one just "configures" any newly created db. It edit a server property to tell the server (any version of it) not to accept any client-version before 1445512488.
So the first thing to do is to check your server properties.
Code:
virtualserver_min_client_version
virtualserver_min_android_version
virtualserver_min_ios_version
You can just put a zero there or any other build (below what you wanna connect ofc). To do that you can use the serveredit command or be a crazy like me and use a sql editor.

When that first part is done it still won't work :p
Now comes the real part :D

Part 2

What you need :
  • The server binary (ts3server), here's a link :)
  • A hex editor
  • A brain
Open the server binary in your favorite hex editor. I'll use bless :)
We'll use the search function, on bless and many others i trust you can just hit ctrl-f.
There you're gonna search for a hex values.
those values are
Code:
28 C5 28 56
D3 8D DF 53
27 C5 28 56
D2 8D DF 53
hbqW4k36BgXaVLJU.png

Now use the overwrite function to replace these by 0 ;)
Code:
00 00 00 00
Do that for all the values and all their hits.
Save and test :D

If you still cannot connect :
Check that the first check is indeed disabled (set to 0 or something lower than 1445512488)
md5sum your binaries (the original and the copy you edited) to check that the hex modifications have been made.

METHOD 2
WARNING : THIS METHOD IS UNRELIABLE AND WILL BYPASS virtualserver_min_*

Read the method 1 :p
(no really, read it)
Here we don't need to mess with any server property as they will be bypassed. So we jump straight to the editing part :)
This time instead of searching for
Code:
28 C5 28 56
we're going to look for
Code:
74 4B 48 8D 35
When found (there should only be one hit) just replace 74 by EB
(this method only allow 3.0.16)

pyUJnsfgzdToxZmT.png

WoTvJ4zwvP6RwZeI.png

Patterns :
Some things might be wrong, need to check and clean up.
Code:
Desktop : 28 C5 28 56 -> 1445263695 | 3.0.18.2
mobile (android & ios) : D3 8D DF 53 -> 1407159763 | 3.0.16

unknown : 27 C5 28 56 ->1445512487
unknown : D2 8D DF 53 ->1407159762 | 1sec below 3.0.16
Code:
jz : 74 4B 48 8D 35
08 D1 80 E1 01 84 C9 74 4B 48 8D 35 ?6 ?? 33 00 48 8D BC 24 98 01 00 00 BA 7D 00 00 00 E8
08 D1 80 E1 01 84 C9 EB 4B 48 8D 35 ?6 ?? 33 00 48 8D BC 24 98 01 00 00 BA 7D 00 00 00 E8
* : every version, but not below 3.0.11 :p
 
Last edited:

Asphyxia

Owner
Administrator
Apr 25, 2015
1,845
2
2,199
327
We should do this with all of the future versions (if they are locked like this) and then provide our own download link for "unlocked" server binaries, haha. I don't think people are going to want to force clients to update their client. Then again, is it possible that the 3.0.12 is only coded in because it is technically still beta? That would be my guess. :p

That kind of would defeat the purpose of making it a setting/option at all to change the min version.
 

ehthe

Retired Staff
Contributor
Apr 26, 2015
1,029
896
216
I just tested to connect with the client version 3.0.11.1 (a very old version) and it doesn't work. That means there must be some others version checks.

EDIT 2016-01-27 : Everything works.
 
Last edited:

ehthe

Retired Staff
Contributor
Apr 26, 2015
1,029
896
216
Did some more testing, It seems you cannot connect if your client version is older than 3.0.16
Going to try to break that up :)

EDIT : Can't seem to break it.
 
Last edited:

Asphyxia

Owner
Administrator
Apr 25, 2015
1,845
2
2,199
327
Did some more testing, It seems you cannot connect if your client version is older than 3.0.16
Going to try to break that up :)

EDIT : Can't seem to break it.
Isn't it probable that the server itself could detect there is indeed a TeamSpeak 3 client although the communications/functionality between TeamSpeak 3 client/server are sending data in an incorrect or unexpected manner which would automatically default to too old of a client/server version to match together? That would certainly make sense to me, so even if you did bypass or get a workaround --- the client or server would behave buggy with their interaction, that would be my best guess.
 

ehthe

Retired Staff
Contributor
Apr 26, 2015
1,029
896
216
Yes that would be possible. But I can only see that behavior happening for very old releases. I'm going to check what changed between 3.0.15.1 and 3.0.16

EDIT: Here are the two changelogs
http://files.teamspeak-services.com/updater-images/client/1406898538/changelog_client.txt
http://files.teamspeak-services.com/updater-images/client/1407159763/changelog_client.txt

Nothing much it seems. Maybe some internal changes that were not mentioned in the changelog.

EDIT : Found another way which seems much more reliable, but it doesn't seem to solve the problem xD
EDIT : Added other method to main thread
 
Last edited:

ehthe

Retired Staff
Contributor
Apr 26, 2015
1,029
896
216
Now I know why I can't go below 3.0.16 !
It's the client refusing to connect it seems
The server just sends a 0xc8 which basically means that the clientinit has been aborted. WIth that an error code 0x02 0x0a
 
Last edited:

lukasjanra

Active Member
Jan 7, 2016
103
22
65
Hello can I ask for hex values for min android and IoS? I want to update server but I have few clients with older versions of their clients
 

ehthe

Retired Staff
Contributor
Apr 26, 2015
1,029
896
216
Well if you do the zeroing for all the four hex values given, you should be able to connect with any version :) (still >3.0.11 desktop because of protocol change, but who uses something below that anyway)
 

ehthe

Retired Staff
Contributor
Apr 26, 2015
1,029
896
216
Yes I know :) if the db is correctly edited and the values zeroed then you can connect with any version, desktop or mobile :D

(I corrected some part of the tutorial so that it may be clearer)
 

lukasjanra

Active Member
Jan 7, 2016
103
22
65
Edited db correctly, and binary too but still android says.

This server requires a newer client version. Please visit the Android Market for the latest version.
 

lukasjanra

Active Member
Jan 7, 2016
103
22
65
Aaaaaa its working like a charm. After first try it didnt save db properly so it changed binary too.... so I did it second time and working
 

ehthe

Retired Staff
Contributor
Apr 26, 2015
1,029
896
216
Is it a test server ? if so you could try and erase the db, then check if the values that you previously edited are still set to zero (they should be given that we zeroed them out in the binary)

EDIT : Glad it's working :D
 

lukasjanra

Active Member
Jan 7, 2016
103
22
65
How did you mean bitter? Im from slovakia but Im learning english already for like 10 years but this word doesnt say me anything
 

ehthe

Retired Staff
Contributor
Apr 26, 2015
1,029
896
216
It's people not being happy, being angry about something
 

Derp

Retired Staff
Contributor
Apr 30, 2015
933
1,014
217
To the users concerned about the stability of their server after applying the patch!

Two days have passed since I patched my servers. No stability issues yet.

Do not hesitate, afterall you could just replace the binary and reverse back to a stable state. "Unless you fucked up so bad to make it corrupt your database :p"
 
Top