Hi to all, I want to share with you the following tutorial of like adding your own .ini to anyone GameServer, I Make this tutorial in another forum and today I share it with you.

I hope is easy to them to understand... consider that this can apply it to any GameServer.

First that we must have, they are offset of each function that we wish to include in our .ini file. It will let next small offset research to them of GS 1.00.16 to use like example.

Monster ELF ORB's:
Monster -----|------ Offset

**********************
Gobling -------|------4B368C
- -
Stone -------|------4B369B
- -
Assasin -------|------4B36AA
- -
Elite Yetti -----|-----4B36B9
- -
Dark Knigth ----|----4B36C8
- -
Bary-----------|-----4B3248
- -
Soldier --------|-----4B327C

(Note: The Name of "Monster" Represent the original Monster of the ORB Summon Elfs.)

Monster of Transformation Rings:

Monster ---------|-------- Offset
***************************
Dragon--------|-------- 4B472E
- -
Giant-------------|-------- 4B4737
- -
Skeleton----------|-------- 4B4740
- -
Poison------------|-------- 4B4749
- -
Thunder Linch-----|-------- 4B4752
- -
Death Cown-------|-------- 4B497A

(Nota: The Name of the "Monster" Represent the original Monster of the rings.)

Minimum Memmbers for Guild Alliance

OFFSET : 45537D

Chaos Castle Minimum member entrance

OFFSET : 53BC33

ChaosMachine Items +10

OFFSET : 49136F

ChaosMachine Items +11

OFFSET : 49139A

ChaosMachine Items +12

OFFSET : 4913C5

ChaosMachine Items +13

OFFSET : 4913F0

Price: Jewel of Chaos

OFFSET : 508489

% Chaos Drops

OFFSET : 405E7E

Price: Jewel of Life

OFFSET : 5084AB

% Lifes Drops

OFFSET : 405EAD

Price: Jewel of Creations

OFFSET : 5084CC

% Creations Drops

OFFSET : 405EDC

Price: Jewel of Bless

OFFSET : 508467

% Bless Drops

OFFSET : 405E20

Price: Jewel of Soul

OFFSET : 508446

% Soul Drops

OFFSET : 405E4F

~ % Books of Wizard Drops

OFFSET : 405F29

~ % Exellent Items Drops

OFFSET : 41A493

Ok, with that was enough to explain to them briefly

Having you already them Offset of the functions that wish to add on your .ini we has left to begin to work in it.

In order to work in this you need the OllyDBG:

DOWNLOAD OLLYDBG

Once downloaded the OllyDBG, we'll load our GameServer.exe in Olly:



Now we needed to find free space on our GS to be able to inject our .ini



Ok, now that already we have offset and the free space on the GameServer only we must inject ours code to add our own .ini

This is of the following Form:


PHP Code:
PUSH XXXXX ; ASCII "Custom.ini"
MOV ECX,AC57B58
CALL 402F31
PUSH EAX
PUSH 0
PUSH YYYYY
; |Key = "Assasin"
PUSH ZZZZZ ; |Section =" CommonOptions"
CALL DWORD PTR DS:[C65CF08] ; GetPrivateProfileIntA
MOV DWORD PTR DS
:[4B36AA],EAX

Explanation of exposed Editable Code:

PUSH XXXXX: XXXXX It represents a Offset with Free space where we wrote the Name of ours ini (In the example, Custom.ini)

PUSH YYYYY: YYYYY it represents a Offset with free space where we wrote the name of the function that we wished to add to ours .ini ( in the example I Add Assasin (Orb Elf))

MOV DWORD PTR DS:[4B36AA],EAX :
4B36AA = this is the offset to which we will move the value that we assign in ours INI, Remember that in my example we're adding the option to change the Monster "Assasin" of the Orb of the Elfs,therefore the offset that this position now is the one of the Assasin Orb. (Review the offset research)

Ready you already have added your first option to your own .ini file, Now you will have to repeat that step so many times As options want to add.

When you finish adding all the options that you want, you'll need to add 2 lines more to the code:


Code:
PUSH 69E598 ; ASCII "commonserver.cfg"JMP 521AD9
Your code when finalizing would have to be of the following way:


PHP Code:
PUSH XXXXX ; ASCII "Custom.ini"
MOV ECX,AC57B58
CALL 402F31
PUSH EAX
PUSH 0
PUSH YYYYY
; |Key = "Assasin"
PUSH ZZZZZ ; |Section =" CommonOptions"
CALL DWORD PTR DS:[C65CF08] ; GetPrivateProfileIntA
MOV DWORD PTR DS
:[4B36AA],EAX
PUSH 69E598
; ASCII "commonserver.cfg"
JMP 521AD9

NOTE: Remember that the last 2 lines must add them AFTER adding all the options that you want !!!

Pic Example:



Ok, Now single we must save the changes. (Right Click --> Copy to Executable --> All Modifications (Click in Copy ALL) --> Soon They give right Click on the screen that will appear to them and click in Save File.

Once saved the changes, We pressed keys CTRL+F2 and we went to the Offset where we added our .INI there we'll see as left has our work



Soon we created a File ini that contains the following thing:

Code:
[CommonOptions]Assasin = 14 ;Nº of Monster to Assasin ORB
Ok, of that way we managed to add our own INI to a GameServer and thus to be able to form several options of a simple form.

Remember that you can add all the options that you want !

To those who wish to learn a little but on like make their own works, I recommend to them they read the exellent release of FeN$x:
[Released] Hook your own DLL

Greetings to: Deathway and FeN$x 2 of the best Coder !