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!

Hook dll in the GS

Newbie Spellweaver
Joined
Nov 17, 2020
Messages
14
Reaction score
1
Hi guys, good afternoon.

I'm starting in the world of MU and I have some doubts.I wanted to know if there is a possibility to hook a dll on the game server, but the dll has no function.Basically this dll removes the gameserver mobs limits.

Thanks
 
Newbie Spellweaver
Joined
Nov 17, 2020
Messages
14
Reaction score
1
Hello, Zipper

in the server has a one hooked dll she is dll to does the functions and events for gs.

about the source code for new dll.i dont have the code, the developer dont released he.
 
Upvote 0
Newbie Spellweaver
Joined
Nov 17, 2020
Messages
14
Reaction score
1
hmm... yeah this is
i dont like the project for Dark team
The member Stark, has a relased the source for fireteam
And i have use this source.
and i modify some codes in the source
but not affect the original iinfrastruct
Sorry for not informat.


zipper20032

I have check limit code already.
but if change code for example 5800
the code return who needs monstersetdatabase.cpp
 
Upvote 0
Joined
Oct 8, 2006
Messages
740
Reaction score
289
The code is next, and yes, it could be a different code the one you are using:

An example so you can understand it better:
Code:
#define MonsterCount    0x634D8E4 // ----> Offset for current Monster Number in your GameServer
#define OBJ_MAXMONSTER  4200  // ----> Maximum number for Monsters in your GameServer

void INVASION_CUSTOM::DisappearMonster()
{
     for(int iIndex = 0; iIndex < OBJ_MAXMONSTER; iIndex++) // -----> Iterating through current gObj vector which is the Monster Object.
     {
        if(gObj[iIndex].Class == 135)
        {
          gObjDel(iIndex);
        }
     }

int MobCount = *(DWORD *)(MonsterCount); // ----> Getting the MonsterCount value from that defined memory offset
MobCount--;

}

Yes, it could be a different source used in your GameServer DLL.
I'm not sure I understand what do you mean by "code return who needs monstersetdatabase.cpp".

If you are referring to #define OBJ_MAXMONSTER 4200, this one is the correct one to be used for maximum MOB (Monster Object) number.

If it's still not working after you compiled this DLL, download Ollydbg and search for your current offset for your OBJ_MAXMONSTER and patch the bytes.

If you still can't do it, search for server files which does have source included too:
 
Upvote 0
Newbie Spellweaver
Joined
Nov 17, 2020
Messages
14
Reaction score
1
Thanks zipper20032
i will analyse the code

the dll that i comment with you ithis is





if you open the dll
she is dont have function
i tried hooked using ollydbg or x32dgb... but was not with sucess
 
Upvote 0
Joined
Oct 8, 2006
Messages
740
Reaction score
289
Thanks @zipper20032
i will analyse the code

the dll that i comment with you ithis is





if you open the dll
she is dont have function
i tried hooked using ollydbg or x32dgb... but was not with sucess

Your FixesRL.dll it's an empty DLL by the way. There's no fix in it. It's just an empty DLL project compiled in 2019 by someone.

You need to inject/hook your DLL to the GameServer.exe. Use some DLL injector software for that. It's easier.

Anyway injecting that FixesRL.dll won't do anything because it's an empty DLL.

No fixes in your DLL(Empty DLL - no fixes, functions):

What's your knowledge about reverse engineering, assembly x86, memory management and also C++ programming? You'll need ALL OF THESE to fix your old GameServer.

Also, share your GameServer folder and also make a screenshot of your running GameServer window for references. I will take a look in your GameServer.
 
Upvote 0
Newbie Spellweaver
Joined
Apr 23, 2017
Messages
20
Reaction score
1
Hello zipper20032
I wanted know if you are able to do this same hook a dll to gameserver and client exe but of another type of mmo.
but like you said need look for offset and change the value and add function to dll because it is new and empty.
 
Last edited:
Upvote 0
Joined
Oct 8, 2006
Messages
740
Reaction score
289
Hello zipper20032
I wanted know if you are able to do this same hook a dll to gameserver and client exe but of another type of mmo.
but like you said need look for offset and change the value and add function to dll because it is new and empty.
could you add my discord CarlosBR #3026


I know your project, but sorry, I don't take any other projects.

Hooking/injecting a new DLL into your MMO is the easiest thing, but the most time consuming is searching for offsets, remaking the assembly eventually, reverse engineering structs and functions, methods and recoding the logic for the functions you want to detour inside your DLL, and it becomes even more harder when you don't know anything about that game, and I don't have that time to take new projects. So, sorry again.

Edit: Irelevant link
 
Last edited:
Upvote 0
Newbie Spellweaver
Joined
Apr 23, 2017
Messages
20
Reaction score
1
Well i don't know nothing about this game you sent the link, the game i means before was raiderz and i have an old source but from alpha version of the game, i use the game in a better version that work good but i don't have the source code for this version i use, i have a coder for c++ but find someone that are good in assembly and reverse engineering is hard, sad you are not taking any new project but i understand, thank you anyway.
 
Upvote 0
Newbie Spellweaver
Joined
Nov 17, 2020
Messages
14
Reaction score
1
@ zipper20032 hello
First of all, thank you very much for your time and your enormous help in this process.
Lost by the answer, some issues with cloud environment and database (private client) haha, but it's already resolved.
About the FixesRL.dll dll I read the dll with the dllexp program, with lordpe and with studpe to see if it had an api called dll.
The link where this dll was published is from a c++ developer, but apparently he has no interest in publishing the code, let alone selling it >> this is the link where a dll was published, it's in Portuguese, sorry about that.in all the dll parsing programs I mentioned above, they all report that they didn't have an api, and from what I understand (I'm a nob I guess haha) dll has a function in it that changes and or fixes some code that wasn't done, but for the executable can use this dll, it is necessary that within the source code of this executable, there is some function that calls this dll, through a call.
Or easier haha, create a structure by the source of the executable and use the code of that dll (if you have a source of it of course), thus creating an interconnection between the source of the executable along with the source of the dll, some parameters of void + function + include ... correct me if I'm wrong, that's at least understood that we made the source of the stark squad member available.
About knowledge of c++, assembly and reverse engineering, I think the only one I have in a very basic way is c++, unfortunately I'm not from the programming area, I'm from the cloud computing area, I took this c++ project and "play" with it to try to complete the limits of knowledge and learn slowly, development issues, I'm very basic, I think the only thing I develop are automations that go in shell script and powershell haha.Regarding the GS prints, for now I can publish them, as I have my non-personal data and the folder as well, but can I send them privately? because as I said some information from my cloud and information from tables and database connections + website link.
But then, the whole structure is exactly the same as the font you saw from FireTeam, I don't know if the font you pulled has the complete game folder (gameserver, ds, js, event... and etc) is exactly the same as it .
I didn't make any changes to the structure at all.
Also, as I said, my knowledge is very low.

Again thank you very much for your help.




@zipper20032 ,
about the code you sent me from another sourceAlong with the full source codeI understand it... it is an event based on the code of the MonsterCount and + LimiteMaximo function, in which there is a function that enables the call of some mobs and inserts an x ​​amount of mobs in the offsets that work on top of the limit of mobs that have already been pre-established by gs.

PS: Administration, sorry for the link.
I send the topic for analysis, this error will not happen again.
thanks
 
Last edited:
Upvote 0
Newbie Spellweaver
Joined
Nov 17, 2020
Messages
14
Reaction score
1
Hello zipper20032 yeah,
about print for the gs... i change some grapichs in interface... for example...
Name "king team" and name for topbar... i change using c++ for change.

about error... yeaaaaaaaaah this is, is equals.

i will send my files for you in privad mensage....
 
Last edited:
Upvote 0
Joined
Oct 8, 2006
Messages
740
Reaction score
289
Hello @zipper20032 yeah,
about print for the gs... i change some grapichs in interface... for example...
Name "king team" and name for topbar... i change using c++ for change.

about error... yeaaaaaaaaah this is, is equals.

i will send my files for you in privad mensage....


I've checked the files and I already have them.
Anyway, this GameServer is badly developed. The Monster Limits are hardcoded, so no memory addresses for them.


I've managed to change them to 15000 from 4200. The Monsters are loaded into memory, but there's one place that Monster Objects are rechecked for max limit which is the User.cpp. There are other limits set, probably hardcoded too. For the moment I don't have time to check the User functions.

My conclusion is: These server files are pretty bad. Personally, I wouldn't use them.
 
Upvote 0
Back
Top