Cheater in der Onlinehighscore.

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Smily

Betreff: Cheater in der Onlinehighscore.

BeitragSa, März 18, 2006 15:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich habe Folgendes Problem:
Ich habe ein kleines Spiel mit Onlinehighscore gemacht, wo die Punkte per POST daten einfach an ein PHP-script Übermittelt werden. Allerdings habe ich seit letzter Zeit einträge in meiner Highscore, die man unmöglich mit dem Spiel erreicht haben kann. Nach dem es das erste mal passiert war, hatte ich ein Sicherheitsupdate gemacht, womit noch Der Timer mod 255 und dieser wert nochmal in Verschlüsselter Form übetragen werden.

Allerdings gabs einen Tag später schon den Nächsten eintrag, in dem der Verschlüsselte wert auch dem Richtigen entsprach.
Woher wusste der Cheater, welche Daten er unter welchem Namen übertragen muss? Und wie die Beiden vergleichsdaten untereinander verschlüsselt wurden (nagut, die methode ist nicht gerade die beste. Allerdings scheints beim ersten versuch funktioniert zu haben, da auch fehlgeschlagene Versuche geloggt werden würden)

Die einzige Idee, die ich habe, ist dass der Cheater mein Programm Rekompiliert haben muss.
Ist es wirklich das, und wenn ja, was kann ich dagegen machen? Der Treibt mich sonst noch in den Wahnsinn Evil or Very Mad
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
 

Schnuff

BeitragSa, März 18, 2006 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
mach duch noch ne verschlüsselung, der Punkte(je sicherer desto besser)
und schicke sie mit ab Very Happy

(über das script entschlüsselst du es und prüfst, ob beides gleich ist!)

am besten verschlüsselst du irgentwie, mit dem Namen!
Programmers dont die. They gosub without return...

5k41

BeitragSa, März 18, 2006 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
In dem PhP skript steht aber nicht die verschlüsselung oder? sonst könnt ich mir nur noch vorstellen das er per der PhP datei deine Webspace datein rausbekommen hat, dort die Entschlüsselungsdatei geöffnet hat und der Verschlüsselungsprogramm dazu geschrieben hat (oder sich einfach direkt darüber eingetragen hat)
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image
 

furbolg

BeitragSa, März 18, 2006 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
5k41 hat Folgendes geschrieben:
In dem PhP skript steht aber nicht die verschlüsselung oder? sonst könnt ich mir nur noch vorstellen das er per der PhP datei deine Webspace datein rausbekommen hat, dort die Entschlüsselungsdatei geöffnet hat und der Verschlüsselungsprogramm dazu geschrieben hat (oder sich einfach direkt darüber eingetragen hat)


Viel Ahnung von PHP haste nicht oder ? Wenn der Cheater nicht das Passwort für FTP weiss kommt er nicht an das PHP Script ran, da es immer ausgeführt wird und er nur eine generierte HTML Seite bekommt.

Benutz als User Agent den Namen deines Spiel und überprüfe das im PHP Script, wenn der Cheater jetzt nur IE / Mozilla nutzt wird die eingabe verweigert. Nun muss er sich selbst per Winsock sowas basteln.

Smily

BeitragSa, März 18, 2006 16:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein.
In der PHP datei steht nichts von der Entschlüsselung drinne. Die daten werden einfach in die Highscore eingetragen.

Ich überprüfe die Daten von Hand, wenn ich zweifel bekomme.

Ich hab mir das mal durchgerechnet. Bei den Punkten, die eingetragen wurden, müsste er min. 3t0 Sd gespielt haben. Und das ist ein wenig viel Very Happy

Also gehe ich davon aus, dass das Spiel Rekombiliert wurde. Da alle ansätze beim ersten mal gefunzt hatten.

vlt. hat der das spiel ja so eingestellt, dass er ein "paar" mehr punkte für einen abschuss bekommt.

Wie kann ich meine Datei gegen sowas schützen?

€dit: furbolg hat schneller geantwortet als ich. Wie kann ich den User Agent per BB übertragen?
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

5k41

BeitragSa, März 18, 2006 16:56
Antworten mit Zitat
Benutzer-Profile anzeigen
@Furbolg:
stimmt aber soviel wie du mir grad "erklärt" hast wusst ich auch scon vorher ich meinte ja das er vielleicht durch den PhP skript die Userdaten des FTP servers herraus bekommen hat, und sich dann dort eingetragen/ein gegen programm geschrieben hat! Mit Webspace dateien meinte ich Webspace Account daten oder wie man das auch nennen will... der ausdruck war n bissl falsch gewählt ich weiss

~Edit~
Um welches Spiel geht es denn? Würde mich gerne auch mal daran versuchen und falls ichs hinbekommen sollte dich dann aufklären Wink
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

Smily

BeitragSa, März 18, 2006 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
http://michael.hostgen24.de/ATHO/KillBill.php
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

Hubsi

BeitragSa, März 18, 2006 18:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Er hat die Punktezahl wahrscheinlich im Ram manipuliert Very Happy Die beste Verschlüsselung ist für die Katz wenns das Programm selbst abschickt. Um das zu verhindern könnte man in einer zweiten Variable aus dem richtigen Punktestand einen wirren Wert errechnen und die beiden immer wieder mal vergleichen. Passt es nicht zusammen weißt Du ja was los ist Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

chieftequila

BeitragSa, März 18, 2006 22:06
Antworten mit Zitat
Benutzer-Profile anzeigen
öhm ich hätte das problehm volgendermassen gelöst und zwar so
du speicherst deinen Score immer verschlüsselt im speicher ab und zwar so.

irgend ein prefix + MD5(Score)

das prefix ist irgend ein von dir festgelegter code
der verhindert das das entschlüssel des Scores nicht zu einfach ist sorge dafür das das prefix um die 5 stellen gross ist und NICHT IN EINER VARIABEL STEHT da es sonst auch im speicher abgelegt wird und ausgelesen werden kann.

wen du diesen code jetzt über mittelst und dein PHP script volgendes tut
Code: [AUSKLAPPEN]

<?php
   Code = $_GET['PostVariabel'];
   Prefix = "Prefix";
   a=0;
   for(b=0;b=1;a++){
      if(Code=="Prefix".md5(a)){
         HIER KOMMT DAS SQL STATEMENT ZUM UPLOAD
         b=1
      }//if
      if(a==IRGEND EIN WERT DER NICHT MEHR MÖGLICH IST){
         b=1
      }//endif
   }//for
?>


soltest du solche hacks in zukunft verhindern könen

Nachteile
Das PHP Script braucht ein bischen um den score zu entschlüsseln
wen der score zu hoch ist kann es auch passieren das der server die Forschleife beendet.
auserdem darf der score und das prfix nicht länger alls 13 stellen sein

Vorteile
Ziemlich sicher da das knacken von MD5 Hashes recht schwer ist und man mindestens den 5 stelligen Prefix knacken muss (score ist ja bekannt) und das dauert recht lange (ich habe 3 tage gebraucht um einen 4 stelligen zu knacken und das mit einem cluster system)


ICH HABE JEDOCH KEINE AHNUNG OB ES SCHON EINE B3D LIBARY FÜR MD5 GIEBT könnte mir gut vorstellen das es die nicht giebt das das md5 verschlüsseln recht heftig und kompliziert ist Smile

Hubsi

BeitragSa, März 18, 2006 22:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Sache hat neben der Rechenzeit des php-Scripts noch den Haken das er mit dem md5-Hash nicht rechnen kann Very Happy Sprich er kann nicht einfach mal 50 Punkte addieren wenn der Spieler einen Treffer landet Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

chieftequila

BeitragSa, März 18, 2006 22:17
Antworten mit Zitat
Benutzer-Profile anzeigen
hey hab noch was für deine seite

was hatt 3 scharmhare und ist 20 meter lang ????'

die erste Reie eines Tokiohotel konzert

Chester

BeitragSa, März 18, 2006 23:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich glaube Decompilieren ist ziemlich Käse, ein gescheiter Sniffer tut Wunder. Wink

Mit dem Sniffer kommt man zu folgendem Ergebnis:
Zitat:

POST http://michael.hostgen24.de/ATHO/KillBill_send.php HTTP/1.1

Host: Host
Referer: Referer
Content-type: application/x-www-form-urlencoded
Content-length: 58
Connection: close

punkte=2219&name=ChEsTeR&ProgVersion=1.1&timer=46&Verg=209



Somit kann man ganz einfach mit
Code: [AUSKLAPPEN]

tcp=Opentcpstream("http://michael.hostgen24.de",80)

WriteLine tcp,"POST http://michael.hostgen24.de/ATHO/KillBill_send.php HTTP/1.1"
WriteLine tcp, "Host: Host"
WriteLine tcp, "Referer: Referer"
WriteLine tcp, "Content-type: application/x-www-form-urlencoded"
WriteLine tcp, "Content-length: 58"
WriteLine tcp, "Connection: close"
WriteLine tcp, ""
WriteLine tcp, "punkte=999999999&name=OWNED&ProgVersion=1.1&timer=47&Verg=210"


Für timer und Verg einfach BruteForcen und schon hat man deine Highscore geknackt. Ich sehe darin keine wirkliche Verschlüsselung^^

MfG
ChEsTeR
 

dark19

Gast

BeitragSo, März 19, 2006 9:48
Antworten mit Zitat
ChEsTeR hat Folgendes geschrieben:
Also ich glaube Decompilieren ist ziemlich Käse, ein gescheiter Sniffer tut Wunder. Wink

Mit dem Sniffer kommt man zu folgendem Ergebnis:
Zitat:

POST http://michael.hostgen24.de/ATHO/KillBill_send.php HTTP/1.1

Host: Host
Referer: Referer
Content-type: application/x-www-form-urlencoded
Content-length: 58
Connection: close

punkte=2219&name=ChEsTeR&ProgVersion=1.1&timer=46&Verg=209



Somit kann man ganz einfach mit
Code: [AUSKLAPPEN]

tcp=Opentcpstream("http://michael.hostgen24.de",80)

WriteLine tcp,"POST http://michael.hostgen24.de/ATHO/KillBill_send.php HTTP/1.1"
WriteLine tcp, "Host: Host"
WriteLine tcp, "Referer: Referer"
WriteLine tcp, "Content-type: application/x-www-form-urlencoded"
WriteLine tcp, "Content-length: 58"
WriteLine tcp, "Connection: close"
WriteLine tcp, ""
WriteLine tcp, "punkte=999999999&name=OWNED&ProgVersion=1.1&timer=47&Verg=210"


Für timer und Verg einfach BruteForcen und schon hat man deine Highscore geknackt. Ich sehe darin keine wirkliche Verschlüsselung^^

MfG
ChEsTeR


Zu umständlich einfach mit nem memory editor dran gehen und punkte bischen hochmachen und zu ende spielen
 

naibaf7

BeitragSo, März 19, 2006 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube das die Punkte mit nem Editor wie ArtMoney oder MemHack manipuliert wurden. Hatte auch schon mal probleme mit sowas. In diesem fall würde ich nicht den Sendevorgang sondern die Punktezählung verschlüsseln. Eventuell reicht sogar bei der Punktezählung sowas wie das die Punktezahl die angezeigt wird nicht die gleiche ist wie die gezählte z.B. Print Punkte * 3 oder Question

Sorry falls ich irgendwas falsch verstanden haben sollte Smile

EDIT: Hab mir das Game auch mal kurz angeschaut. Wirklich gut Very Happy doch kein bischen sicherheit dran. geht nähmlich sehr gut mit dem bearbeiten der Punkte mit ArtMoney Wink
My Pc:
MSI 790FX-GD70, Phenom X4 955BE, 2x2GB DDR3-1600, 8800GTS-512, WD 640GB + Samsung 160GB, Scythe Kaze Master
 

ke^kx

BeitragSo, März 19, 2006 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Lol, das ist so gemein... Warum versaut ihr hier den Highscore der Leute?

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM
 

naibaf7

BeitragSo, März 19, 2006 17:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Laughing wieso gemein ??

Is doch logo das man ein bisschen fair sein will zu den Leuten die nicht Cheaten oder Razz
My Pc:
MSI 790FX-GD70, Phenom X4 955BE, 2x2GB DDR3-1600, 8800GTS-512, WD 640GB + Samsung 160GB, Scythe Kaze Master
 

dark19

Gast

BeitragSo, März 19, 2006 17:18
Antworten mit Zitat
Jiriki hat Folgendes geschrieben:
Lol, das ist so gemein... Warum versaut ihr hier den Highscore der Leute?

Jiriki


Das ist Sicherheitshacken Wink
 

ke^kx

BeitragSo, März 19, 2006 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo... Jetzt warten wir nurnoch darauf, dass Smily0412 eine Verbesserung reinbringt Wink

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM
 

dark19

Gast

BeitragSo, März 19, 2006 17:25
Antworten mit Zitat
Ich habe eine Idee wie du die punkte sicherer machst
1:du merkst die die punkte am anfang der schleife
2:wenn ein Sänger getroffen wurde die variable sicherheit auf 1
3: am ende der schleife über prüfen ob die punkte sich erhöt haben und wenn sicher heit 1 ist wird sicherheit wieder auf 0 gesetzt und wenn nicht dann ist game over Very Happy

______
ps:Rechtschreibfehler könnt ihr bei ebay verkaufen
 

naibaf7

BeitragSo, März 19, 2006 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
@dark19

Hehe Laughing ^^bringt leider gar nichts, da ein programm wie ArtMoney, wenn man auf Freeze schaltet den wert genau bei einer Punkteveränderung den wert auf einen höheren Freezt (habs mal getestet Razz )
My Pc:
MSI 790FX-GD70, Phenom X4 955BE, 2x2GB DDR3-1600, 8800GTS-512, WD 640GB + Samsung 160GB, Scythe Kaze Master

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group