Hi Guys,
I want to try to create a simple client Protcol conversion proxy that would allow clients such as 1.26.4b to connect to newer servers without any server modifications.
I am thinking of something that would do the following:
Old Client <---1.26.4b protocol----> Packet Converter <---New Protocol---> RunUO
As soon as the client connects to the Packet Converter a connection is made from the Packet Converter to the RunUO server.
Basically what I want to do:
For packets that the old client won't understand:
- Find a workaround using existing compatible packets available for the client
or
- Don't send them at all (If they don't really matter. For example showing a certain spell effect)
For packets that existed on both the old client's protocol and the new client's protocl, but only a few slight differences exist:
- Modify the packet slightly to be compatible
I saw that the packet dates listed in 'Jerrith’s UO Packets Guide' seem to be more or less in line when 1.26.4b existed. How much variation would there be?
1.26.4b client encryption.....
I have the client keys, but I don't exactly know what to do with them. Do both the login and game packets get encrypted the same way with this client version? As far as I know it uses Blowfish encryption.
Before I start I would like to know if you guys think this is a usefull thing to do or will I just be wasting my time?
Click to visit: JoinUO free shard list
Packet converter Proxy
4 posts
• Page 1 of 1
If you make it as a library it would be more usefull. Integration is the keyword here (imho).
UO:98 already does this at server-side. So you might want to take a look at how Derrick did things there. Whatever you do, keep it clean and simple <Derrick> RunUO AI is kind of a functional prototype, which i have hacked into something resembling OSI behavior, but only by complitcating everything
|
|
<Derrick> RunUO AI is kind of a functional prototype, which i have hacked into something resembling OSI behavior, but only by complitcating everything
|
|
Good news, you can do this with MasterControl.dll.
Bad news...only clients 3.0.6m to current are supported. I -may- add in support for other clients, I'm not sure right now how different they are, just that things changed pretty dramatically from 3.0.2g to 3.0.4n On a side note, if a person were to do this, what would be some good client versions/protocols to spoof? If you wrote multiple proxies, say 2.x (1.x <-> 2.x converter), 3.x (2.x <-> 3.x converter), 6.x (3.x <-> 6.x converter), you could pass your packets through multiple proxies as necessary. Each proxy would need a set "source protocol" and "target protocol". I'm not sure which client versions would be best to target, but any serious effort would need to start there IMO. |
|
4 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 4 guests