Uoproxy is a project mainly written in C and C++, it's free.
A fork of Max Kellerman's uoproxy, implementing some custom features
(c) 2005-2010 Max Kellermann [email protected]
uoproxy is a proxy server designed for Ultima Online. It acts as an Ultima Online server, and forwards the connection to a 'real' server.
Some of the interesting features:
transparent auto-reconnect after a server or network failure (e.g. DSL disconnect, server maintenance); the UO client won't notice, macros keep running without user interaction
backgrounding the connection, i.e. quit your client and the proxy will stay online, for macroing off kill counters
multi-headed (playing a character with multiple clients)
character change without logout
traversing firewalls
transparent proxying
faking your client IP - install uoproxy on 10 different servers, and have 10 different IP addresses although all clients run on your local computer
faking client version and hardware info
hide multi client operation
block spy packets
circumventing a shard's login server (most freeshards are insecure!)
easy exploit development (if you know C)
You can download uoproxy on the home page:
http://max.kellermann.name/projects/uoproxy/
uoproxy was developed on Linux, but will probably run on any POSIX operating system, including Solaris, FreeBSD, MacOS X. You need the following to compile it:
Type:
make
(Or "gmake" if you are not on Linux). This will result in the binary named "src/uoproxy". Install the files on your system:
make install
Edit the file /etc/uoproxy.conf, and fill in the 'server' and 'port' variables.
Type
uoproxy
Now point your Ultima Online client (encryption disabled) at the machine running uoproxy. UOGateway can be used to remove encryption and to add the uoproxy server to your Login.cfg.
As of version 0.3.2, uoproxy is once again compatible with Razor, thanks to patches from Calin Culianu. Tested and works with Razor 1.0.12. You need to set the 'razor_workaround yes' configuration option in the config file to enable compatibility with Razor. The Razor workaround involves telling the UO client to reconnect to uoproxy on login (which is what Razor expects). This has the added side-effect of enabling server-side compression, which is also what Razor seems to expect.
Thanks to the people who deciphered the UO network protocol. Reading the sources of many free software projects helped a lot during uoproxy development, namely: RunUO, UOX3, Wolfpack, Iris and others.
Copyright 2005-2010 Max Kellermann [email protected]
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.