I am asking if someone can help/teach me about how to edit them properly
or give me some links to help me
i am going to be editing all the exe's in server and client
all help is appreciated
Ty in advance
I am asking if someone can help/teach me about how to edit them properly
or give me some links to help me
i am going to be editing all the exe's in server and client
all help is appreciated
Ty in advance
Good luck in finding help zombe and bottomy might be able to give u some links.
Somethings you can do:
1) Learn assembly (x86 32 bit)
2) Learn how to use reversing tools, such as debuggers/disassemblers (IDA Pro, OllyDbg, etc.). You won't need to get a kernel level debugger, an application level (ring3) one is enough for what you want to do.
3) Learn another programming language, if you wish. Though you will need to research before you go ahead and learn the language, to see if it's even possible to link it up with the executable. Some languages I think could be used are C/C++/Obj-C/Obj-C++, delphi, maybe C#/VB (probably without .net?), not sure about java since it runs in the JVM. Anyways just a matter of searching to see if it could be implemented easily, otherwise you could still just rely on assembly. Just think of it as finding the right tool for the job.
4) Learn the API's dekaron uses, so things like becoming familiar with Windows API, DirectX, etc.
It's pretty much the more you learn the easier it will be for you to implement certain features. Even if you learn things that aren't to do with the features you wish to implement, the knowledge can still help you either in the reversing stage, or maybe help you think about a different/better way of implementing such a feature.
I have the a6 dekaron.exe i'm pretty sure it is unpacked because it has alot of the codes just understanding the stuff is hard for me but this is some of what it has for aloken
i don't know how to actually add this class in but is someone wants to work with me that knows we could add a hell of alot new things but bottomy ty for the guide you made on how to increase the size of the exe for new data if there is anything else you could help me understand on how to link this stuff into it would be wonderful.
i'm wanting basically a crash course in this stuff
i don't know how to actually add this class in but is someone wants to work with me that knows we could add a hell of alot new things but bottomy ty for the guide you made on how to increase the size of the exe for new data if there is anything else you could help me understand on how to link this stuff into it would be wonderful.
i'm wanting basically a crash course in this stuff
Although it's hard to really say what the point of this function is without debugging it. You can still break it down and get a general idea of what it's doing. Like here's just examining the first part
NOTE: Whenever I say pushing a "" string to the stack I mean it's pushing the address to the string, not the actual strings characters.
Code:
0048C690 /$ 81EC 00020000 SUB ESP,200 ;Setting up the stack
0048C696 |. 56 PUSH ESI ;Saving a value
0048C697 |. 68 A4DDA400 PUSH dekaron.00A4DDA4 ; ASCII "SWD" Pushing the string "SWD" to the stack
0048C69C |. 8D4424 08 LEA EAX,DWORD PTR SS:[ESP+8] ;Loading a pointer to the stack, this would be a variable passed into the function
0048C6A0 |. 68 40DBA400 PUSH dekaron.00A4DB40 ; ASCII "%s" Pushing the string "%s" to the stack, %s used when wanting to reference a string of characters
0048C6A5 |. 50 PUSH EAX ;Pushes eax to the stack, so the pointer to the stack that was loaded into eax
0048C6A6 |. E8 8562FCFF CALL dekaron.00452930 ;Calls some function passing 3 arguments
0048C6AB |. 8BB424 1402000>MOV ESI,DWORD PTR SS:[ESP+214] ;Moves dword value at that point on the stack into esi
0048C6B2 |. 83C4 0C ADD ESP,0C ;Adds 12 onto esp
0048C6B5 |. 8D4C24 04 LEA ECX,DWORD PTR SS:[ESP+4] ;Loads a pointer to the stack into ecx, probably was passed into this function too since it's close to the stack but not sure
0048C6B9 |. 51 PUSH ECX ;Pushes that pointer to the stack
0048C6BA |. 8BCE MOV ECX,ESI ;Moves esi into ecx
0048C6BC |. E8 4F6DFCFF CALL dekaron.00453410 ;Calls another function passing 1 argument, though
0048C6C1 |. 84C0 TEST AL,AL ;Tests al with al
0048C6C3 |. 0F85 6C010000 JNZ dekaron.0048C835 ;Jumps if not zero, so will be taken only if al != 0
0048C835 |> 32C0 XOR AL,AL ;Jumps to here, and xor's al with al, so just make al = 0
0048C837 |. 5E POP ESI ;Restoring that value
0048C838 |. 81C4 00020000 ADD ESP,200 ;Fixing the stack back
0048C83E \. C2 0400 RETN 4 ;return
Here's part of it roughly in C
Code:
char Func(void *Unknown, char *String)
{
((void(*)(char *, char *, char *))0x00452930)(String, "%s", "SWD");
//Don't really have a clue about the next part
/*asm("movl 214(%esp),%esi\n"
"\taddl $12,%esp\n"
"\tleal 4(%esp),%ecx\n"
"\tpushl %ecx\n"
"\tmovl %esi,%ecx\n");*/
int OtherUnknown;
asm("movl 214(%%esp),%%esi" : "=S" (OtherUnknown));
//I'm guessing ecx is going to be used by the function so using 'thiscall' moves first argument into ecx
if (!((char __attribute__ ((thiscall))(*)(int, void *))0x00453410)(OtherUnknown, Unknown))
{
((void(*)(char *, char *, char *))0x00452930)(String, "%s", "ARC");
/*asm("addl $12,%esp\n"
"\tleal 4(%esp),%eax\n"
"\tpushl %eax\n"
"\tmovl %esi,%ecx\n");*/
if (((char __attribute__ ((thiscall))(*)(int, void *))0x00453410)(OtherUnknown, Unknown))
{
return 1;
}
((void(*)(char *, char *, char *))0x00452930)(String, "%s", "SOR");
/*asm("addl $12,%esp\n"
"\tleal 4(%esp),%edx\n"
"\tpushl %edx\n"
"\tmovl %esi,%ecx\n");*/
if (((char __attribute__ ((thiscall))(*)(int, void *))0x00453410)(OtherUnknown, Unknown))
{
return 2;
}
//etc.
}
else
{
return 0;
}
}
Anyways just from the way it looks, I think what's happening is it's comparing some string with each classes title, to find out what class it belong to and returning which one it belongs to.
SWD (AK) returns 0
ARC (Hunt) returns 1
SOR (Mage) returns 2
SUM (Sum) returns 3
SEG (Seg) returns 4
WAR (Bagi) returns 5
ALO (Alo) returns 6
So instead of just returning char type, it's probably an enum.
So if this function is in the current exe pservers use, then your probably just missing the check for ALO also it wouldn't know the return type. So you would add the code to check for ALO, and then the function that calls this function, make sure it handles it's return type properly. Also if you wanted you could rewrite the entire function, because it's written fairly poorly (not terrible but could be written much better), it's as if it's crying out desperately to be optimized xD.
If you really want to understand ASM and other valuable skills I suggest you read through what Zombe linked. Those were the first tutorials I base my knowledge on .
I have to warn you though, if you are using any 64-bit platform, ollydbg 1.10 will not work, and you'll have to use ollydbg 2.00, which is very buggy and will have a lot of problems when doing even the simplest tasks, like pausing a process...
That's why I use olly 1.10 in wmware XD
I have to warn you though, if you are using any 64-bit platform, ollydbg 1.10 will not work, and you'll have to use ollydbg 2.00, which is very buggy and will have a lot of problems when doing even the simplest tasks, like pausing a process...
That's why I use olly 1.10 in wmware XD
don't worry i still use windows xp 32bit but is there any way you could narrow my study search on those tuts? or anyway you could help me out yourself?
Fling mount data base files and sever files 03/07/2010 - EO PServer Hosting - 15 Replies well i think i have found the flying mounts so if u guys want to have a look here is the link for u to download the database files and all the other stuff u need for it
Free File Hosting Made Simple - MediaFire
Cerdits to 4fcom
Good luck