What Language?

07/31/2010 17:00 [GM]Zan#1
What language is Dekaron Coded in?

then i mean.
When i making my own dekaron server what language do i write it on.
(Computer Language)
07/31/2010 19:28 [DEV]Harmony#2
It will be English if you will use english files unless u use dekaron kr files it will be on korean.
07/31/2010 20:20 [GM]Zan#3
i mean what programming language.
07/31/2010 20:38 gedimazs#4
you don't need to know any programming language to open dekaron server :) except you want to modify dekaronserver.exe or dekaron.exe to load new stuff like aloken, mavrics and etc. and btw you must know how to create new dlls too :) Good luck
07/31/2010 22:44 MMOPerfectionİ#5
If you want to add aloken into the exe you'll need to know the
ASM language.
08/01/2010 19:53 bottomy#6
Dekaron was coded in C++, but like Xplicit said you'll need to know asm if you want to implement new features. Even if you aren't going to need to code any assembly, you'll still need to know it so you can reverse their executables and workout how you're going to implement such things.

@gedimazs You don't 'need' to know how to create DLL's to implement new features to the game, it's only one of the ways of implementing those features. But yes it's generally the quicker way to implement features.
08/01/2010 21:43 Zombe#7
If you'd like to get into serious reversing (Like I'm trying to now :)), heres what you do:

1. You learn C++. Kind of good tutorial (At least I didn't find a better one):
[Only registered and activated users can see links. Click Here To Register...]

2. You learn ASM. Heres the best ASM utorial you'll ever find, I finished it ~3 years ago, and I still haven't seen a better, more in-depth tutorial, ever. Here's the link:
[Only registered and activated users can see links. Click Here To Register...]

3. Get a decompiling program or a few. Here's two c++ decompilers I'd suggest:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

And here's a good article about decompiling:
[Only registered and activated users can see links. Click Here To Register...]


After that, you wont need to make a dll, you will be able to modify the exe itself using it's source code, since you'll have a pretty good (well, good enough to modify it) source code of the exe.

But if you decide to take upon the mission of learning C++ and ASM, heres a warning... Well, I'll put it this way: I've learned PHP in 2-3 days. I've been learning C++ and ASM for 3 years, and still learning.
Soo, you'll have to be pretty dedicated to that... Dedicated enough to not get laid with your girlfriend for a year... Although that's a different story, and it wasn't my fault. But you get the idea.

Good luck, future adventurers! >=O



Ok, I just realized this is completely off-topic. Its coded in C++ so that you'd know.
08/02/2010 00:08 bottomy#8
Quote:
Originally Posted by Zombe View Post
3. Get a decompiling program or a few. Here's two c++ decompilers I'd suggest:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

Just a note though to any who are thinking about decompiling dekaron's executable(s). It's unlikely that it will even be able to decompile it for starters since because of just the size of the executable. But even if it does decompile it there may be problems like, un-meaningful variable names/function names, depending on what optimizations were used might affect the actual output, if any functions were declared in another section than the .text segment it may not be shown as a function and it's code, if text or variables info is stored within the .text segment it might get translated into C/C++ code, if there's any encryption of obfuscation used that will cause problems, then one main problem is data types (specifically distinguishing between what data type they were declared as).

For instance say you have the following assembly:
AT&T

INTEL


So see you don't know what the pointer was actually declared as, like it could have been the following:
Code:
char *s = variable;
int *i = (int*)variable;

*s = 0;
*i = 0;
*(int*)&s = 0;
So the decompiler may declare the pointers as type void *. But it's not just variables that are declared as pointers where the problem lies.


AT&T

INTEL


So here we have exactly the same code as one another, only different points on the stack. But here's what the actual C/C++ code might look like.
Code:
int a = 2;
((int*)a)[1] = 1;
(&a)[5] = 4;

int *c = (int*)2;
*(c + 1) = 1;
(&c)[5] = (int*)4;
So what the decompiler might do is just declare them both as int, and cast them like the variable a. This can create hard to understand code, so all in all decompilers aren't going to give you that much more information then if you were to just read the disassembled code.