Fires of Heaven Guild Message Board  

Go Back   Fires of Heaven Guild Message Board > Fires of Heaven Related Forums > Uberworlds Development Forum
User Name
Password
Or, use your gamerDNA username: (more...)
ForumSpy Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Rate Thread Display Modes
Old 07-10-2009, 12:01 AM   #16 (permalink)
Froofy-D
upper management material
 
Froofy-D's Avatar
 
Join Date: Nov 2002
Location: Orlando, FL
Posts: 2,197
+17 Internets
Thanks a lot Camerous. Unbelievably (or not) we've actually had cheaters on the GAR Official server. They seem to be doing some memory offset hacking to fire faster. I didn't really cheat proof it because I figured nobody would bother.
Froofy-D is offline   Reply With Quote
Old 07-10-2009, 07:48 PM   #17 (permalink)
Hachima
Registered User
 
Join Date: Oct 2004
Posts: 2,081
Quote:
Originally Posted by Froofy-D View Post
Thanks a lot Camerous. Unbelievably (or not) we've actually had cheaters on the GAR Official server. They seem to be doing some memory offset hacking to fire faster. I didn't really cheat proof it because I figured nobody would bother.
Just briefly glancing at the code couldn't I just change the following code for easy cheating?


Code:
 public static void SendFireMessage(int selectedWeapon, int damage, float polarity)
        {
            for (int i = 0; i < 5; i++)
            {
                try
                {
                    NetBuffer sendBuffer = new NetBuffer();
                    sendBuffer.WriteRangedInteger(0, 0x80, 3);
                    sendBuffer.WriteRangedInteger(0, 0x80, Globals.player.playerID);
                    sendBuffer.Write(Globals.player.position.X);
                    sendBuffer.Write(Globals.player.position.Z);
                    sendBuffer.Write(Globals.player.weaponArray[selectedWeapon].aimYaw);
                    sendBuffer.WriteRangedInteger(0, 4, selectedWeapon);
                    sendBuffer.WriteRangedInteger(0, 0x4000, damage*3);
                    sendBuffer.WriteRangedInteger(-1, 1, (int)polarity);
                    netClient.SendMessage(sendBuffer, NetChannel.Unreliable);
                }
                catch
                {
                    MessageQueue.AddPriorityBigMessage("Failed to send fire message!");
                }
            }
        }
Hachima is offline   Reply With Quote
Old 07-11-2009, 12:59 PM   #18 (permalink)
Fog
Registered User
 
Join Date: Feb 2006
Posts: 1,971
-1 Internets
Not to slag on you too much, but why on earth can't I put numbers in my password? And why can't I use TAB to switch between text fields?
Fog is offline   Reply With Quote
Old 07-11-2009, 03:06 PM   #19 (permalink)
Kargon
Registered User
 
Join Date: Aug 2002
Location: Durham, NC
Posts: 205
Send a message via ICQ to Kargon
Would love ability to move the camera angle =/
__________________
A Stupid Name - Winterhoof
Kargon is offline   Reply With Quote
Old 07-11-2009, 04:00 PM   #20 (permalink)
Draegan
҉̵̞̟̠̖̗̘̙̜̝̞̟̠͇̊̋̌̍̎ ̏
 
Draegan's Avatar
 
Join Date: Sep 2006
Posts: 6,631
-20 Internets
That was you posting over on F13 eh?

Anyway I hit level 40 or so.. cool game but I can't find any new weapon patterns. It got boring.
__________________


Draegan is offline   Reply With Quote
Old 07-11-2009, 05:14 PM   #21 (permalink)
Froofy-D
upper management material
 
Froofy-D's Avatar
 
Join Date: Nov 2002
Location: Orlando, FL
Posts: 2,197
+17 Internets
Quote:
Originally Posted by Hachima View Post
Just briefly glancing at the code couldn't I just change the following code for easy cheating?


Code:
 public static void SendFireMessage(int selectedWeapon, int damage, float polarity)
        {
            for (int i = 0; i < 5; i++)
            {
                try
                {
                    NetBuffer sendBuffer = new NetBuffer();
                    sendBuffer.WriteRangedInteger(0, 0x80, 3);
                    sendBuffer.WriteRangedInteger(0, 0x80, Globals.player.playerID);
                    sendBuffer.Write(Globals.player.position.X);
                    sendBuffer.Write(Globals.player.position.Z);
                    sendBuffer.Write(Globals.player.weaponArray[selectedWeapon].aimYaw);
                    sendBuffer.WriteRangedInteger(0, 4, selectedWeapon);
                    sendBuffer.WriteRangedInteger(0, 0x4000, damage*3);
                    sendBuffer.WriteRangedInteger(-1, 1, (int)polarity);
                    netClient.SendMessage(sendBuffer, NetChannel.Unreliable);
                }
                catch
                {
                    MessageQueue.AddPriorityBigMessage("Failed to send fire message!");
                }
            }
        }
Oh how can you read the code? A decompiler? I suppose that is what they did.
Froofy-D is offline   Reply With Quote
Old 07-11-2009, 05:22 PM   #22 (permalink)
Froofy-D
upper management material
 
Froofy-D's Avatar
 
Join Date: Nov 2002
Location: Orlando, FL
Posts: 2,197
+17 Internets
Oh damn. Yeah just searched for C# decompiler and in 5 mins I was reading the executable with .net Reflector. Hmm so what do you use to either alter the executable or the memory?
Attached Images
 
Froofy-D is offline   Reply With Quote
Old 07-11-2009, 06:09 PM   #23 (permalink)
Hachima
Registered User
 
Join Date: Oct 2004
Posts: 2,081
There are tools out there to help obfuscate your code.

Tutorial: Visual Studio 2008 Obfuscating with Dotfuscator - CodeCall Programming Forum should give you a good start
Hachima is offline   Reply With Quote
Old 07-11-2009, 07:52 PM   #24 (permalink)
Szlia
Conquest
 
Szlia's Avatar
 
Join Date: Mar 2002
Location: Switzerland
Posts: 5,643
+25 Internets
Guru Hachima:
super hero or villain,
you, digital god?
__________________
-retrosabotage-
Szlia is offline   Reply With Quote
Old 07-11-2009, 10:20 PM   #25 (permalink)
Fog
Registered User
 
Join Date: Feb 2006
Posts: 1,971
-1 Internets
Relying on tools to obfuscate the code really isn't practical to stop anyone with any motivation at all. Even assuming nobody at all could decipher the IL and fiddle with the executable in a useful way (an impossible assumption) it's pretty simple work to watch Wireshark and figure out what's going on, and then fiddle with it in-memory to send the proper messages over.

If you want even a little bit of security, you'll have to do stuff like weapon calculations on the server, but since you did this for your Ph.D., I presume you're well aware and decided not to go to the effort. As such, I suggest you don't even bother trying to obfuscate the code.

The de facto tool for disassembly is OllyDbg, but I assume that whoever is working on your code is just using ildasm to decompile it and ilasm back into an executable.

Last edited by Fog; 07-11-2009 at 10:23 PM..
Fog is offline   Reply With Quote
Old 07-11-2009, 10:38 PM   #26 (permalink)
Hachima
Registered User
 
Join Date: Oct 2004
Posts: 2,081
Obfuscating it may not prevent all cheating, but it would help protect the ideas behind how the game is designed, which is his focus.
Hachima is offline   Reply With Quote
Old 07-11-2009, 11:01 PM   #27 (permalink)
Fog
Registered User
 
Join Date: Feb 2006
Posts: 1,971
-1 Internets
Quote:
Originally Posted by Hachima View Post
Obfuscating it may not prevent all cheating, but it would help protect the ideas behind how the game is designed, which is his focus.
Why? He's not selling it; it's academic. Why would he want to hide the source?
Fog is offline   Reply With Quote
Old 07-11-2009, 11:10 PM   #28 (permalink)
Hachima
Registered User
 
Join Date: Oct 2004
Posts: 2,081
I don't know if he does or doesn't. I was just letting him know his options if he did, since he seemed to be unaware that you could look at the high level version of the source so easily.

I guess is he did want the source to be available he could release the actual source w/ any comments for educational purposes, which would be pretty cool if he did.


With the full source being available for this far into the project already it seems like a decent route. Give it some OS status and let people build upon it.
Hachima is offline   Reply With Quote
Old 07-11-2009, 11:38 PM   #29 (permalink)
Froofy-D
upper management material
 
Froofy-D's Avatar
 
Join Date: Nov 2002
Location: Orlando, FL
Posts: 2,197
+17 Internets
I will obfuscate the code in the next version just so it is a bit harder to cheat. Although, I banned the accounts and IPs of the few people that were hacking, and haven't had any complaints since. I threw in server-side IP banning at the last minute before release. Glad I did.
Froofy-D is offline   Reply With Quote
Old 07-16-2009, 03:31 PM   #30 (permalink)
Fog
Registered User
 
Join Date: Feb 2006
Posts: 1,971
-1 Internets
There's a Metafilter thread here on the game (I didn't post it, just letting you know.)
Fog is offline   Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On

uberguilds network



All times are GMT -7. The time now is 06:52 AM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0 RC6