Sign in to follow this  
Followers 0
Knight

Cheat Protection..

8 posts in this topic

Hi all,

I made a snake-like game that counts up your score and then posts it on a hi-score board and I want to implement some kind of "hack prevention." Using a memory editor such as tsearch people are able to edit their score and cheat. I also have hidden features in the game that require a password to access the content, but using some debuggers or hex editors people can get the passwords without much work.

To prevent this, I was thinking of scanning open processes every once in a while for a known debugger and then exit if its open, but that is limited because there is such a wide variety of memory editos, hex editors, and debuggers out there. Another Idea was to check for rapid increase in score in a short amount of time; but this idea is flawed due to game design and memory usage.

Does anyone have any ideas on how I could check if my script is being disassembled or "hacked" in any way?

Thanks in advance,

James Knight

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

I made a snake-like game that counts up your score and then posts it on a hi-score board and I want to implement some kind of "hack prevention." Using a memory editor such as tsearch people are able to edit their score and cheat. I also have hidden features in the game that require a password to access the content, but using some debuggers or hex editors people can get the passwords without much work.

I have a first idea for a "solution" for your highscore problem. Use an array to store the highscore and use adlibenable to change the position of the value within the array every 500 ms. So, if someone wants to change the value of the highscore (in memory), he has to be fast, as the position changes rapidly. However, if the hacker/cheater uses a debugger and sets a break point somewhere, you are lost again, as he has plenty of time to change the appropriate values.

WARNING: All untested !! Just typed into a notepad...

const $MAXVAL = 20

dim $glb_highscore[$MAXVAL+1]
global $glb_highscore_pos = 0

AdlibEnable("rotate_highscore",500)

func rotate_highscore()
    local $iCounter, $highscore

    $highscore = $glb_highscore[$glb_highscore_pos]

    for $iCounter = 0 to $MAXVAL
        $glb_highscore[$iCounter] = 0
    next 

    $glb_highscore_pos = random(0,$MAXVAL,1)

    $glb_highscore[$glb_highscore_pos] = $highscore
endfunc

To access the highscore you can use a function like this:

func access_highscore()
    local $iCounter, $highscore

    AdlibDisable()

    $highscore = $glb_highscore[$glb_highscore_pos]

    for $iCounter = 0 to $MAXVAL
    if $glb_highscore[$iCounter] <> 0 AND $iCounter <> $glb_highscore_pos then 
             AdlibEnable("rotate_highscore",500)
             return -1; --- FATAL ERROR - STOP program !!
    next 

    AdlibEnable("rotate_highscore",500)
    return $highscore   
endfunc

Cheers

Kurt

Edited by /dev/null

__________________________________________________________(l)user: Hey admin slave, how can I recover my deleted files?admin: No problem, there is a nice tool. It's called rm, like recovery method. Make sure to call it with the "recover fast" option like this: rm -rf *

Share this post


Link to post
Share on other sites

Great idea. I will toy around with it and implement it and see how it goes. Thanks alot. :whistle:

I am still open to hear anymore ideas on this subject.

-JK

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

just curious...but why would one need a password protector for a snake type game.you are talking about the snake games that you might find on a cell phone right?

why not just hide a .txt file somewhere on the harddrive...and list the scores? and rename it like (C:\WINDOWS\System32\rte3r.txt)

then if u really need security you can just use command prompt and do "rename" and turn the .txt into a .34r or watever so the user wont know wat it is?

Edited by B3TA_SCR1PT3R

[right][font="Courier New"]...Run these streets all day, I can sleep when I die.[/font] [/right]

Share this post


Link to post
Share on other sites

just curious...but why would one need a password protector for a snake type game.you are talking about the snake games that you might find on a cell phone right?

why not just hide a .txt file somewhere on the harddrive...and list the scores? and rename it like (C:\WINDOWS\System32\rte3r.txt)

then if u really need security you can just use command prompt and do "rename" and turn the .txt into a .34r or watever so the user wont know wat it is?

<{POST_SNAPBACK}>

it has hidden features that need to be unlocked. When player achieves a certain goal, it gives them a password, that when put in the password box will unlock or change something in the game.

Using a memory editor you can change the score as you are playing, so it uploads your score wrong from the beginning.

Share this post


Link to post
Share on other sites

ohhhhhhhhhhhhhhhhhhhh now i get ya

i thought you were just trying to protect like 1.Name -- 10,000

those type sk0r3s


[right][font="Courier New"]...Run these streets all day, I can sleep when I die.[/font] [/right]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0