Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Development] Soul of the Ultimate Nation - Server Emulator

Newbie Spellweaver
Joined
May 29, 2014
Messages
64
Reaction score
59
The First Version of the Client is here. Just place the Resource file in you client:

https://drive.google.com/file/d/1QDl...w?usp=drivesdk

I am uploading the new one (without the WPK) now but it will take some time :)



Did you check if the packet definition loads correctly?
View attachment 167171

Pv89CqF - [Development] Soul of the Ultimate Nation - Server Emulator - RaGEZONE Forums


Maybe the packet contains some other information than before?
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
May 9, 2019
Messages
40
Reaction score
25
This should work regardless of the content. This error occurs when there is no class definition with the appropriate header. Did you change something in the code?
 
Joined
Jun 27, 2010
Messages
939
Reaction score
1,193
No need to worry, i was wrong about that. It only happens in debug mode so i have to see why it happens.



Ok guys I have the best NEWS ever. I found a way to unpack the Resource.wpk and tell the client to use the unpacked files and not the Resource.wpk. Now we can edit everything we want !!!

Sounds great, but that can cause problems long term. For now, this is the best solution we have. Can you please post how you got the client to use the unpacked files and any tools that you might have used? Thanks!

Maybe you can make the client read only the unpacked .txt string files and the rest from the wpk? like the KR client.
 
Newbie Spellweaver
Joined
May 29, 2014
Messages
64
Reaction score
59
This should work regardless of the content. This error occurs when there is no class definition with the appropriate header. Did you change something in the code?

The error is thrown by the world server. Thats super strange. I didnt touch the Connection Packets in the Agent server. Just the SKILL packet. And even there i dont process anything just added some variables to check the incoming Package.
So somehow the world server thinks the package is for him.

When i start the world server after i already am in character selection it works fine.


CwaniX or Ashime

How would you try to figure out what Type of Packet you would have to send back? Just bruteforce try everything? The Category would be the same, but the type i have no idea.
 
Newbie Spellweaver
Joined
May 9, 2019
Messages
40
Reaction score
25
This is a very difficult question :laugh:.

  1. You can start another old server locally and try to sniff packets with some packet analyzer. The problem is that old servers are heavily defective and many things don't work.
  2. You can search old source files - especially Protocol_**.h, PacketStruct_**.h and Handler_**.h.
  3. You can try to add 1 to the incoming packet type. Probably the original protocol was constructed in this way but many things have changed over the years.
  4. If you can use debuggers like OllyDBG, Ghidra, IDA... :laugh:.
 
Junior Spellweaver
Joined
Oct 20, 2013
Messages
193
Reaction score
56
The error is thrown by the world server. Thats super strange. I didnt touch the Connection Packets in the Agent server. Just the SKILL packet. And even there i dont process anything just added some variables to check the incoming Package.
So somehow the world server thinks the package is for him.

When i start the world server after i already am in character selection it works fine.


@CwaniX or @Ashime

How would you try to figure out what Type of Packet you would have to send back? Just bruteforce try everything? The Category would be the same, but the type i have no idea.

How I figure it out?
Go make an account on zhaouc.com, download the client from sun.zhaouc.com/sun1, and do packet sniffing from the client. That's how I got all of my packets for the login/auth server. I already have a few accounts there and you don't need a vpn.

FYI, zhaouc is the last company to have an EP1 server and it has bugs. You cannot waypoint to Etherain, therefore there is a ton of quests not available.
 
Newbie Spellweaver
Joined
May 29, 2014
Messages
64
Reaction score
59
Ok in the server files are pretty much all the packets and what they do.
I will create a branch and work on the parsers first, so you guys know what i am working on.
 
Junior Spellweaver
Joined
Oct 20, 2013
Messages
193
Reaction score
56
Newbie Spellweaver
Joined
May 9, 2019
Messages
40
Reaction score
25
CwaniX Alex Mgh

I did packet sniffing on the retail server up to loading in a character into Esod and I have come to realize that none of the packet Category or Protocol match what is in the GitHub server files. Ofc, the retail server (zhaouc) forces you to update to a new client than what you guys are probably using.

Here is the Google Doc of what I got after login.
LINK: https://drive.google.com/open?id=1M-4qw4phQ3-tH5UxtxNaxUdJ7zDlQlaCz_ICmE-BsFs

Yes that's true, but probably because their server uses some kind of encryption. Our client has encryption turned off and thanks to that it was easier to start working on the server. Unfortunately to continue developing we will need to work out how the packets are encrypted. It is possible that this is the "simple modulus" because it was mentioned in old files, but it can be a different algorithm and then it will be much harder.
 
Last edited:
Junior Spellweaver
Joined
Oct 20, 2013
Messages
193
Reaction score
56
Yes that's true, but probably because their server uses some kind of encryption. Our client has encryption turned off and it was easy to get started but unfortunately to develop the server we will need to work out how the packets are encrypted.

How did you manage to remove the encryption from the client? Do you really think the server and client would encrypt the category and protocol? I can understand the message. If you can remove the encryption, is there anyway to figure out what the encryption is?
 
Newbie Spellweaver
Joined
May 29, 2014
Messages
64
Reaction score
59
Well do files have anything to do with it? they are in every old server.

VdqWzST - [Development] Soul of the Ultimate Nation - Server Emulator - RaGEZONE Forums



In the System.wpk you can change the settings of the server. There is a SERVER DEBUG mode and a SPECIAL MODE i will test if they have something to do with encryption turn off or on.
 

Attachments

You must be registered for see attachments list
Junior Spellweaver
Joined
Oct 20, 2013
Messages
193
Reaction score
56
Well do files have anything to do with it? they are in every old server.

VdqWzST - [Development] Soul of the Ultimate Nation - Server Emulator - RaGEZONE Forums



In the System.wpk you can change the settings of the server. There is a SERVER DEBUG mode and a SPECIAL MODE i will test if they have something to do with encryption turn off or on.
Alex Mgh

Those Enc1-2 and Dec1-2 are often used with the SimpleModulus similar to MU Online. While those files are in every older SUN server, there is also PacketCrypt.h file and the object to go with it. The PacketCrypt takes a DWORD key similar to TEA. Another thing to consider is that there is no Enc1-2 and Dec1-2 on the client side, which is often present in other Webzen games. I could be wrong and the client might use SimpleModulus, but it wouldn't hurt to check out the other options.



Just to let everyone know, the packet encryption is there because after the fourth packet between the client and game server (port 20002), the packet's category and protocol are random every time.



Here is a sample project I found in the old SUN files that uses the SimpleModulus encryption. It has the .cpp and .h.
LINK: https://drive.google.com/open?id=13GbbpJOdDStHpH_0bdcF2CyzL3h5_ALO

I only have the object for the PacketCrypt and the .h file. The object mentions the TEA object inside of it.
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
May 9, 2019
Messages
40
Reaction score
25
So decrypting packets should now be our main goal. Unfortunately the packets seem to be completely random - even containing the same data are different each time, but it seems to me that the data is two bytes longer than the packets we know. It is possible that two random bytes are added to obfuscate the data. I will try to finish implementing the simple modulus algorithm in Java. I suspect that this algorithm is not used here, but it's the easiest one to start with. If that doesn't work, I think we will have to try to capture packets from the client before encryption, but to do that we will probably need to get rid of gameguard.
 
Newbie Spellweaver
Joined
May 29, 2014
Messages
64
Reaction score
59
Hey guys, sorry for the long absence time. Ashime
I wonder why you decided to stop working on the old server you had going in your other forum thread. I managed to build it and login. I managed to load in all basic maps and missions.
I visited Waldchen, Tringel, Etherain and even Aukra.
I am currently trying to get into the first mission and I am confident I will make it soon.

I actually only build this server to have some references but so much works there and the code is nicely organized.

So we're there any big barriers that you decided to stop?
 
Junior Spellweaver
Joined
Oct 20, 2013
Messages
193
Reaction score
56
Hey guys, sorry for the long absence time. @Ashime
I wonder why you decided to stop working on the old server you had going in your other forum thread. I managed to build it and login. I managed to load in all basic maps and missions.
I visited Waldchen, Tringel, Etherain and even Aukra.
I am currently trying to get into the first mission and I am confident I will make it soon.

I actually only build this server to have some references but so much works there and the code is nicely organized.

So we're there any big barriers that you decided to stop?
Alex Mgh

If you are talking about this discussion [RELEASE] Soul of the Ultimate Nation Emulator, then it's easy to assume you got further than me. If you are not rebuilding the server, then you will ultimately run into the same issues that I mentioned on page 9. Here is the break down on what I found:

Server

1) The server does not load in guild related information from the database. The source code posted has the code related to this is commented out.

2) The game server has buffering issues when sorting through large amounts of data. I'm assuming the buffer size is hard coded in and needs to be updated in source code.

3) The Cash Shop slots and tabs are hard coded to only provide 5 pages or tabs and 25 items total on all 5 pages. This issue is found in the game server source code.

4) There is map loading issues. The client cannot load into new maps and the server has a hard time accepting new maps that are linked (other than Tringel and Zapir Lake). If the format is incorrect, then the game server will produce an error.

5) The servers (I know for a fact DB and Game Server) do not recognize anything related to GM, such as verifying GM accounts/characters, commands, and etc. This is because the GM related code is not complete in the source code.

6) There is a lot of skills that do not work because of all sort of reasons. Some don't work due to the skill not existing on the server end, some have incorrect status effects such as the user gets stunned when they shouldn't, the skills don't have lingering effects such as heals or buffs, and etc. because they are not coded in on the source code.

7) All constants (const.h) or defines (define.h, commondef.h, and etc.) on the server end needs to be updated. These files were originally built from Aion, so please keep that in mind if you decide to pick up the source code.

8) Lots of animations on the server end don't work. For an example, sitting, waving, auto-attacking (with or without weapon), and etc. This occurs because the constants and defines (number 7 in this list) needs to be updated.

I choose not to work on that emulator because the servers needed to be fixed. The source code was a hot mess and I don't know C++. I decided to drop the files and build my own. Either way, this is very off topic. If you have any questions, please private message me instead. Thank you.
 
Newbie Spellweaver
Joined
May 9, 2019
Messages
40
Reaction score
25
Hey guys, sorry for the long absence time. @Ashime
I wonder why you decided to stop working on the old server you had going in your other forum thread. I managed to build it and login. I managed to load in all basic maps and missions.
I visited Waldchen, Tringel, Etherain and even Aukra.
I am currently trying to get into the first mission and I am confident I will make it soon.

I actually only build this server to have some references but so much works there and the code is nicely organized.

So we're there any big barriers that you decided to stop?

Can you upload a version built in this way? What client are you using for this version?
 
Junior Spellweaver
Joined
Oct 20, 2013
Messages
193
Reaction score
56
Can you upload a version built in this way? What client are you using for this version?
CwaniX
If you want older source code, then I have plenty of it. I have 3 different versions of EP1 server files. They all dont work and have either no or incomplete source code.
 
Newbie Spellweaver
Joined
May 9, 2019
Messages
40
Reaction score
25
I have a lot of source code myself (a lot comes from your previous posts :rolleyes:), but I need some working files in which you can move between maps. I have a server running locally from old files, but I can't get waypoint and portals to work.
 
Junior Spellweaver
Joined
Oct 20, 2013
Messages
193
Reaction score
56
@CwaniX

How is the SimpleModulus encryption going? Any results?
Also, what did you do to your client that you posted on page 1?

I run your release server files and the client posted on page 1, but the client crashes - it won't proceed after the hack shield. I'm still struggling to get your source code to run. There is so many errors. FailedBeanCreation is one error that I am getting on all of them. On the AuthServer, its FailedBeanCreation for the DBProxyConnection.
 
Newbie Spellweaver
Joined
May 29, 2014
Messages
64
Reaction score
59
@CwaniX

How is the SimpleModulus encryption going? Any results?
Also, what did you do to your client that you posted on page 1?

I run your release server files and the client posted on page 1, but the client crashes - it won't proceed after the hack shield. I'm still struggling to get your source code to run. There is so many errors. FailedBeanCreation is one error that I am getting on all of them. On the AuthServer, its FailedBeanCreation for the DBProxyConnection.

did you use this for the hackshield?
http://forum.ragezone.com/f792/fix-hackshield-error-dnc-2014-a-1008684/#post8106342

i can currently move to all cities through the waypoint but its still at random positions. I will upload the server and client once i can move between those maps.

The 1007 Client has some diffrences to the Server but its pretty easy to remap those diffrences
 
Back
Top