Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  23 7813
Valgfri brukertittel
Kekurikekaka's Avatar
På siden min, kuleste, så har jeg lagt opp noen spill.

Jeg vil gjerne vite hvor enkelt det er å tulle med disse.

Jeg har mulighet for å sette opp turneringer for mine brukere, hvor de kan vinne premier.
For at jeg skal kunne lage disse turneringene, så er det viktig å ha en viss sikkerhet for å forhindre juks.

Selv har jeg prøvd ut grease monkey, men dette funket ikke.


Turneringen finner du her:
http://www.kuleste.net/public/krooze...ournaments.php

For å spille i denne turneringen, så må man være logget inn.
Så i denne anledning, så passer det ypperlig å bruke testbrukeren min, så dere slipper registrering:
Brukernavn: Test
Passord: test

Dette gjør da så vinneren blir 'Test'.


Mål
- Få 6969 i poengscore

Hva er ikke lov å bruke?
- Alle metoder er lov, bortsett fra alt som kan gå ut over serveren til hosten min.

Husk å skriv metode, hvis du klarer det! Så kan jeg kanskje få tettet sikkerhetshullet, hvis mulig.


Er det andre svakheter med systemet du finner, så passer det fint å fortelle om dem også
Sist endret av Kekurikekaka; 5. oktober 2007 kl. 05:36.
Er det flash-spill så er det bare å vente på dexter.

Edit: Det var jo 98% likt "Jetman" spillet på facebook. Mangla bare bakgrunnsfarge og objekt som skal fly.
(Jeg er best hittil med 1333 i score)
Sist endret av Mcmak; 5. oktober 2007 kl. 05:53.
Metode: Sinnsyke minispill skillz

Oppnådde: 671 tror jeg,

Ingen sikkerhets problemer funnet ved bruk av denne metoden
Problem, officer?
thomasf's Avatar
funker ikke til meg
Valgfri brukertittel
Kekurikekaka's Avatar
Trådstarter
Sitat av Mcmak
Er det flash-spill så er det bare å vente på dexter.

Edit: Det var jo 98% likt "Jetman" spillet på facebook. Mangla bare bakgrunnsfarge og objekt som skal fly.
Vis hele sitatet...

Det dexter viste oss en gang var grease monkey. Dette fungerer ikke her, tror jeg. Jeg fikk det ihvertfall ikke til å fungere.

2021 er rekorden min Ikke i turneringen, men ikketurnering versjonen. Heh.

EDIT: Da er sceptic på 1. plass 1417
Sist endret av Kekurikekaka; 5. oktober 2007 kl. 06:38.
ahhh 'Flythecopter' den er vell orginalen på det området? Den kom lenge før alle dem dårlige kopiene:P

www.seethru.co.uk ^^





ehm
Ditt resultat som er 532 er den beste i denne turneringen!
Ditt resultat har blitt oppdatert...
Det er 4d 22t 18m igjen til turneringen slutter.
Vis hele sitatet...
burdet det ikke heller stått 'din beste' istedet får 'den beste' som forteller meg at jeg har highscore?
Sist endret av PAO87; 5. oktober 2007 kl. 07:12.
Valgfri brukertittel
Kekurikekaka's Avatar
Trådstarter
eller 'ditt beste resultat'.

Har endret det, kommer i neste update.
lol, lett

Dette var ikke mye sikkert.
Eneste jeg gjorde var å starte opp Tamper data (pga du skal jo ha highscore fra flash til php/mysql), og spilte og daua med engang, så var det bare å endre score i tamper data, og den godtok det uten noe mere tull.

Nobody likes me!
Du har -1 Nye venneforespørsler)
Sist endret av SteInMetz; 5. oktober 2007 kl. 08:40.
2147483647 er max btw :P
Haha, som flere sier her er det lett med Tamper Data. Prøve selv, daua med en gang og så er det bare å endre verdi du skal sende og vips!
sånn nå har jeg score 2147483647 ved hjelp av tamper data add on'en til firefox.
Får jeg kyss, klapp, og klem nå?
Var nokk dessverre litt lett ja.
Ved bruk av Tamper Data kan man enkelt nokk skrive inn sin egen score.

Dessverre så vet ikke jeg hvordan du skal fixe det, men trur dexter kan hjelpe deg vidre her, samt mange andre flinke bruke av forumet.

Hvis du ikke vet hva tamper data er, så er det enkelt og greit en addon i firefox som tamprer data (Du godskjenner alt som blir sendt, så før du sender scoren du fikk, så skriver du inn hvor mye poeng du fikk. Det dette som må fikses, slik at man ikke har mulighet for å gjøre det sånn. dexter knows how, tipper jeg
Sist endret av Restyle; 5. oktober 2007 kl. 12:51.
Ditt resultat som er 68757868767548757658 er den beste i denne turneringen!
Ditt resultat har blitt oppdatert...
Det er 4d 16t 36m igjen til turneringen slutter.

En smule lett:P
Er forresten slik man hacker de fleste flash-spill.
Sist endret av Restyle; 5. oktober 2007 kl. 12:54.
Sitat av Restyle
Er forresten slik man hacker de fleste flash-spill.
Vis hele sitatet...
De fleste som sender en highscore liste "ut av flashen"..
Sitat av SteInMetz
De fleste som sender en highscore liste "ut av flashen"..
Vis hele sitatet...
Det er ikke mange andre metoder å gjøre det på heller. Flash-spill er utrolig vanskelig, om enn ikke umulig, å sikre fullstendig mot juks. Siden variablene faktisk må sendes ut fra klienten selv står klienten fritt til å forandre requesten så mye han vil. Et ofte benyttet triks her er "Security through Obscurity", altså å f.eks. lage variabler ut i fra navn og poengsum og en eller annen gameId som sendes inn sammen med poengsummen for å se at ingenting er blitt tullet med. Det er derimot ikke verre enn å dekompilere flash-filen og kopiere disse algoritmene nesten ordrett inn i f.eks. PHP og bruke dette videre til å crafte gyldige variabler gitt et brukernavn og en score.

I beste fall vil du utelukke en stor del potensielle juksere rett og slett fordi de ikke gidder å nøste seg gjennom koden din. Andre igjen - f.eks. meg - ser på det som en utfordring.
Ok, tror du missforstod meg litt.

Det jeg mente var at tamper data vil ikke funke til de flash spillene som har interne highscore lister, sier ikke at det gjør det sikrere, men det gjør det definitivt vanskeligere å jukse, krever en del mere innsikt og kunnskaper enn tamper data hvor man endrer "score=xxxxxxx"... Har opplevd at en del flash spill også bruker tid brukt og en "key" for å lage en variabel som sier hva scoren din skal være.. Enkelt system for disse er å få deg en score og adde 0'er på alle feltene (like mange vær plass).. Men er med på hva du sier Dyret
Queen of Blades
Jonta's Avatar
DonorCrew
Sitat av Dyret
Det er ikke mange andre metoder å gjøre det på heller. Flash-spill er utrolig vanskelig, om enn ikke umulig, å sikre fullstendig mot juks. Siden variablene faktisk må sendes ut fra klienten selv står klienten fritt til å forandre requesten så mye han vil. Et ofte benyttet triks her er "Security through Obscurity", altså å f.eks. lage variabler ut i fra navn og poengsum og en eller annen gameId som sendes inn sammen med poengsummen for å se at ingenting er blitt tullet med. Det er derimot ikke verre enn å dekompilere flash-filen og kopiere disse algoritmene nesten ordrett inn i f.eks. PHP og bruke dette videre til å crafte gyldige variabler gitt et brukernavn og en score.

I beste fall vil du utelukke en stor del potensielle juksere rett og slett fordi de ikke gidder å nøste seg gjennom koden din. Andre igjen - f.eks. meg - ser på det som en utfordring.
Vis hele sitatet...
Ser ut som om dette er det beste å gjøre. Jeg visste ikke at det var så lett å "hacke" flashspill. Blir veldig irritert når folk gjør det.
Valgfri brukertittel
Kekurikekaka's Avatar
Trådstarter
Ok, men da er dette avklart.

Er det lett å fikse dette? Så det ikke er mulig? Det må da være en måte
Uten at jeg har sjekket spillet ditt, fordi det krevde en registrering - så kan jeg si at det er fundamentalt galt at klienten skal sende inn score i form av HTTP-POST. I alle fall uten at du f.eks prøver å validere at forespørselen kommer fra formen som den skal komme i fra.
Sist endret av m0b; 5. oktober 2007 kl. 17:35.
Valgfri brukertittel
Kekurikekaka's Avatar
Trådstarter
Sitat av |d13m0b
Uten at jeg har sjekket spillet ditt, fordi det krevde en registrering - så kan jeg si at det er fundamentalt galt at klienten skal sende inn score i form av HTTP-POST. I alle fall uten at du f.eks prøver å validere at forespørselen kommer fra formen som den skal komme i fra.
Vis hele sitatet...

Vet, har fjernet Test brukeren. Starta å komme masse dritt fra den.

Men ulempen med at den sender inn resultater i form av HTTP-POST er vel at man kan lage noe nettbyll lignende, å bruke?

Men dette er jo også vanskeligere enn å bruke den metoden nevnt over. Så, så lenge jeg ikke kan få fikset den, så er det vel ikke noe poeng i å fikse denne heller, ettersom det er mye vanskeligere å lage et sånt script?
Ulempen er ikke at noen kan lage "nettbyll", men at noen kan rett og slet sende inn data slik de selv ønsker og lyster det.

Så lenge man kan fikse noe og slippe at noen ødelegger det, er det poeng i det.
Valgfri brukertittel
Kekurikekaka's Avatar
Trådstarter
Nå vet jeg ikke helt hvordan jeg skal kunne fikse dette da.

Jeg regna med å kanskje måtte endre noe i flash filen, noe jeg klarer, men det er ikke dette som er nå.


Jeg regner egentlig med at resultatene som blir posten er en av av disse kodene, mest sannsynlig den nederste:
Kode1:

Kode

// Get score order
$sql->db_select("arcade_games WHERE game_id='".$_POST['gameid']."'", "reverse_score_order");
$result = $sql->db_Fetch();
if ($result['reverse_score_order'] == 1) {
	$scoreorder = 'ASC';
} else {
	$scoreorder = 'DESC';
}
Kode2:

Kode

	    }//  Finally, here's what we do when the flash file sends its final vars to "burn"...
    
        case 'burn': 
            //Do something with the final vars (score = $microone)
            $score = $microone;
            $userid=USERID;
	    $cheating = FALSE;	
            $referer = $_SERVER['HTTP_REFERER'];
	    $prev = parse_url($referer);
            parse_str(
            if(!USER) { 
                $text2 .= "<center><img src='../images/army.gif' alt='army'><br>";
                $text2 .= "Thank you for playing this game! <br>Unfortunatly you do not have permission to submit scores!<br>Register NOW to be able to compete with other users.";
                $text2 .= "<br><br><form><input type='button' value='Play Again!' onClick='history.back()'>";
            if ($samewindow == Yes) {
                $text2 .=  "<input type='button' value='Back to Categories' onClick=\"parent.location='../kroozearcade.php'\"></form></center>";
                $ns->tablerender("Play Game",$text2);
                require_once(FOOTERF);
            } else {
                $text2 .= "<input type='button' value='Close' onClick='window.close()'></form></center>";
                echo $text2;
            }
            exit; 
            } 

            $sql->db_SetErrorReporting(TRUE);

            $text = "";

Men det blir vel litt vanskelig å få spillene til å _ikke_ sende i form av HTTP-POST, ettersom alle resultatene skal bli vist på siden i tekstform.

For at jeg sa skal kunne fjerne dette problemet, så må jeg vel endre i flash filen, å få den til å kontakte databasen direkte?
Da er jo det problemet fjernet.

Eller er det andre enkle muligheter?

EDIT:

Hvem lager alle disse testbrukerene? Det har kommet 3 nye testbrukere nå.

Trenger dere en testbruker, så kan jeg heller lage en felles
Sist endret av Kekurikekaka; 5. oktober 2007 kl. 18:51.
Sceptic, det står i #16..