Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Arcade Anti-Cheater Mod Details »»
Arcade Anti-Cheater Mod
Version: 1.00, by Ron1n Ron1n is offline
Developer Last Online: Jun 2008 Show Printable Version Email this Page

Version: 3.0.3 Rating:
Released: 07-15-2004 Last Update: Never Installs: 26
 
No support by the author.

Board: 3.x

Purpose:
If your board is a scripting/coding board you probably have cheaters using your arcade. They are people that use memoryhacks/colorbots, and believe me, people do cheat. This hack is to clean up scores. Before, if you wanted to remove a score, you had to create your own mysql query and even though the score was removed the highscore still showed up as belonging to them. This process has been fixed by this hack.

Functionaliy:
- Remove all scores from a user
- Remove a users highscores
- Fix the titleholders/highscores

Screenshot: http://www.elitecoders.org/ftp/ronin...rcadeadmin.jpg
Code: Attatched
No Edits Required PHP script: Attatched

Instructions: Perform the following edits, OR upload the attatched PHP file in place of your own arcadeadmin.php.

#-------------------------------------------------------------------------------#
Find In arcadeadmin.php
#-------------------------------------------------------------------------------#
Code:
	print_form_header('arcadeadmin', 'pruneinvalid');
	print_table_header("Remove All Invalid Scores");
	print_description_row("This action will remove all invalid score records from the database. Invalid records are created during automated score pruning, or if a session is terminated prematurely.");
	print_submit_row("Remove All Invalid Scores", 0);
#-------------------------------------------------------------------------------#
Add Below
#-------------------------------------------------------------------------------#
Code:
// ARCADE HACK BY RONIN	
	print_form_header('arcadeadmin', 'prunebyuser');
	print_table_header("Remove User Scores");
	print_description_row("This action will remove a users scores from the database.");
	print_input_row("Enter the userid here", 'userid');
	print_yes_no_row("Remove highscores only? (as opposed to all scores)", 'high', 0);
	print_submit_row("Remove User Scores", 0);
	
	print_form_header('arcadeadmin', 'fixhighscores');
	print_table_header("Fix High Scores");
	print_description_row("This action will update the highscore listings and awards with the actual highscore information for each game");
	print_submit_row("Update Highscores", 0);
// ARCADE HACK BY RONIN
#-------------------------------------------------------------------------------#
Find in arcadeadmin.php
#-------------------------------------------------------------------------------#
Code:
// ###################### INVALID RECORD PRUNING #######################
if ($_POST['do'] == "prunenoscore") {
	if ($_POST['confirmation']=="YES") {
		$DB_site->query("DELETE FROM " . TABLE_PREFIX . "gamesessions WHERE sessiontype=1");
	}

	define('CP_REDIRECT', 'arcadeadmin.php?do=scores');
	print_stop_message('arcade_cp_settingssaved');
}
#-------------------------------------------------------------------------------#
Add Below
#-------------------------------------------------------------------------------#
Code:
// ###################### PRUNE BY USER #######################
if ($_POST['do'] == "prunebyuser") {
	$userid=$_POST['userid'];
	$high=$_POST['high'];
	
 if ($high) {
	$query = "	SELECT gamename, MAX(score) AS score
				FROM gamesessions
				WHERE valid=1
				GROUP BY gamename	";
	$myquery = $DB_site->query($query);
	while($row = $DB_site->fetch_array($myquery)) {
		$delete = "DELETE FROM gamesessions WHERE gamename = '".$row['gamename']."' && userid ='".$userid."' && score = ".$row['score'];
		$DB_site->query($delete);
	}
	define('CP_REDIRECT', 'arcadeadmin.php?do=scores');
	print_stop_message('arcade_cp_settingssaved');
 } else {
	$DB_site->query("DELETE FROM " . TABLE_PREFIX . "gamesessions WHERE userid=".$userid);
	define('CP_REDIRECT', 'arcadeadmin.php?do=scores');
	print_stop_message('arcade_cp_settingssaved');
 }
}
// ###################### FIX HIGHSCORES #######################
if ($_POST['do'] == "fixhighscores") {
	$query = "	SELECT gamename, MAX(score) AS score
				FROM gamesessions
				WHERE valid=1
				GROUP BY gamename	";
	$myquery = $DB_site->query($query);
	while($row = $DB_site->fetch_array($myquery)) {
		$user = 	"SELECT userid
					FROM gamesessions
					WHERE valid=1 AND score='".$row['score']."' AND gamename='".$row['gamename']."'";
		$userquery = $DB_site->query($user);
		while($useid = $DB_site->fetch_array($userquery)) {
			$update = 	"UPDATE games
					SET `highscore`='".$row['score']."', `highscorerid`='".$useid['userid']."'
					WHERE shortname='".$row['gamename']."'";
			$DB_site->query($update);
		}
	}
	define('CP_REDIRECT', 'arcadeadmin.php?do=scores');
	print_stop_message('arcade_cp_settingssaved');
}

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #22  
Old 08-02-2004, 06:19 PM
Diva's Avatar
Diva Diva is offline
 
Join Date: Oct 2001
Location: CA, USA
Posts: 311
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Oblivion Knight
If a user has a highscore and becomes the champion of a game, does this also clear the news associated with that user being the new champion? If not, it would be a good addition..
Hi! I was wondering if the hack removes the news also?
Reply With Quote
  #23  
Old 08-19-2004, 04:47 PM
Rampag33's Avatar
Rampag33 Rampag33 is offline
 
Join Date: Jun 2002
Location: Houston, Texas
Posts: 162
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

did the manual edit .... worked with no problem and no errors.

great and thanks!
Reply With Quote
  #24  
Old 08-21-2004, 04:15 PM
Cerb Cerb is offline
 
Join Date: Jul 2004
Posts: 46
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Yeah hacking arcades is actually pretty easy, tested with Yeti Sports 1.5 with Firefox and the offsets are stored in 16 bit memory in double format.

However I have no idea how this hack would prevent cheating, it could remove high scores, but it could not for sure detect if a score has been hacked or not since the offsets are stored in the client's virtual memory then sent to the server
Reply With Quote
  #25  
Old 09-11-2004, 09:16 PM
Ron1n Ron1n is offline
 
Join Date: Jun 2004
Posts: 373
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

the reason i needed this mod is that if I didnt have it, over 90% of the people in my forum would be cheating because we are, by definition, a cheat site :P

it cant prevent people from cheating, i could run a perl script to see whats running on their computers while they play... but tbh that would waste tons of bandwidth and i doubt your users would allow me to check that.
Reply With Quote
  #26  
Old 09-14-2004, 09:48 PM
Reverend Reverend is offline
 
Join Date: Mar 2002
Location: England
Posts: 206
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This hack doesn't remove the users score from the News & Events list.Is it possible to include some code to add this feature as well.
Reply With Quote
  #27  
Old 09-15-2004, 11:56 PM
The Professor The Professor is offline
 
Join Date: Dec 2001
Posts: 1
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Greetings everyone. To dispose of any concern that I am asking on how to cheat for negative purposes, I would like to preface my question with the following:
I am a member / administrator on MajorGeeks.com under the username of Kodo. If anyone wishes to confirm my account and the fact that this is indeed legitimate, please send me an email at Kodo (at) MajorGeeks.com and I will reply or merely ask the Owners of the site who I am. Or ask me to post something on MajorGeeks and it will be done.

Now, onto my question. We have a member that I suspect is cheating. The game in question is KF9000 kite flying. If anyone knows if this game is flawed, please let me know. I suspect a dozen or so other games have been "bypassed" in some manner, either by the game being bad or this person somehow "posting" altered data. I'm leaning to the latter.

I would like to gather as much specific information I can on how the arcade is by passed (and by god don't post the specifics in this thread!) via e-mail correspondence or PM. I tried today with limited success but I am by no means a "hacker/cracker" and do not aspire to be labeled as such. I am merely trying to determine how this is done step by step as proof of concept and assist in better determining who is cheating.

Some people are good cheaters. They'll hack the highscore and play several games regularly to populate lower scores. I really need to nail down some more info though.

I thank anyone who can help me.

Regards
-Jim Losi
Kodo on MajorGeeks
Reply With Quote
  #28  
Old 10-11-2004, 12:36 PM
enterprise enterprise is offline
 
Join Date: Oct 2004
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Nice work, been having problems with my forum's arcade, thanks!
Reply With Quote
  #29  
Old 01-16-2005, 09:43 PM
Soto Soto is offline
 
Join Date: Dec 2004
Posts: 25
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Installed - thank you
Reply With Quote
  #30  
Old 03-11-2005, 12:47 PM
Polo's Avatar
Polo Polo is offline
 
Join Date: Jun 2004
Posts: 893
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

[high]* Polo clicks install
[/high]

Thanks
Reply With Quote
  #31  
Old 07-18-2005, 02:22 AM
ryne661 ryne661 is offline
 
Join Date: Jan 2005
Posts: 11
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

How exactly would they be able to cheat in the arcade?
Reply With Quote
Reply


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 Off

Forum Jump


All times are GMT. The time now is 01:22 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.06228 seconds
  • Memory Usage 2,316KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (4)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete