RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

SpyUO - a C# UO packet hooker

Phenos

Wanderer
SpyUO - a C# UO packet hooker

SpyUO is a tool to see decrypted and decompressed packets sent and received by UO client.

It's divided into two parts:
- SpyUOLib.dll: this dll contains all packet hooking, Clients.cfg parsing, basic classes for packet reading and some defined packets.
- SpyUO.exe: this program uses SpyUOLib.dll to provide a GUI with some functionalities for packets data handling.

It requires the .Net Framework to run (http://msdn.microsoft.com/netframework).

Packets statistics are calculated as averages over the last 10 seconds (s = sent, r = received, T = total ).

Special thanks to Folko (http://uo.elitecoder.net) for providing Clients.cfg.
Ultima.dll is developed by Krrios (http://www.runuo.com).

--

Clients.cfg is updated to client version 5.0.1i.
 

Attachments

  • SpyUO.zip
    111.5 KB · Views: 2,844
  • SpyUO-Source.zip
    128.8 KB · Views: 1,474

Phenos

Wanderer
Thanks :)

I've updated to version 1.1, with some new functionalities.

I've added an option to export items in RunUO decorations format.
So basically you can generate all objects you have seen by adding exported SpyUO items file to Data\Decoration\*\ RunUO folder and using [decorate command. The exact behaviour of this option could be adjusted in Items.cfg file.

Then WorldItem, LocalizedMessage and LocalizedMessageAffix now show the name of the item (from tiledata) and the message (from cliloc.enu), extracted with Krrios' Ultima.dll (thanks for this tool ;)).
 

Phenos

Wanderer
Released 1.2 version.

Added definitions for gump, hits, stamina and mana packets.

Added a tool to generate gumps in RunUO format: just select the gump packet you wish to extract and click on "Tools-Extract gump" option.

Added an option to save logs in a typical hex editor format.
 

Menta2K

Wanderer
hmm thats very cool but .. i have one problem ...
i try on 4.0o 3D No crypted version and spyuo say
Packet pump error
Client not defined
then i install 2D version 4.0p2 the same Exaption
then i try 4.0p2 no crypted version .. again the same exeption
what i am doing wrong ?
10x in advance
 

Phenos

Wanderer
Updated to 1.3 version.

Added properties packet reading (0xD6) and v4.0.0p support.

Menta2K said:
hmm thats very cool but .. i have one problem ...
i try on 4.0o 3D No crypted version and spyuo say
Packet pump error
Client not defined
then i install 2D version 4.0p2 the same Exaption
then i try 4.0p2 no crypted version .. again the same exeption
what i am doing wrong ?
10x in advance
3D clients are not supported because Clients.cfg doesn't have entries for them (anyway you could get them reading Clients_cfg_Tutorial.html).

4.0.0p in 2D should work fine with new Clients.cfg of SpyUO 1.3.
 

Phenos

Wanderer
barakko said:
could you mind adding a column with the packet size in the next version..?
Uhm, what is the purpose?

If you want to read some undefined packets, I really suggest you to save in hex format and read the generated file. Then if you have some C# skill you can add the new packet definition in the code.
In fact SpyUO GUI is mainly designed to handle defined packets...
 

barakko

Wanderer
that would be for testing the laggyness (?) of certain regions.
che palle scrivere in inglese quando siamo tutti italiani.
well in a few words that would be for checking how much bytes are sent to the client when I walk in some places I made.. because of dynamic items, mobiles, things like that :-/
for example I was wondering if a knight on a horse with a full plate was way more laggy than a troll or not
 
I must be a complete moron here but if i use the start option and select my client.exe right aftr i type in my username,pass and hit enter, the client is closed... So i start the client up, then use the attach and select CLIENT from the list menu and again, after i type my username, pass and hit enter, client closes... using the latest client.
 

Phenos

Wanderer
barakko said:
che palle scrivere in inglese quando siamo tutti italiani.
Eheh :)

Anyway I've released SpyUO 1.4.
Items.cfg has been changed to include doors and signs (in ignore list).
A packet length column has been added.
Some packets statistics calculated over the last 10 seconds are now shown on the title bar.


TheOutkastDev said:
I must be a complete moron here but if i use the start option and select my client.exe right aftr i type in my username,pass and hit enter, the client is closed... So i start the client up, then use the attach and select CLIENT from the list menu and again, after i type my username, pass and hit enter, client closes... using the latest client.
That's really odd...
What happens if you attach to a client already in game?
 
That's really odd...
What happens if you attach to a client already in game?

As soon as i try to walk, client closes. It seems, once it sends a packet and SpyUO tries to receive and log it, the client closes out.

I took a shortcut and instead of itializing the form, i kept it in a console and did all the other config methods ect.. just no main form present. I had it just open the process select box and config the packetpump. It attached and as soon as i tried to walk, it did the same thing it always does. Console generated this error:

[code:1]
Unhandled Exception: System.EntryPointNotFoundException: Unable to find an entry
point named OpenThread in DLL Kernel32.
at SpyUO.NativeMethods.OpenThread(DesiredAccessThread dwDesiredAccess, Boolea
n bInheritHandle, UInt32 dwThreadId)
at SpyUO.PacketSpy.SpyPacket(UInt32 threadId, Boolean send)
at SpyUO.PacketSpy.MainLoop()
at SpyUO.ProcessStarter.Start()
[/code:1]

If it has any impact, I use win98 SE.
 

Phenos

Wanderer
TheOutkastDev said:
If it has any impact, I use win98 SE.
Yeah sorry if I didn't catch the point.

OpenThread requires Windows 2000-3, XP or ME, so SpyUO works only under these operative systems...

I'm unsure if there can be a work around to run it under Windows 98...
 

raistlin

Wanderer
I'm not sure, but how do I use this? I would like to use it to copy where things are placed on an OSI shard.
How would I go about installing it?
 
Top