Exploring the inner workings of PW for automation and security

04/04/2025 18:22 0secondstomidnight#1
Hello everyone,

I'm a software developer since 2020, working professionally in the field, and I’ve always been passionate about technology, reverse engineering, and automation. I started playing Perfect World around 2007–2008, and like many of you, this game was a big part of my life.

Recently, I returned to playing on a private server simply because I absolutely love this game. As someone who’s always been curious about alternative ways to interact with systems — bugs, exploits, automation — I naturally felt the urge to dive deeper into PW and start developing my own bots and tools for educational purposes on my server, including with the goal of building defenses for my private server.

I’m very interested in truly understanding how Perfect World works under the hood. I imagine many of you have already gone through this journey and know much more than I do. I have a background in software engineering, but I don’t have your level of experience when it comes to game development, especially related to PW.

So I’m here to join the community and, with all due respect, to ask for some guidance on how to begin this journey:

How can I better understand the internal structure of Perfect World?

What language was it originally developed in?

What tools have you used (or still use) for memory reading, automation, packet handling, etc.?

Is there a solid foundation I should study first?

Do different versions (e.g., 1.3.6 vs 1.5.1) significantly affect the techniques used? Does the memory structure change a lot?

How do you deal with shifting offsets? Is it possible to map things intelligently or find stable pointers that won’t disappear after the game restarts?

I’m not expecting step-by-step answers — just a direction. I’m more than willing to study, research, and make mistakes along the way. And above all, everything I learn, I’ll make sure to bring back here to the forum in the form of tutorials, tools, and shared knowledge, just like many others have done — and who I admire for that.

I truly believe this community is incredibly smart, technical, and passionate about PW and game development. I’m here as a student, with humility and great respect for those who really understand this world. Thank you for keeping this space alive!
04/06/2025 22:14 ZennonDev#2
I'm not very good at writing, especially in English, since it's not my native language. So I'll write in Portuguese and ask ChatGPT to translate it (I apologize if the translation isn't perfect), but I'll do my best to answer your questions. I've been developing stuff for Perfect World for a while now.

How can I better understand the internal structure of Perfect World?
If you search on some forums, you’ll find the leaked server-side source code. Through it, I believe you'll be able to clarify most of your doubts about how the game's internal structures work.

What language was it originally developed in?
Most of the game, if not the entire thing, was developed in C++, including both the client and the server.

What tools have you used (or still use) for memory reading, automation, packet handling, etc.?
Basically, I use Cheat Engine and IDA to find addresses and offsets. Personally, I use C# and C++ for memory reading and writing, but you can use any programming language that allows interaction with the process memory. I don't directly work with packets to the extent of creating a fully clientless bot or cheat (just using direct connections), but I use Cheat Engine whenever I need to identify a specific packet related to some function. For example, if I need the packet sent when casting a skill, I use Cheat Engine to dissect its structure and find out the necessary parameters to send it to the server.

Is there a solid foundation I should study first?
Since you already understand programming, I recommend first learning how to locate offsets, pointers, and important memory addresses. After that, it's mainly a matter of applying programming logic to use the information you've found. I suggest checking out posts from users dumbfck, Swoosh, and Interest07, as their topics should be very helpful. I also recommend the "[Only registered and activated users can see links. Click Here To Register...]" thread created by amineurin, which includes a large compilation of threads about Perfect World.

Do different versions (e.g., 1.3.6 vs 1.5.1) significantly affect the techniques used? Does the memory structure change a lot?
No. Most techniques don't change significantly between different versions. Naturally, some things will be updated or modified, but the majority of the internal structures remain practically the same.

How do you deal with shifting offsets? Is it possible to map things intelligently or find stable pointers that won’t disappear after the game restarts?
Regarding offsets, your main goal should be finding the Base Address. Using it, you'll be able to access practically all of the common structures needed for cheats and bots. From the Base Address, there are pointers to several important structures. Cheat Engine can suggest correct names for these pointers when using the Dissect Data/Structures feature with the correct base address, which greatly simplifies the process.


I hope you manage to learn everything you want and that you don't give up. The forum has been dying for quite some time, so it's great to see there are still new people interested in learning about PW.
04/10/2025 22:09 0secondstomidnight#3
Thank you ZennonDev for your collaboration.

I ended up replying to you but my message was deleted, I believe I put words in Portuguese.

I didn't know about the "Teasure Map", it's really good, a lot of compiled material, I'll study it.