🔒 Locked
Help Me Hack
Advertisement
Original Post
First, I will say that I do not have any intention of doing anything malicious. However, I do relize it's a sensitive topic and would understand if thise thread is deleted/closed/etc.
Getting on with it...
Ok, in the game Homeworld 2 (a 3D futuristic space RPG) the devs came up with the awesome (satire there
) idea of allowing every player to kick ever other player. WEEE!!! As you can guess, when you are winning people, it's not uncommon to simply be kicked by the losing player.
It's not really as bad as it sounds, infact you can only kick people when they are lagging. However, whenever it's at that awesome battle that will decide the game, there is always enough units and commands flying around that everyone lags. So, you get kicked. On top of this I could choke my connection by starting a download or something and boot all my enemies.
To further your agrivation. It dosn't say "You have been kicked by lamer SoAndSo," it doesn't even say "You have been kicked by SoAndSo." It says, "You have been kicked." Ohh, and there is a OK button you can click. You can imagine the effect this might have on you after putting 2 or more hours into a game and then seeing this screen come up and your gone in a split second.
I have seen many hacks (I call them that anyways) that actually aid the game. The best example is "Defence Turret" for Tribes 2. I'm don't know a whole lot about it, but it appear to hack/remove a few of the "features" in the game that are exploitable and are the causes of many cheating scripts floating around. They also run checks on other things going on, and communicate every so often with the server; does some type of CRC or something. Now, if the server sees you doing all these things that are causing you to have different CRC values, then it boots you after so many fails. If you play clean, your good to go; if you cheat, you get a nice boot in your pants.
So what I want to do is:
I want somehow remove the clients ability to acknowledge the kick command that has been sent to it. I'm not sure how to do this, but I have a few guesses. My best guess would be to have a program keep a eye on the packets the game is communicating with and delete any inbound packets with a kick command in them. Basicly, you can't be kicked. The only posible downside I can see is that this may throw the game out of sync and basicly end the game for everyone; but hopefully not. Now, if your are truely lagging to the extream, or even disconnected, make the program let it pass (if your able to determin your own latency).
I'm not sure how the system works. Sience you can kick someone who has actually completely disconnected, I would guess the kicking client's PC says "I'm kicking SoAndSo" and then all the other cliets drop there connection with him. Thus, if my hacked game refused to drop him, the game goes out of sync and game is over. As I said hopefully there is a way to avoid this though.
Now I'm not saying "Someone make this for me then mail it to me." I simply want some tips to help me get started. I can code OK, etc. What I don't have is any "hacking skills." Should I start by inspecting the packets the game uses and see what I can find out? How would I do this?
Once again, sorry if this isn't appropriate.
[edited by - Cyber-Ace on March 10, 2004 2:21:51 PM]
Due to the fact that your intentions are to prevent exploitation of a game feature, rather than to further exploit it, I will allow this for the time being.
-fel
-fel
This game is odd. It very well could be that way. Then you can just "patch" (decided it's a nice name, and fits better) the server and have everyone be good to go.
I know in Homeworld 1 periodicly you would see a "Changing Hosts" message. As it redirected everyone to a new host, if the current one was lagging or droped.
Not sure if this does the same thing. Prior to there "fix" you could only kick if you were the host. Sometimes the host would move to another player, but atleast it wasn't a all out free for all with everyone being able to kick everyone else. They really didn't think that one through for any more than 2 seconds.
Mmmm...
So I don't know if its peer-to-peer, or client/server. I would guess client/server. On the other hand you get a ping for everyone, not just the server, and everyone sees others ping different; making me think it's like a mesh, or a P2P. I'm not sure though.
[edited by - Cyber-Ace on March 10, 2004 2:47:31 PM]
I know in Homeworld 1 periodicly you would see a "Changing Hosts" message. As it redirected everyone to a new host, if the current one was lagging or droped.
Not sure if this does the same thing. Prior to there "fix" you could only kick if you were the host. Sometimes the host would move to another player, but atleast it wasn't a all out free for all with everyone being able to kick everyone else. They really didn't think that one through for any more than 2 seconds.
Mmmm...
So I don't know if its peer-to-peer, or client/server. I would guess client/server. On the other hand you get a ping for everyone, not just the server, and everyone sees others ping different; making me think it's like a mesh, or a P2P. I'm not sure though.
[edited by - Cyber-Ace on March 10, 2004 2:47:31 PM]
As long as the server implements no-kick, you don''t have to worry about malicious users using the unmodded client; the server will simply refuse to distribute kicks that aren''t warranted, making the malicious client the one out of touch with reality.
"Sneftel is correct, if rather vulgar." --Flarelocke
"Sneftel is correct, if rather vulgar." --Flarelocke
quote:
Original post by Anonymous Poster
__D000000D___ you are such a l337 H4X0R.
Go away, this site is for game development.
Get a username.
MindEngine Development
http://medev.sourceforge.net
Making a mod might be the best way to go. Might add a few other features that you find annoying in the game, or release an early version of the mod and ask for suggestions on things that should be fixed, and then you can release the MOD to address these issues. That way the players who also feel the same as you, they can download it and then you''d have people to play with.
You never know, it might even become popular and everyone will start running it. Don''t let your head get too big, though
You never know, it might even become popular and everyone will start running it. Don''t let your head get too big, though
If it''s even possible on the client side, and you want to try by packet filtering your best bet is to write a proxy winsock dll. I''m sure you can find code for a skeleton one on google somewhere.
If you actually have to change the code of the client, you''re mostlikely going to have a really hard time figuring out what''s going on, but you can look into injecting a dll into the game process and you can fiddle around with the machine code in the other process and/or you can hook into any API calls that the game makes.
But as many have noted, if server just plainly disconnects you than no matter what you do client side, you can not avoid getting booted.
If you actually have to change the code of the client, you''re mostlikely going to have a really hard time figuring out what''s going on, but you can look into injecting a dll into the game process and you can fiddle around with the machine code in the other process and/or you can hook into any API calls that the game makes.
But as many have noted, if server just plainly disconnects you than no matter what you do client side, you can not avoid getting booted.
One thing that came across my mind as I was reading this post is that, well... that feature to be able to kick someone who''s lagging is probably a very nice thing...
StarCraft has the same sort of thing. If a player loses sync or whatever, a window pops up saying that it''s waiting for that player. It also has a counter, and when that counter reaches 0 (the player has been out of sync for a full minute or whatever), then everyone gets the option of kicking that player.
Now, imagine if people weren''t allowed to kick them. That window would just stay up and no one could finish the game. Or, if Blizzard hadn''t made the window come up, the game would just be lagging painfully.
Now, you''d probably say "Well, if someone''s lagging too much, the host can kick them"... but what if the host has stepped away from the computer for a moment (I know I do sometimes if my base is fully set up and self-sufficient type of thing)? Or maybe the host is the one that''s lagging? Now, because of an absent/slow host, no one gets to finish, and it all sucks.
If the option had been given to boot the host, then the lag would have been eliminated, and everyone could continue in peace.
Anyways, that''s my two cents... I think having that option is good, but hey, what do I know?
StarCraft has the same sort of thing. If a player loses sync or whatever, a window pops up saying that it''s waiting for that player. It also has a counter, and when that counter reaches 0 (the player has been out of sync for a full minute or whatever), then everyone gets the option of kicking that player.
Now, imagine if people weren''t allowed to kick them. That window would just stay up and no one could finish the game. Or, if Blizzard hadn''t made the window come up, the game would just be lagging painfully.
Now, you''d probably say "Well, if someone''s lagging too much, the host can kick them"... but what if the host has stepped away from the computer for a moment (I know I do sometimes if my base is fully set up and self-sufficient type of thing)? Or maybe the host is the one that''s lagging? Now, because of an absent/slow host, no one gets to finish, and it all sucks.
If the option had been given to boot the host, then the lag would have been eliminated, and everyone could continue in peace.
Anyways, that''s my two cents... I think having that option is good, but hey, what do I know?
I''ve heard in some games, like UT, you can change your percieved net speed. Some people use this as a hack so they can never be hit because they appear to jerk all around the place. Maybe you could find a way to make your percieved net speed higher than everyone else''s? No lag=no kick....
I''m completely unsure how this works though, perhaps it just randomly lags your computer so your percieved speed can only be equal to or less than your actualy speed... if thats the case this wont work.
I''m completely unsure how this works though, perhaps it just randomly lags your computer so your percieved speed can only be equal to or less than your actualy speed... if thats the case this wont work.
LOL... Your name is furby and it fits your response. 
Anyways...
The problem is. If I want to kick you. I alt-tab, hop to the fastest FTP I know, and download something big enough to choke my connection for a few seconds. I hope back in game, and go ahead and kick you because I''m lagging.
Besides, as I said almost everyone is lagging at one point or another. Often times a lag notice will glare in the corner of your screen the whole game even though no slow down actually takes place. It''s way to sensitive, and there is not timers. You lag for .01 seconds, and you have the potential to be kicked.
Anyways...
The problem is. If I want to kick you. I alt-tab, hop to the fastest FTP I know, and download something big enough to choke my connection for a few seconds. I hope back in game, and go ahead and kick you because I''m lagging.
Besides, as I said almost everyone is lagging at one point or another. Often times a lag notice will glare in the corner of your screen the whole game even though no slow down actually takes place. It''s way to sensitive, and there is not timers. You lag for .01 seconds, and you have the potential to be kicked.
I suppose it depends on how the kick works. If the server disconects you, which I can''t imagine not being the case, there''s not much a client can do about it. I suppose it would be possible to remove this feature server side, but are you certain this isn''t already an option? I''ve yet to encounter a game server that didn''t allow you to tweak just about every aspect of gameplay. If not, getting people to use your new server, even assuming a normal client could connect to it, is not going to be easy.
[My site|SGI STL|Bjarne FAQ|C++ FAQ Lite|MSDN|Jargon]
Ripped off from various people
[My site|SGI STL|Bjarne FAQ|C++ FAQ Lite|MSDN|Jargon]
Ripped off from various people
No change of update. Sierra is the deciding factor there; it''s always a shame to see them invovled in a quality game.
No server side option.
I think the connections are P2P. (60% sure here.)
Someone already said they could bandaid this in about 15 mins on the game specific forums, but someone brought up a bandaid of version 1.0 (the only other version is the current 1.1, only 2 versions) and how it wasn''t the least bit effective because only like 6 people bothered to download it. So basicly getting a bandaid would only cut you off from the rest of the community.
This is why I want a solution that wouldn''t ruin your games compatability with the rest of the community, but still protect you. May not be posible though.
No server side option.
I think the connections are P2P. (60% sure here.)
Someone already said they could bandaid this in about 15 mins on the game specific forums, but someone brought up a bandaid of version 1.0 (the only other version is the current 1.1, only 2 versions) and how it wasn''t the least bit effective because only like 6 people bothered to download it. So basicly getting a bandaid would only cut you off from the rest of the community.
This is why I want a solution that wouldn''t ruin your games compatability with the rest of the community, but still protect you. May not be posible though.
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.
Sign in to reply to this topic.
Advertisement