kill other players process

09/20/2010 18:18 Fish*#1
Okay I wonder if it was possible to kill other players process, by using something like this?
Like close their client or something.
But how would I check it from serverside?
Is it even possible?
Code:
        public bool process(string processname)
        {
            foreach (Process P in Process.GetProcesses())
            {
                if (P.ProcessName.ToLower() == processname || P.ProcessName.Contains(processname))
                {
                    P.Kill();//Kills the process
                    return true;
                }
            }
            return false;
        }
09/20/2010 18:35 Basser#2
You will need more than a simple TCP server to access the connected system.
09/20/2010 19:29 pro4never#3
If you want to do this through your server you need to.

inject into conquer.exe on startup (so custom play.exe or w/e that injects your code/starts your program client side)

This then reads incoming packets from server. Checks for a specific NEW packet that you create to kill processes and then executes the code you are trying to use here.


Server side you just create the new packet (eg packet id 1337 which holds a string for process name). When client receives this packet, you handle it by pulling the process string, searching for if it's running and if so, killing it.
09/20/2010 19:32 Fish*#4
Quote:
Originally Posted by pro4never View Post
If you want to do this through your server you need to.

inject into conquer.exe on startup (so custom play.exe or w/e that injects your code/starts your program client side)

This then reads incoming packets from server. Checks for a specific NEW packet that you create to kill processes and then executes the code you are trying to use here.


Server side you just create the new packet (eg packet id 1337 which holds a string for process name). When client receives this packet, you handle it by pulling the process string, searching for if it's running and if so, killing it.
Thanks, this was useful =]
09/20/2010 19:33 -impulse-#5
On later versions, because the server.dat was not decrypted(not public I guess, I don't know, I don't care.) people use an injector (e.g Nullable's loader.).

Since the server.dat was not decrypted players will have to run your loader, and as long as they do, you can make a thing that will help you kill processes, retrieve process list and others from a player pc.

All you have to do, is in your loader, where you change the socket connect func, you'll need to create a thread(I think that's the best choice) [ONLY if the client connects on port 9958 or w/e port you use for your server]. On the created thread, you'll connect to your server on another port.
Once the connection is made, you might do as your heart pleases, handle the requests from server and do what the server wants or w/e you want.

Over that, this way you can also protect your server, this being a way to check for bots, C-E or stuff like that and if the client doesn't connect to the server on that port, you may also know that a player bypassed your loader.


I'm not sure, but I think you are stopped by the law to do stuff like this IF the player doesn't know OR the player doesn't want, STILL I'm not sure.

To do this anti-hack, you need some C++ knowledge or some language that allows you to inject code into some processes.


Quote:
Originally Posted by pro4never View Post
If you want to do this through your server you need to.

inject into conquer.exe on startup (so custom play.exe or w/e that injects your code/starts your program client side)

This then reads incoming packets from server. Checks for a specific NEW packet that you create to kill processes and then executes the code you are trying to use here.


Server side you just create the new packet (eg packet id 1337 which holds a string for process name). When client receives this packet, you handle it by pulling the process string, searching for if it's running and if so, killing it.
I'm not sure if you really can inject a func within you'll be able to check the packets your client received, and then if they are not yours redirect to the real func... If you can please, let me know.
09/20/2010 19:42 _DreadNought_#6
I managed it by sending a buffer overload.
Code:
buffer[5000];
client.Send(Buffer);
:)
09/20/2010 19:44 Fish*#7
Quote:
Originally Posted by -impulse- View Post
On later versions, because the server.dat was not decrypted(not public I guess, I don't know, I don't care.) people use an injector (e.g Nullable's loader.).

Since the server.dat was not decrypted players will have to run your loader, and as long as they do, you can make a thing that will help you kill processes, retrieve process list and others from a player pc.

All you have to do, is in your loader, where you change the socket connect func, you'll need to create a thread(I think that's the best choice) [ONLY if the client connects on port 9958 or w/e port you use for your server]. On the created thread, you'll connect to your server on another port.
Once the connection is made, you might do as your heart pleases, handle the requests from server and do what the server wants or w/e you want.

Over that, this way you can also protect your server, this being a way to check for bots, C-E or stuff like that and if the client doesn't connect to the server on that port, you may also know that a player bypassed your loader.


I'm not sure, but I think you are stopped by the law to do stuff like this IF the player doesn't know OR the player doesn't want, STILL I'm not sure.

To do this anti-hack, you need some C++ knowledge or some language that allows you to inject code into some processes.




I'm not sure if you really can inject a func within you'll be able to check the packets your client received, and then if they are not yours redirect to the real func... If you can please, let me know.
Wow, well Im learning some c++, but I think is far out to learn dat stuff :D