🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.games.diablo
Article #382

Re: Diablo: How they COULD have stopped cheaters -- HACK THIS

#382
From: MikeM
Date: Sun, 26 Jan 1997 00:00
119 lines
5540 bytes
>Pas...@Globalserve.net (FraggyBalls) wrote:

much better (and simpler idea)... when logging in, have the server
check the s/w to see if it's been tampered with. 

For example.. as my character develops, an algorithym creates an
encripted checksum.  When I log in, the same algorithym on the host
looks at my stats, etc and generates a checksum.

If the checksums don't match.. then I'm not allowed to log in (or only
log into special 'cheaters' arena).

Now this does nothing for equipment, but that's a moral/conscious
issue anyway (i.e. do I want to accept something my char didn't 'earn'
from a high level char playing with me?)

>In article <854166...@hkchan.pc.my>, hkc...@hkchan.pc.my wrote:
>>
>>In article <32e67266...@news.ntr.net> ske...@totaltel.com writes:
>>
>> > On Wed, 22 Jan 97 18:21:21 GMT, Pas...@Globalserve.net (FraggyBalls)
>> > wrote:
>> > 
>> > >The stats that need to be saved on the server are much less than 1K.  Other
>> 
>> > >stuff can be saved on the PC.
>> > >
>> > >Stuff that needs to be saved on server is:
>> > >
>> > >Base Attibutes .  7 bytes
>> > >Equipment and Inventory.
>> > [SNIP!]
>> > 
>> > This is a really terrific idea.  The only feature that's lost, then,
>> > is the ability to use battle.net players while not on battle.net.
>>
>>This idea is terrible. Everyone will suffer as long as there is one
>>person decide to trash the server by creating several characters on
>>the server.
>>

>Note in the above proposal, spell levels also need to be stored on the server.

>Although bugs are likely, and server crashes also likely, there's no 
>reason to think that creating multiple empty inventory (7 bytes + id, 
>password) accounts are going to overwhelm a master server.


>MultiPlayer is useless because cheating is simple, and multiPlayer save files 
>get corrupted when you defrag your hd.

>having a server based system, gives all the benefits of quakeworld.  Unique 
>names.  Worldwide stats (ear count tracking).

>in Blizzard's position on cheating article, they mention that it would still 
>be possible to cheat with server based stats.

>Ways I've thought of so far:

>Sending the UDP for "I just visited an Enchanted shrine, or picked up super 
>weapon".


>Architecture that to me seems hard to crack: 

>Whenever an attribute or spell level changes, a checksum type key that is 
>computed based on current stat level is sent for verification.  If an 
>incorrect checksum is submitted, the server can request the client to resend 
>using a different checksum formula.
>        
>        To crack this, you need to find the level up and attribute up routine, 
>and execute it, while the program is running (without crashing).  An 
>extremmely challenging proposition.  Also, to cheat, the user would need a 
>debbugger instead of a memory poking program


>If all there was a limit on the number of Powerful items that can possibly 
>exist in the Universe of games, then  an Inventory/Parcel tracking system can 
>be put in place to insure an item is not carried by more than 1 person.

>For example, there could be a limit of 5000 King's swords of Haste in the 
>universe.  Each has a specific inventory id.  When you carry it, it is 
>registered to you, when you drop it, it is registered  to available.  
>Characters can only carry special items that they were previously carrying or 
>were available.

>I'm not suggesting that every special item in the game be cataloged by the 
>inventory system, just that the super powerful ones be.  Lesser special items 
>that exist in the game can also be given encyption key codes that ensures, one 
>cannot have an item that does not exist in the game, and one cannot have a 
>copy of an item that does exist in someone else's inventory (ie the shop).  
>Items do not exist until someone visists the level they are on.

>This way ppl cannot poke values into their inventory memory variables.  All 
>items have a state of ownership:  Shop, Player, Monster, Ground.  Also, 
>Inventory addition should be tightly integrated with the picking up 
>functions, such that the game crashes when executing outside of picking up and 
>buying actions.

>Basically, for superpowerful items, the items' state of ownership should be 
>stored on the server, as it seems possible (though not trivial, as it is 
>now) to hack the ownership status of items if they're stored inside the pc 
>game.

>Spell levels can be treated the same as attributes.

>Additional checks are possbile.  Spell Levels can only be increased if there 
>exists items that can increase it, and these items are used.  Using items, 
>involves first carrying/owning them, or being on the same level as shrines.

>Checks can be made after each level is exited for unwarranted xp and spell 
>advancement.

>All of these above suggestions do not pose excessive server/bandwidth 
>resources.

>I invite hackers to challenge the security claims I've made, and to improve 
>them if you can.
Technical Details
Message-ID: <5cgqmo$h49@chronicle.concentric.net>
Path: mbox-mo1.pugleaf.net!unknown!not-for-mail
References: <32e67266.1620229@news.ntr.net> <854166571snx@hkchan.pc.my> <5cgbj4$9j@titan.globalserve.net>

Show Full Headers
Complete Article Headers
From: boomer*@cris.com* (MikeM)
Subject: Re: Diablo: How they COULD have stopped cheaters -- HACK THIS
Date: 1997/01/26
Message-ID: <5cgqmo$h49@chronicle.concentric.net>
X-Deja-AN: 212410829
references: <32e67266.1620229@news.ntr.net> <854166571snx@hkchan.pc.my> <5cgbj4$9j@titan.globalserve.net>
organization: ICI
newsgroups: comp.sys.ibm.pc.games.rpg,alt.games.diablo
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit