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
Printable View
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
What server files are you using?
Why don't you search for a repack with source codes included?
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.
What server files are you using and what version?
DarkPlugin.dll
Version 97d+99i
GS = 0.96.40
So you are using Dark Team 97D+99i repack?
@mateus2255 I found this in 5 minute of searching on Google.
Attachment 171473
I think it's not Dark, it's Fire Team.
It's source code for DarkPlugin.dll and client from 2016.
https://ibb.co/Q8pRnqn
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.
- - - Updated - - -
@zipper20032
I have check limit code already.
but if change code for example 5800
the code return who needs monstersetdatabase.cpp
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:
Yes, it could be a different source used in your GameServer DLL.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--;
}
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:
https://mega.nz/file/3lhwlBgA#QMrXqV...z8HWXqlHUzNZ08
Hello, @zipper20032
i will check both source...
but you can send me the password from source uploaded in mega ?
Thanks @zipper20032
i will analyse the code
the dll that i comment with you ithis is
https://mega.nz/file/0k0TlJAT#g2Vpc_...4rJuXQ38TB2DnM
- - - Updated - - -
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):
https://ibb.co/qpRP0dG
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.
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.
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
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.
Right, my mistake, lol. I remembered wrongly that you messaged me about that game. Someone else with BR in their username messaged me about that game tho. Good luck tho.
@ 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.
- - - Updated - - -
@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
@mateus2255 This is how your GameServer looks?
https://ibb.co/pQyBCP2
And your error is this one?
https://ibb.co/rxnpQzH
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.
https://ibb.co/VpnCSmY
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.
@zipper20032
Thanks again for your time and your analysis.
I understand about the code by the way absolutely everything is obfuscated in this code :(Currently it is very difficult to find a gs code next to the main code.I think I'll have to appeal to buy the webzen code if they want to sell of course, otherwise I'll have to settle for it.
I love this version and it is a version that has a story for me.
I noticed that you are very busy just because of your way of talking too, even because you mentioned several times in some posts that you are really busy.
If one day you have it available, for any project if I have the honor of working with you, I would be very grateful and of course you would be paid too hahaha.Well, you've been on this forum for years, apparently.
Right, sure, I can do a few custom things, of course, I hope I will have time for that.
Yeah, I'm a member since 2006, when I've started learning about installing/set up emulators for WoW and Lineage 2 C3.
Anyway, yeah, the best thing to have is the GameServer's source code, not a plugin which is hooked into the GameServer. It's pretty much counter productive to do such reverse engineering things. There are GameServer source codes available, but who knows where.
@zipper20032 I understood.
Yes, I will follow with your recommendations regarding the original codeLet's see if it works.
Other versions don't interest me, I find them very "ugly" haha.
Send you a message in private, when you have time please read, if there is a clear possibility.
@zipper20032
I think I found the gs codeWith these functions we were talking aboutMonsterSetBase.cpp and User.cpp
Probably not... it is absolutely certain that these are the original codes
So much so that even the customer came...
But the 2002 client I believe has to do with the version.
Now I have to see if I can join these codes in the new structure.
You can share the GS you found. I will test it.
Every GameServer is having MonsterSetBase.cpp and User.cpp, otherwise it wouldn't work.
@zipper20032
Sorry for delay...
I send for you in pv...
I think these codes can be adaptable for this fireteam gs.
For example monstersetdatabase and user, Because in the dll code of this fireteam gs there is no...
That is, the codes are not being pulled by this dll, but by the original gs.