Aleck79
August 26th, 2006, 16:45
I've got a personal project going on, it is to patch a server client for a game that is no longer in development and is pretty much abandoneware. Anyway, I don't have the source code for the server client, so I have been working my way at patching it to do what I need.
Specifically, I have had no problem locating and patching to just log what is occuring in the server. Pretty much as the server client still retains control, or more precisely, the EIP returns to the precise same place as it was before I patched it. I have no problems their, but there is a limit to what I can actually do.
I want to be able to add functionality so that I can perform a server command from the client without having to go into the game a issue the command in the chat. I am just totally lost in figuring out what is called to do it. It seems to be doing 50 different calls to get everything done, way more than seems like would be needed.
My understanding of how programming works tells me that you would have something like this for example:
Now what I was thinking about was finding that first call, which calls everything else. That way I would only have to patch to call that one location in code. Now, Is this type of thinking the way to go, or am I just totally wrong about the way I am thinking. Any help is appreciated.
Specifically, I have had no problem locating and patching to just log what is occuring in the server. Pretty much as the server client still retains control, or more precisely, the EIP returns to the precise same place as it was before I patched it. I have no problems their, but there is a limit to what I can actually do.
I want to be able to add functionality so that I can perform a server command from the client without having to go into the game a issue the command in the chat. I am just totally lost in figuring out what is called to do it. It seems to be doing 50 different calls to get everything done, way more than seems like would be needed.
My understanding of how programming works tells me that you would have something like this for example:
Code:
-push all the needed data it uses
-program calls address 'x'
-program calls address 'y'
-program calls address 'z'
-program calls address ...
-program calls address ...
-program calls address ...
-program calls address ...
-program calls address ...
-program calls address ...
-program calls address ...
Now what I was thinking about was finding that first call, which calls everything else. That way I would only have to patch to call that one location in code. Now, Is this type of thinking the way to go, or am I just totally wrong about the way I am thinking. Any help is appreciated.