Home > uoproxy

uoproxy

Uoproxy is a project mainly written in C and C++, it's free.

A fork of Max Kellerman's uoproxy, implementing some custom features

uoproxy README

(c) 2005-2010 Max Kellermann [email protected]

What is uoproxy?

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)

Getting uoproxy

You can download uoproxy on the home page:

http://max.kellermann.name/projects/uoproxy/

Installation

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:

  • gcc
  • GNU make
  • libevent development files (package "libevent-dev" or "libevent-devel")

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.

Running

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.

Running with Razor

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.

Credits

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.

Legal

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.