I think I've done it... A (temporary until Jeb fix it) FIX for the Invalid Server Key problem!!

What is the problem?

During minecraft server-client handshake, a specific packet sends a 'server key' to the client. This server key, according to development wiki, is supposed to help facilitate the username validity check, and is unrelated to the server and client. For whatever reason, the server key given by server is some times incorrect in minecraft 1.0.0 (ie: not +,-, or a 16 char long hex string).

How is this fixed?

It would be great if I did it on the server end -- I can boost people on my server promising no error. But that's just bad chi.

But frankly, I have no idea which obfuscated class on the server end addresses this server key, so I cannot modify it to ensure it sends the right key.

So, I put the fix on the client end. For the class that handles the handshake (abp.class), I added a check just before the authentication check. If there is no valid server key in the string, I force the client to make a custom string to validate with official minecraft session server.

Full disclosure

This fix modifies your Minecraft client. The fix specifically modifies the class that handles authentication. As with all client modifications, it is perfectly valid to feel paranoid about the possibilities of me stealing your account information. I assure you that my fix does not copy or store any authentication information, and provide the source code for those that would like to compile it yourself. However, I am not able to provide support for this, and you are completely on your own.

Installation

Short Guide: To install, replace the official abp.class with my modified abp.class.

Long Guide:

Windows/Linux users:



Locate your minecraft.jar; for Windows, it is in %APPDATA%/.minecraft/bin Create a backup of minecraft.jar Open minecraft.jar in an archive editor (WinRar/7-Zip/etc.) Delete META-INF folder Copy the .class file from download into the jar file, replacing the original copy. Save, if needed, and you're done!

Locate your minecraft.jar; this is typically in ~/Library/Application Support/minecraft/bin Create a backup of minecraft.jar Rename minecraft.jar to minecraft.jar.zip, and double click the zip file to extract its contents Copy the .class file from download into the minecraft.jar folder created in the previous step You're done!

Download

Mac users: