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!

Black Desert Emulator

Status
Not open for further replies.
Newbie Spellweaver
Joined
Sep 18, 2006
Messages
17
Reaction score
0
Re: [Development] Black Desert Emulator

@InCube

How did you manage to read the functions on IDA? My client files are packed with some PE-packer (like Themida), and I have close to none experience on unpacking those. I do know how to read ASM after it is unpacked though, but I couldn't do any research because of the packer :(

Did you dump the process' memory after it was loaded? Or have you unpacked the executable?

I have the RU and KR clients, but I currently play only on RU server only because of reduced latency. I would love to work with you figuring out the encryption algorithms for both clients.
 
Last edited:
Divine Celestial
Joined
Feb 25, 2013
Messages
808
Reaction score
343
Re: [Development] Black Desert Emulator

@InCube

How did you manage to read the functions on IDA? My client files are packed with some PE-packer (like Themida), and I have close to none experience on unpacking those. I do know how to read ASM after it is unpacked though, but I couldn't do any research because of the packer :(

Did you dump the process' memory after it was loaded? Or have you unpacked the executable?

I have the RU and KR versions, but I currently play only on RU server only because of reduced latency. I would love to work with you figuring out the encryption algorithms for both clients.

I used memory dumps, unpacked dumps are completely useless. Russia don't even have this packed.

They are using "Nada" aka Themida.
All I did was:
1) Pack PETools with Themida and run as admin
2) Run blackdesert32.exe from shortcut (shortcut target "..." sometoken)
3) Qucikly F5 in PETools right click and make full dump
If you ain't quick enough, you ain't worthy.


// Bypassed XC3, but still crashing after "Pearl Abyss"... Debugging in progress :p
InCube - Black Desert Emulator - RaGEZONE Forums



After we did this, we discovered that XignCode3 will be in Korea, Japan and EU/NA client versions.
Russia has own anti-cheat called THOR which is completely useless. If you load it from the launcher, you can't dump, if you load from shortcut you can dump.

On friday new patch is incoming, before that we will have server packets analised.

If anyone doing research with ollydbg, YOU WILL NOT BE ABLE TO DO THAT WITH WINDOWS 10!! I suggest you dual-boot Windows 7 or VMWare.
 
Newbie Spellweaver
Joined
Sep 18, 2006
Messages
17
Reaction score
0
Re: [Development] Black Desert Emulator

Thank you very much for your info. Additional props for mentioning the ollydbg+Windows10 issue, as I was planning to upgrade my OS soon. I guess I'll keep a Win7 installation on a separate HDD for this research only, and keep Win10 for playing.

I was expecting XingCode3 to stay on the Asian clients only, that's why I was going for the RU. But out of curiosity, how do you know XC3 is going to be on the EU/NA servers?
 
Divine Celestial
Joined
Feb 25, 2013
Messages
808
Reaction score
343
Re: [Development] Black Desert Emulator

Rename xc track init security fail track where xc loads nop it jmp it and bypassed. There are atleast 4 spots to do this, mine isnt complete.
cybersick because in the client, we found the strings for that. Cipher never change on any server they run, only login method does


 
Experienced Elementalist
Joined
Feb 8, 2014
Messages
214
Reaction score
40
Re: [Development] Black Desert Emulator

Rename xc track init security fail track where xc loads nop it jmp it and bypassed. There are atleast 4 spots to do this, mine isnt complete.
@cybersick because in the client, we found the strings for that. Cipher never change on any server they run, only login method does

If you are making bypass for XC3 please , dont share it or even mind about sharing it. EU or even KR/JP players who dont know how to make bypass but know how to cheat game, they could easily use bypass to ruin game. Probably XC3 bypass is existing now but for the small group of ppl.
 
Divine Celestial
Joined
Feb 25, 2013
Messages
808
Reaction score
343
Re: [Development] Black Desert Emulator

AzumaR2
It's not intended to be shared though. We did it, because we needed the server decrypt function which dumps raw packet after decompilation. Still didn't find it, because the friend is in uni and I need to dual boot windows 7..

Also we found some packets xigncode3 related, will be hard..



Also, whom is reversing packets using the .bin files I made, i recommend you use 010 editor as it provides support for creating structures and other stuff.

I will make an update to sniffer when i get the server packets hooked, the update will be making each packet into individual file by its name.
 
Divine Celestial
Joined
Feb 25, 2013
Messages
808
Reaction score
343
Re: [Development] Black Desert Emulator

We might have gotten the function, but it gets stuck xD Tomorrow sniffer will be updated and login development will proceed


 
Divine Celestial
Joined
Feb 25, 2013
Messages
808
Reaction score
343
Re: [Development] Black Desert Emulator

Network tools updated for patch 696.
Packet's will begin research process tomorrow.
Login-Server will be updated on Sunday.
 
Divine Celestial
Joined
Feb 25, 2013
Messages
808
Reaction score
343
Re: [Development] Black Desert Emulator

Just eating the packets :))

InCube - Black Desert Emulator - RaGEZONE Forums



We found that server packets are sending RAW data. the identifier for server "encryption" means that the packet cannot be reused in the future.
 
Divine Celestial
Joined
Feb 25, 2013
Messages
808
Reaction score
343
Re: [Development] Black Desert Emulator

I have cleaned 95% of wow, mangos, trinitycore world server. So now, I will cleanup the remaining code and start coding the actual game server :)
 
Newbie Spellweaver
Joined
Jan 25, 2014
Messages
17
Reaction score
4
Re: [Development] Black Desert Emulator

You are the best, go on!
 
Divine Celestial
Joined
Feb 25, 2013
Messages
808
Reaction score
343
Re: [Development] Black Desert Emulator

Fool Proof. :))
Friend made a tool that can extract this data from the datasheet file :p
I don't know how I will setup the world database yet, ether load from file or use MySQL.. Need suggestions :p

InCube - Black Desert Emulator - RaGEZONE Forums



Also you can find every single ENUM if you extract all paz files and go to ui_data/script/include :D
 
Experienced Elementalist
Joined
Jul 4, 2007
Messages
219
Reaction score
21
Re: [Development] Black Desert Emulator

Nice @InCube !

You have done good progress so far! I'd say do whatever u say is easier in order to get the gameworld up and running as soon as possible.

How far have you come in the gameserver?

Once we're in gameworld you have done good progress and that is enough for its own section I think!

Keep up the good work m8. I r8 u 8/8
 
Newbie Spellweaver
Joined
Sep 18, 2006
Messages
17
Reaction score
0
Re: [Development] Black Desert Emulator

I'd keep this data out of the database engine, probably using them as files on the disk. I think that can help to avoid an overload on database engine (MySQL or whatever you are using) on the long run, maybe even reduce server load times if it's coded well.

Right now you can implement it in any fast way you prefer, as it won't make much difference on short term.
 
Moderator
Staff member
Moderator
Joined
Feb 22, 2008
Messages
2,404
Reaction score
723
Re: [Development] Black Desert Emulator

Overload? These settings (ip configurations, items, maps, etc) would be loaded just once: when the server starts. After you read all the item entries from the database and put them in some sort of array, for example, the need to access the database again is gone.

I would say: everything in the MySQL.
And I would say more, if you can create procedures or function to save you of writing sql-code in the source I thik the best choice for management in the future. Not to mention that if you find errors in the procedure or need to update it for whatever reason, you won't need to compile the server again.
let the mysql engine do the sql stuff for you :) just handle the output.

in the long term, but in the short term you can go for the fastest method (just keep it on the disk), thats I agree too.
 
Last edited:
Newbie Spellweaver
Joined
Sep 18, 2006
Messages
17
Reaction score
0
Re: [Development] Black Desert Emulator

Small settings and configs are fine, for sure. But for the whole item list, which seems to be rather big, it might eventually slow down the database engine even if you are loading everything on server startup only. I'm not saying it will slow down the game server, I'm saying the MySQL itself may get slower. It will all depend on how the database is set up on the machine. Maybe the query time will raise only 1 or 2ms, which would be unnoticeable, but there would be a slowdown.

Keeping them on files will eliminate that possibility, and IMHO the code implementation will take pretty much the same amount of time for both approaches, that's why I chose this. But again, you do what you prefer. :)

EDIT: forgot to mention, but the possibility of using procedures or views for loading stuff and reduce the times you need to compile the server is a positive side for using the database engine.
 
Divine Celestial
Joined
Feb 25, 2013
Messages
808
Reaction score
343
Re: [Development] Black Desert Emulator

The whole datasheet file, which will be used is 350 MB :) That's like 2x wow size
 

SGA

Newbie Spellweaver
Joined
May 1, 2009
Messages
74
Reaction score
5
Re: [Development] Black Desert Emulator

I believe it will be better if you load it from the files, I know with MySQL maybe it will load faster but at least in early development stage it will be easier with files.

Edit:
350 huh than loading from the files is the way to go that's my opinion but you know better.



Small settings and configs are fine, for sure. But for the whole item list, which seems to be rather big, it might eventually slow down the database engine even if you are loading everything on server startup only. I'm not saying it will slow down the game server, I'm saying the MySQL itself may get slower. It will all depend on how the database is set up on the machine. Maybe the query time will raise only 1 or 2ms, which would be unnoticeable, but there would be a slowdown.

Keeping them on files will eliminate that possibility, and IMHO the code implementation will take pretty much the same amount of time for both approaches, that's why I chose this. But again, you do what you prefer. :)

EDIT: forgot to mention, but the possibility of using procedures or views for loading stuff and reduce the times you need to compile the server is a positive side for using the database engine.

I can't understand how it will slow down the SQL, these things will load only in server startup so no inpact on game at all.
The only disadvantage which isn't anything important but, if you put these things on same database where account datas are loaded, it may take a little bit longer to make a backup but that's all. It won't make any performance degredation after the server startup.
 
Status
Not open for further replies.
Back
Top