Check out the UOAI project:
http://code.google.com/p/uoai/
Artaxerxes and I tossed some ideas back and forth and both started our projects around the same time. We ended up taking different routes. He went hardcore into client internals, I moved away from that and focused more on packets. He reversed the holy heck out of the client and his code is a wealth of information.
I just learned some interesting stuff about my code while looking at UOAI source tonight. I have a kind of brute force way of reversing the client and didn't really understand the underlying objects when I wrote my code years ago. For instance, I knew from debugging the client I needed to have ECX register point to a "magic" value in memory in order to send packets the same way the client does. I didn't know why at the time, I just figured out how to get that value and made sure my inlined ASM set ECX properly. From looking at UOAI source I now know it's because that "magic" value is a C++ class object and the function I'm calling is a member function using "thiscall" calling convention. ECX is a pointer to the parent object required with "thiscall".
Click to visit: JoinUO free shard list
Excellent source of info on UO client internals
2 posts
• Page 1 of 1
Thanks for pointing us to that project. I didn't know about it.
Since the client is written in Visual C++ I also recommend you to read this article (and part 2): The more you learn about how a compiler does things, the easier it becomes for you to recognize (the) patterns. <Derrick> RunUO AI is kind of a functional prototype, which i have hacked into something resembling OSI behavior, but only by complitcating everything
|
|
2 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 1 guest