Client 7.0.0+ and SA enhanced / Encryption

Forum where anything UOX3-related goes - including, but not limited to: newbie-support, ideas, general questions, comments, etc and-so-forth.
Post Reply
Tom
UOX3 Neophyte
Posts: 31
Joined: Tue Dec 20, 2011 9:36 pm
Location: Berkeley
Has thanked: 0
Been thanked: 0

Client 7.0.0+ and SA enhanced / Encryption

Post by Tom »

I was hoping myself and xantier were going to work on the encryption, I have a few questions,

What are the current methods for removing encryption for clients 6.0+ - 7.0+ and SA enhanced?

It seems from the quick research I've done so far, that handling encryption with the server is the best option, without it, the server is always at the mercy of 3rd party programs?

Also Xuri, the packet changes you recently posted for clients is very helpful but I think a bit incomplete from what I've researched so far, but most of the missing info seems mostly related to KR clients, I will continue my research and hopefully be able to help with this, however its the encryption that seems an obstacle right now.
tommyhawk is back!
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

One of the reasons for relying on 3rd party in the past was the lack of people internally who knew how to update the encryption-stuff whenever that changed, and the fact that the tools got updated faster than it would take to update & release a new UOX3 version. If we go down the route of supporting encrypted clients once more, we should probably try to make it relatively easy for server admins to do basic updates like adding support for new encryption keys without having to mess about in the code and recompile etc, perhaps through a script-file listing of all supported encryption-keys of some sort.

Of course the ideal long-term solution would be support for both non-encrypted and encrypted clients.

Now, just updating the current UOX3 to support login & character-creation from client-versions from 6.0.14.2 to 7.0+ is relatively easy, it just comes down to updating a few packets (0xB9, change ReserveSize from 3 to 5, change WriteShort to WriteLong, plus additional stuff to enable feature support in the newer clients. Just changing the two firsts things on that packet allowed me to login & move around normally with client versions up to 7.0.2.2 (highest I have atm), though not sure if anything breaks). However, the current setup doesn't seem to easily allow for different login/character creation-packets based on client-versions (to support both pre and post 6.0.14.2 client versions), which would have to be solved somehow.
-= Ho Eyo He Hum =-
Tom
UOX3 Neophyte
Posts: 31
Joined: Tue Dec 20, 2011 9:36 pm
Location: Berkeley
Has thanked: 0
Been thanked: 0

Post by Tom »

I'm thinking we can do this, exactly as you suggest. My only obstacle now, is learning the difference between handling encrypted vs non encrypted packets.
Unfortunately encryption isn't one of my strong area's, but I'll dedicate myself to learning it.

I'm in need of an older version which used to handle the encrypted packets, I'll reread through the forums and see, I think there was a link to one you may have posted besides the other one which I erased, because I don't quite understand that whole thread, no offense intended to anyone.

Since we already have the unencrypted method we just need to add the encrypted method, sounds easy enough. :)
tommyhawk is back!
Tom
UOX3 Neophyte
Posts: 31
Joined: Tue Dec 20, 2011 9:36 pm
Location: Berkeley
Has thanked: 0
Been thanked: 0

Post by Tom »

Talk about the least discussed UO subject on the internet, and any information I've found turns out not to work so far.
I think I even gotten past the initial encryption using generated keys, but keep getting stuck at connecting on the second login, and packet 0xdd.

If anyone can find the correct hex editing method for removing encryption that would be great, then I could be sure I'm not getting hung on the encryption 100%.
I know its available, just no one wants to release it for newer clients, it would appear, I'm working with 4.0.21.2

If I can be sure we can get past newer encryption, or convert the server to use encrypted packets, I'd be happy to add the code needed to use the SA features, although it'll take some time.
tommyhawk is back!
Tom
UOX3 Neophyte
Posts: 31
Joined: Tue Dec 20, 2011 9:36 pm
Location: Berkeley
Has thanked: 0
Been thanked: 0

Post by Tom »

I'm gonna give up on this for now, unless we can handle encrypted clients, or find the hex method it doesn't seem worth the effort, as we'll be limited to not being able to patch unless someone decides to update their tool.
tommyhawk is back!
dragon slayer
UOX3 Guru
Posts: 776
Joined: Thu Dec 21, 2006 7:37 am
Has thanked: 4 times
Been thanked: 26 times

Post by dragon slayer »

here is a pakcet guid ei know pol uses. they support all the lasets clients with features because of this guide

http://docs.polserver.com/packets/index.php
Tom
UOX3 Neophyte
Posts: 31
Joined: Tue Dec 20, 2011 9:36 pm
Location: Berkeley
Has thanked: 0
Been thanked: 0

Post by Tom »

POL has the ability to use encrypted clients, unless someone with the knowledge does that for UOX3, or finds the hex edit method, how to login?
tommyhawk is back!
Tom
UOX3 Neophyte
Posts: 31
Joined: Tue Dec 20, 2011 9:36 pm
Location: Berkeley
Has thanked: 0
Been thanked: 0

Post by Tom »

Also, checked that packet guide, its missing all the info needed, some of the packets say things like Krioss client, and freeshards list, which are used by SA.
tommyhawk is back!
Tom
UOX3 Neophyte
Posts: 31
Joined: Tue Dec 20, 2011 9:36 pm
Location: Berkeley
Has thanked: 0
Been thanked: 0

Post by Tom »

It does have some SA info after close inspection. However it is missing most.
I don't think my crypt method was working either, because according to it and other sources 0xdd is a compressed gump, not to sure why the client would have sent me that.

If I even understood the encryption process, it would help a lot, for instance I am not sure what is sent, when, or what length, or the reply for encryption.
Someone is either going to have to explain it, or we need access to the other method, however like I was saying, no one seems to want to part with the info.

When I did use generated keys, it let me past first login, but froze at connecting. So I'm not even sure what happened, only that I got farther.
tommyhawk is back!
dragon slayer
UOX3 Guru
Posts: 776
Joined: Thu Dec 21, 2006 7:37 am
Has thanked: 4 times
Been thanked: 26 times

Post by dragon slayer »

i did notic some one posted a at runuo code for crypted cleints to login on there script page..

maybe have a look at it
dragon slayer
UOX3 Guru
Posts: 776
Joined: Thu Dec 21, 2006 7:37 am
Has thanked: 4 times
Been thanked: 26 times

Post by dragon slayer »

Here is the link to the forum i was telling you about at runuo had the crypted clients
http://www.runuo.com/community/threads/ ... ic.458502/

here is what the person said on that forum of that file
Hello everyone,
This script allows client encryption into your server, Classic or Enhanced. So you don't have to use third party programs ( like ConnectUO, Razor, etc. etc. ) to login into your server.

This supports RunUO 2.0 & RunUO 2.1

I did not make any of these scripts/programs so do not give me credit for that. I only figured out how to use them to allow people to login your server with encryption classic or enhanced client. I'm still a noob so i don't know how to change it to allow both clients....so um yeah i only know how to allow one of either or and i will show you how.I have uploaded all files you will need but you can use others and download it from anywhere

Intructions:
------------------------------------------------

1.

First you are going to need "Client Encryption", "UOKeyLogin_Calculator", and for UOEnhance, "UOSALoader"

=============================

2.

Uncompress Client Encryption into your RunUO Server custom scripts(RunUO/Scripts/Customs)

=============================

3.

Open UOKeyLogin_Calculator input the client lastest version Example: ( [7].[0].[11].[2] ) weither if its enhanced or classic after you input your versoin you should of gotten 2 keys.

=============================

4.

Now go to where you uncompress your client encryption scripts and open Configuration.cs now your seeing all the version of the preivous UO Clients if your using classic client input the lastest version and key to the top
example:
Code:
new LoginKey("7.0.11.0", 0x2DFB574D, 0xA3ED9E7F),

For UO Enhance delete all the previous versions of old client and input only the new enhanceclient
example:
Code:
new LoginKey("4.0.11.2", 0x2C7B574D, 0xA32D9E7F),you will have to update each key stacking from top when EA releases a new patch.

=============================

5.

Now that you have gotten your server to accept those kind of encrpytion keys all you need is the client to login into your server. Goto your UO installation folder look for login.cfg open it with notepad delete everything and input your info ( LoginServer=IP,Port )
like this:
Code:
LoginServer=127.0.0.1,2593

For UO Enhance, open UOSALoader from your client installation folder (.../Program Files/Eletronic Arts/ultima Online Enhanced/) after you have open'd it input your server information IP & Port now click on ...patch, it should of sucessfully patched.

=============================

6.

Upload your login.cfg and share it with your players no programs needed ( razor, connectuo, etc. ) or you can also give intructions how edit login.cfg.


For UO Enhance Upload your uosa.patched.exe you can rename it into anything you like(UOSAMyserver), it will not effect anything and now share it with your players with instructions on how to login; Copy the new client.exe(UOSA.patched.exe) into your client installation folder and run it, thats it. When a new patch is release you will have to update your uosa.patched.exe with the same loader.

=============================

7.

Login to your server with orginal client.exe or shortcut.


For UO Enhance use the new patched uosa client to login.

-------------------------------------------------
thats it, simple as that. Like I've mention before i am not the creator or mod of any of these programs & scripts, only the guide is all I really made, heh I'm a noob. but anyways enjoy and have fun with your players playing the new UO Enhanced in your server if you have any problems or some kind of confusion from my guide please reply I will help as much as i can...

*note* any modifications done to your Classic UO like Custom Map, Art, Texture, or Hues(colors) will not work with UO enhanced you will need to find tools or create your own tools( hope you share ) to modify the new UO enhance, although i have not seen any tools for UO Enhanced yet...or else i would share :/


Known Bugs for UO: Enhanced on RunUO v2.1:
•Backpack, items stack up in one slot on grid view.
•Backpack, Items show out of border in list view.
•Problem with creating a character.
•Atlas map goes out of border when moved or resized.
•Incorrect animation from NPCs and Players at times.(barely notice, dosn't happen alot)
Ultima Online Enhanced is very playable in RunUO, no lag, no major problems, no crashs, easy to use, and a very good client upgrade. I would recommend this to anyone who runs a non-client moded server.

here is all the zip files that was uploadedd to that forum i hope this helps you some
Attachments
RunUO-Encryption-2.4.zip
(54.68 KiB) Downloaded 29 times
UoSALoader.rar
(40.11 KiB) Downloaded 28 times
UOKeyLogin_Calculator.rar
(4.09 KiB) Downloaded 26 times
Tom
UOX3 Neophyte
Posts: 31
Joined: Tue Dec 20, 2011 9:36 pm
Location: Berkeley
Has thanked: 0
Been thanked: 0

Post by Tom »

I didn't have RunUo-Encryption which is a perfect example of what I need, thank you.
I already know how to change login IP and port through hex editing, the loader is a nice program for those who don't, thanks again.
I used that same calculator to get the keys I've been playin around with, :)

I was hoping xaniter would have commented when he stopped in, unfortunately he didn't. I'll have to wait till next time to see what he thinks.
I may be able to make some progress with the RunUo example, but we may probably need a more experienced person to help solve this I think.
tommyhawk is back!
Post Reply