Folgendes Problem:
Seit geraumer Zeit (ja, es gibt immer diese Cheatwellen, erst hat es nur ein kleiner Kreis, dann wird es immer bekannter im Underground *fg*) hat man in Verdacht, das gewisse Spieler Bots nutzen, um bestimmte Spielfunktionen zu übernehmen.
Seitdem wir Überprüfung mittels Session/Get eingeführt haben für bestimmte Funktionen, sind Reloads a la Opera-Auto-Timer tabu.
Jetzt kommen SocketBots, die über die gespeicherte SessionID und Socketanfragen (bsp. in PHP) die Seite nach dem GET Paramater abfragen und bei bestimmten Seiteninhalten eine Funktion ausführen).
Gibt es generelle Verbesserungsmöglichkeiten? Hat wer das gleiche Problem und eine Lösung gefunden?
Als erstes würde ein Logging bestimmter Sitationen ausreichen - schlussendlich ist das Ziel, dies zu erschweren.
Emulierte Browserclients
gepostet vor 19 Jahre, 10 Monate von knalli
gepostet vor 19 Jahre, 10 Monate von Crafty-Catcher
Jup das wird schwer wenn die Bots quasi die Maus des Users steuern.
-Wenn die Bots blöd sind und Operationen jeden tag zur exakt gleichen Zeit durchführen könnte man über Statistiken etwas herausfinden.
-Oder man setzt eine maximale Klickgeschwindigkeit ein - so das wenn man schneller klickt ne Error Page bekommt. Das hilft aber nur wenn die Bots recht dämlich geproggt sind.
-Was hilft ist den Nutzen von Bots zu minimieren. D.h. das wenn man jetzt z.B. ein Weltraumspiel hat und man um auf jeden Plani was zu bauen erst "Plani wechseln -> bauen" durchführen muss hilft ein Skript mit dem die User übersichtlich auf allen Planis mit nur einem "bauen" Button gleichezeitig bauen können. Wenn man das ganze noch für den Flotten und Deff Bau implementiert senkt das die Motivation um ein kleines bißchen. Diese Idee könnte man dann mit Bauschleifen usw. weiterführen bis man merkt das ein User sich nur ca. 1 mal die Woche einloggen braucht *g*
Wenn man den anderen weg gehen möchte und den ganzen Kram nicht implementieren will
-kann man noch Pseude Code auf der Seite verteilen falls man Probleme mit Bots hat die erst die Seite auslesen. Dabei muss man beachten das dieser Code möglichst genauso aussieht wie die Formular Angaben. Für blöde Bots halt auskommentierter html Code. Bis dann die Bot entwickler da wieder mithalten.
-Um Bots zu verhindern die die ganzen Post Get Sachen alle schon gespeichert haben, kann man die Dateinamen dynamisch verändern - z.B. jede Nacht per CronJob und Konfigurationsdatei.
-Für Bots die wirklich die Maus bewegen kann man dynamisch die Position von Buttons und Links verändern.
Aber im endeffekt muss man die ganze Zeit hinterher entwickeln - schon recht nervig.
-Wenn die Bots blöd sind und Operationen jeden tag zur exakt gleichen Zeit durchführen könnte man über Statistiken etwas herausfinden.
-Oder man setzt eine maximale Klickgeschwindigkeit ein - so das wenn man schneller klickt ne Error Page bekommt. Das hilft aber nur wenn die Bots recht dämlich geproggt sind.
-Was hilft ist den Nutzen von Bots zu minimieren. D.h. das wenn man jetzt z.B. ein Weltraumspiel hat und man um auf jeden Plani was zu bauen erst "Plani wechseln -> bauen" durchführen muss hilft ein Skript mit dem die User übersichtlich auf allen Planis mit nur einem "bauen" Button gleichezeitig bauen können. Wenn man das ganze noch für den Flotten und Deff Bau implementiert senkt das die Motivation um ein kleines bißchen. Diese Idee könnte man dann mit Bauschleifen usw. weiterführen bis man merkt das ein User sich nur ca. 1 mal die Woche einloggen braucht *g*
Wenn man den anderen weg gehen möchte und den ganzen Kram nicht implementieren will
-kann man noch Pseude Code auf der Seite verteilen falls man Probleme mit Bots hat die erst die Seite auslesen. Dabei muss man beachten das dieser Code möglichst genauso aussieht wie die Formular Angaben. Für blöde Bots halt auskommentierter html Code. Bis dann die Bot entwickler da wieder mithalten.
-Um Bots zu verhindern die die ganzen Post Get Sachen alle schon gespeichert haben, kann man die Dateinamen dynamisch verändern - z.B. jede Nacht per CronJob und Konfigurationsdatei.
-Für Bots die wirklich die Maus bewegen kann man dynamisch die Position von Buttons und Links verändern.
Aber im endeffekt muss man die ganze Zeit hinterher entwickeln - schon recht nervig.
gepostet vor 19 Jahre, 10 Monate von Mot
hm jeder Schutz schränkt die Spielbarkeit ein - und sorgt dafür das der Cheater sich was neues ausdenkt.
Die beste Schutz wäre die Sache mit den Sicherheitscode auf Grafiken - und
das dieses bei jedem Seitenaufbau abgefragt wird - nur wer hat da noch Lust zu spielen?
Die beste Schutz wäre die Sache mit den Sicherheitscode auf Grafiken - und
das dieses bei jedem Seitenaufbau abgefragt wird - nur wer hat da noch Lust zu spielen?
gepostet vor 19 Jahre, 10 Monate von knalli
Nun ja.. ich kann das Problem ja mal an einem Beispiel erörtern:
a) es gibt den Boteneingang, der Angriffe auflistet
b) es gibt eine Einstellseite für Taktiken (u.a. einen Fluchtwert für die Health)
c) es gibt eine Schlafen/verarzten-Seite
Und es geht auch nicht um Mausbeweger, das ließe sich ja irgendwie machen.. nein, es geht um direkte Anfragen.
Theoretisch könnte man sowas auch auf dieses Forum portieren: Ich frage alle 5 min per PHP-Script ab, ob User XY einen Thread neu aufgemacht hat (search) und wenn dies der Fall ist, dann schreibe ich eine neue antwort (put). Das ist jetzt totaler Schwachsinn, aber zeigt die Funktion.
Einzig alleine eine Codemaßnahme käme mir auch in den Sinn - das Problem ist, dass es ziemlich umständlich ist. Wir hatten schon Schwierigkeiten, dies am Login und an 2 anderen Funktionen durchzuboxen
Ich habe bereits Pseudocode versucht - leider seit Stunden ohne Erfolg.
a) es gibt den Boteneingang, der Angriffe auflistet
b) es gibt eine Einstellseite für Taktiken (u.a. einen Fluchtwert für die Health)
c) es gibt eine Schlafen/verarzten-Seite
Und es geht auch nicht um Mausbeweger, das ließe sich ja irgendwie machen.. nein, es geht um direkte Anfragen.
Theoretisch könnte man sowas auch auf dieses Forum portieren: Ich frage alle 5 min per PHP-Script ab, ob User XY einen Thread neu aufgemacht hat (search) und wenn dies der Fall ist, dann schreibe ich eine neue antwort (put). Das ist jetzt totaler Schwachsinn, aber zeigt die Funktion.
Einzig alleine eine Codemaßnahme käme mir auch in den Sinn - das Problem ist, dass es ziemlich umständlich ist. Wir hatten schon Schwierigkeiten, dies am Login und an 2 anderen Funktionen durchzuboxen
Ich habe bereits Pseudocode versucht - leider seit Stunden ohne Erfolg.
gepostet vor 19 Jahre, 10 Monate von knalli
dynamische Dateinamen:
- bringen nichts! Warum? Weil irgendwo muss eine Auflistung der aktuellen Dateinamen sein, und damit ist das ganze wieder hinfällig
- bringen nichts! Warum? Weil irgendwo muss eine Auflistung der aktuellen Dateinamen sein, und damit ist das ganze wieder hinfällig
gepostet vor 19 Jahre, 10 Monate von Crafty-Catcher
dyn dateinamen bringens wenn die anfragen per get und post direkt auf die entsprechenden skripte zeigen und die bots diese auch hardgecodet haben.
wenn die bots schon weiter entwickelt sind dann natürlichnicht deswegen sage ich ja man muss dauernt hinterherproggen
mfg crafty
wenn die bots schon weiter entwickelt sind dann natürlichnicht deswegen sage ich ja man muss dauernt hinterherproggen
mfg crafty
gepostet vor 19 Jahre, 10 Monate von knalli
Botscript:
Schritt 1: Frage Seite 1 ab.. parse Infos raus, die ich haben will.
Schritt 2: Setze Linkputs für Seite und/oder Seite 2
Notwendige Sessionvariablen und GETs kriege ich aus Schritt 1.
Im Grunde kann ich nur die Logik von dem Bot durcheinander bringen, nur weiß ich nicht wie :roll:
Schritt 1: Frage Seite 1 ab.. parse Infos raus, die ich haben will.
Schritt 2: Setze Linkputs für Seite und/oder Seite 2
Notwendige Sessionvariablen und GETs kriege ich aus Schritt 1.
Im Grunde kann ich nur die Logik von dem Bot durcheinander bringen, nur weiß ich nicht wie :roll:
gepostet vor 19 Jahre, 10 Monate von Mot
es gleibt nur die Bildabfrage:
für eine Codeanalyse ovn Html ist nur angegeben das da ein Bild ist, und nur ein Menschliches Auge erkennt die Ziffern
(damit das Bild auch nicht automatisch überprüft wird sind diese oft krum und schief geschrieben)
um sicherzugehen das sich nicht ein Mensch einloggt und dann den script weitermachen lässt müssten diese Abfragen ständig kommen.
für eine Codeanalyse ovn Html ist nur angegeben das da ein Bild ist, und nur ein Menschliches Auge erkennt die Ziffern
(damit das Bild auch nicht automatisch überprüft wird sind diese oft krum und schief geschrieben)
um sicherzugehen das sich nicht ein Mensch einloggt und dann den script weitermachen lässt müssten diese Abfragen ständig kommen.
gepostet vor 19 Jahre, 10 Monate von HSINC
@mot, es gibt im inet genügend libs die text aus bildern extrahieren. und die sind teilweise schon besser als das menschliche auge. und wenn man es zu schwer macht können es gewisse leute (mit sehschwächen etc) auch nicht mehr lesen. bilder mit code sind kein sicher schutz mehr
gepostet vor 19 Jahre, 10 Monate von Anomar
"Die Mauszeigerbots" sind meiner Beobachtung nach gar nicht so das riesige Problem im Moment:
Derzeit stehen wir einer neuen Generation "Skriptkiddies" mit fundiertem Wissen gegenüber, die halbautomatische Bots nutzen, um ganze Allianzen zu spielen (30 Accounts und mehr).
Dazu wird einfach eine zentrale Datenbank genutzt, in die jeder angeschlossene Client seine Informationen spielt. Aus dieser Datenbank heraus werden die einzelnen Clients mit Befehlen versorgt, die sie dann ausführen.
Durch die Masse an Accounts wird versucht, die Onlinezeit eines Clients auf ein "normales Maß" zu reduzieren. Die Analyse eines solchen Netzwerkes ist sehr schwer und vor allem extrem zeitraubend.
Tritt eine unvorhergesehene Konstellation auf (z.b. Sicherheitscode) wird der aktive Operator informiert, der dann entsprechend reagiert (Code abtippt) - der Operator kriegt die Seite des Clients angezeigt (die wird in die DB gespeichert).
So sind relativ wenig Personen in der Lage, ganze Allianzen unauffällig rund um die Uhr zu spielen.
Dieses "DGP-Bot-System" (Distributed Game Play - Bot -> so habe ich das mal getauft) verfolge ich seit ca. einem 3/4 Jahr. Die Versionen werden dabei immer rafinierter, und es wird zunehmend schwerer sie zu erkennen.
Basieren tut das ganze auf einer normalen Version von apache in Verbindung mit php, perl und mysql. Das ganze gibts im Netz als "Dau-Packet" zum installieren per Doppelklick (zu finden bei google: "apache XAMPP"). Verteilt werden dann noch ein paar Skripte, die jeweils auf das Spiel angepaßt werden. Noch wird das System von einer relativ kleinen Gruppe eingesetzt - aber es verbreitet sich.
Das gemeine an dem System ist, daß zur Tarnung auch reguläre Spieler genutzt werden. Diesen wird erklärt, daß es "nur" Accountsharing wäre, und das (weil man so gut ist und man auf alles aufpasst) das nicht auffallen würde. So hat man zusätzlich zu den reinen Bot-Accounts auch noch eine Anzahl Accounts wozu es einen realen Mitspieler gibt, der aus allen Wolken fällt wenn man ihn blockt/löscht wegen des Bots. Das kommt dann immer raus, wenn der aussagt, das er "nur" seine Accountdaten weitergegeben hat und das doch "nur" Accountsharing sei.
Ich habe bereits über 150 Stunden mit der Analyse des ganzen verbracht und unser MOD-Team zusammen nicht weniger.
Weiterhin werden inzwischen auch verschiedene Varianten der "Multiverschleierung" genutzt, die es nahezu unmöglich machen, diese noch zu erkennen (Stichwort VNC).
Der Ansatz Multis uninteressant zu machen ist zwar generell nicht schlecht, scheitert aber meines Erachtens an folgendem Punkt:
In dem Moment wo man ein "Team-Spiel" ermöglichen will ist es immer interessant einen Multi zu haben. Und es dürften die wenigsten Spiele sein, die nicht auf dem Team-Gedanken beruhen.
Generell bin ich auf jeden Fall interessiert, eine "Task-Force" verschiedener Spielemacher zu gründen, in der wir gemeinsam Lösungsstrategien entwickeln. Eventuell ist GN hierzu ja auch die richtige Plattform.
Derzeit stehen wir einer neuen Generation "Skriptkiddies" mit fundiertem Wissen gegenüber, die halbautomatische Bots nutzen, um ganze Allianzen zu spielen (30 Accounts und mehr).
Dazu wird einfach eine zentrale Datenbank genutzt, in die jeder angeschlossene Client seine Informationen spielt. Aus dieser Datenbank heraus werden die einzelnen Clients mit Befehlen versorgt, die sie dann ausführen.
Durch die Masse an Accounts wird versucht, die Onlinezeit eines Clients auf ein "normales Maß" zu reduzieren. Die Analyse eines solchen Netzwerkes ist sehr schwer und vor allem extrem zeitraubend.
Tritt eine unvorhergesehene Konstellation auf (z.b. Sicherheitscode) wird der aktive Operator informiert, der dann entsprechend reagiert (Code abtippt) - der Operator kriegt die Seite des Clients angezeigt (die wird in die DB gespeichert).
So sind relativ wenig Personen in der Lage, ganze Allianzen unauffällig rund um die Uhr zu spielen.
Dieses "DGP-Bot-System" (Distributed Game Play - Bot -> so habe ich das mal getauft) verfolge ich seit ca. einem 3/4 Jahr. Die Versionen werden dabei immer rafinierter, und es wird zunehmend schwerer sie zu erkennen.
Basieren tut das ganze auf einer normalen Version von apache in Verbindung mit php, perl und mysql. Das ganze gibts im Netz als "Dau-Packet" zum installieren per Doppelklick (zu finden bei google: "apache XAMPP"). Verteilt werden dann noch ein paar Skripte, die jeweils auf das Spiel angepaßt werden. Noch wird das System von einer relativ kleinen Gruppe eingesetzt - aber es verbreitet sich.
Das gemeine an dem System ist, daß zur Tarnung auch reguläre Spieler genutzt werden. Diesen wird erklärt, daß es "nur" Accountsharing wäre, und das (weil man so gut ist und man auf alles aufpasst) das nicht auffallen würde. So hat man zusätzlich zu den reinen Bot-Accounts auch noch eine Anzahl Accounts wozu es einen realen Mitspieler gibt, der aus allen Wolken fällt wenn man ihn blockt/löscht wegen des Bots. Das kommt dann immer raus, wenn der aussagt, das er "nur" seine Accountdaten weitergegeben hat und das doch "nur" Accountsharing sei.
Ich habe bereits über 150 Stunden mit der Analyse des ganzen verbracht und unser MOD-Team zusammen nicht weniger.
Weiterhin werden inzwischen auch verschiedene Varianten der "Multiverschleierung" genutzt, die es nahezu unmöglich machen, diese noch zu erkennen (Stichwort VNC).
Der Ansatz Multis uninteressant zu machen ist zwar generell nicht schlecht, scheitert aber meines Erachtens an folgendem Punkt:
In dem Moment wo man ein "Team-Spiel" ermöglichen will ist es immer interessant einen Multi zu haben. Und es dürften die wenigsten Spiele sein, die nicht auf dem Team-Gedanken beruhen.
Generell bin ich auf jeden Fall interessiert, eine "Task-Force" verschiedener Spielemacher zu gründen, in der wir gemeinsam Lösungsstrategien entwickeln. Eventuell ist GN hierzu ja auch die richtige Plattform.
gepostet vor 19 Jahre, 10 Monate von Mot
Nun ein Automatisches System gegen Multis oder Bots wird nichts helfen,
denn irgendwann stehen wir an einen Punkt wo es unmöglich wird zu erkennen ob es ein Mensch, eine Menschengruppe oder ein Bot ist der hier mitspielt.
denn irgendwann stehen wir an einen Punkt wo es unmöglich wird zu erkennen ob es ein Mensch, eine Menschengruppe oder ein Bot ist der hier mitspielt.
gepostet vor 19 Jahre, 10 Monate von Anomar
Ohne Zweifel - nur werden immer wieder Fehler unterlaufen, die so ein Netzwerk verraten - und aufgrund der Erfahrung, daß solche Netzwerke immer auf meheren Spielen laufen, ergeben sich Synergie-Effekte (jaaaa - laßt uns Bullshit-Bingo spielen!), die einen gemeinsamen Kampf ermöglichen würden.
//Edit: Im anderen fall können wir nämlich den Kampf gleich verloren geben, denn auf Dauer wird ein Spiel alleine sich nicht gegen diese Mechanismen wehren können.
//Edit: Im anderen fall können wir nämlich den Kampf gleich verloren geben, denn auf Dauer wird ein Spiel alleine sich nicht gegen diese Mechanismen wehren können.
gepostet vor 19 Jahre, 10 Monate von knalli
VNC.. ohja. Habe sogar schon eine Anmeldemaske für VNC bei einer tonline-dyn-ip gehabt, ist natürlich nur Zufall.. auch wenn ich aus sicherer Quelle weiß, dass derjenige es macht
Sollte sich so eine AG zusammenfinde, bin ich auf jeden Fall dabei.
Ein Coder hatte SessionID-Wechsel im Sinn. Das würde zwar das Scripten erschweren (aber nicht verhindern), allerdings gibts da anscheinend Probleme mit der Fensterverwaltung (mehrere Fenster, eingebettete dynamische Bilder).
Sollte sich so eine AG zusammenfinde, bin ich auf jeden Fall dabei.
Ein Coder hatte SessionID-Wechsel im Sinn. Das würde zwar das Scripten erschweren (aber nicht verhindern), allerdings gibts da anscheinend Probleme mit der Fensterverwaltung (mehrere Fenster, eingebettete dynamische Bilder).
gepostet vor 19 Jahre, 10 Monate von HaSkEeR
also ich hab einfach sehr gut funzenden logincode und net allzu lange login session länge...
gepostet vor 19 Jahre, 10 Monate von Anomar
HaSkEeR: Schön für Dich - nur hilft Dir das nix wie oben beschrieben.
gepostet vor 19 Jahre, 10 Monate von Gambler
Also was ich am effektivsten erachte ist beim Login ein Captcha Bild und die Session so einstellen das man selbst wenn ma agiert nach max 1h oder so rausfliegt. So müsste man jede Stunde einloggen und dem Bot die ID geben. Da wär dieser nicht mehr wirklich profitabel, da er nachts usw. nicht alleine arbeiten kann.
gepostet vor 19 Jahre, 10 Monate von knalli
Nein, ihr 2 habt die Problematik nicht verstanden.
Ein Script auf einem Server (reicht simples PHP, also XAMPP) ruft alle paar Minuten (kann man sogar nen Zufall einbauen) ein Script auf, welches mittels Header ein Cookie/SessionIdent üvermittelt; natürlich wird dann (ggf) die Session wie oben schon geschrieben verlängert.
Zusätzlich fragt dieses Script ein Ereignis ab (ist Textstring XYZ vorhanden?), und führt ggf andere Scriptab/anfragen aus.
Das ganze funktioniert mit simplen Scripts; schlau eingebaut zerstört es simple Taktiken und macht Spielen unmöglich und unfair.. ich bin nahebei zu sagen, es ist sogar schlimmer als ein Multi, der einfach nur 2-3 Accs hat.
Ein Script auf einem Server (reicht simples PHP, also XAMPP) ruft alle paar Minuten (kann man sogar nen Zufall einbauen) ein Script auf, welches mittels Header ein Cookie/SessionIdent üvermittelt; natürlich wird dann (ggf) die Session wie oben schon geschrieben verlängert.
Zusätzlich fragt dieses Script ein Ereignis ab (ist Textstring XYZ vorhanden?), und führt ggf andere Scriptab/anfragen aus.
Das ganze funktioniert mit simplen Scripts; schlau eingebaut zerstört es simple Taktiken und macht Spielen unmöglich und unfair.. ich bin nahebei zu sagen, es ist sogar schlimmer als ein Multi, der einfach nur 2-3 Accs hat.
gepostet vor 19 Jahre, 10 Monate von Sogil
Was haltet ihr von der folgenden Idee?
Ein Spieler darf pro Tag nicht mehr als 500 Klicks in dem Spiel machen. Wenn er diese Grenze überschreitet, wird er ausgeloggt, und kann für diesen Tag nicht mehr spielen. Für jeden normalen Spieler sollte das langen, aber bots, die ständig die Nachrichten seite refreshen könnten so nicht mehr betrieben werden.
Wieviel ein Spieler jeden Tag für Klicks macht, das hab ich allerdings noch nicht überprüft.
Ein Spieler darf pro Tag nicht mehr als 500 Klicks in dem Spiel machen. Wenn er diese Grenze überschreitet, wird er ausgeloggt, und kann für diesen Tag nicht mehr spielen. Für jeden normalen Spieler sollte das langen, aber bots, die ständig die Nachrichten seite refreshen könnten so nicht mehr betrieben werden.
Wieviel ein Spieler jeden Tag für Klicks macht, das hab ich allerdings noch nicht überprüft.
gepostet vor 19 Jahre, 10 Monate von weltenraum
Sowas hatte ich auch vor. Nur werden dann die Intensivspieler ausgebremst. Wenn man damit leben kann, denke ich sollte sowas die Bots einschränken.
gepostet vor 19 Jahre, 10 Monate von Mot
Ein Variante wäre wenn wir hier die IPs (und das dazugehörige Datum)
eines Überführten Multis/Botusers posten. Falls er noch bei anderen Browsegames aktiv ist kann man anhand das Datums und der IP den User feststellen - und ihn so, ewtl. samt email für alle Browsergames
hier sperren.
Klar kann man sich neu einloggen, anmelden - aber ne Abschreckende Sache wäre das vielleicht....
Kurz:
eine schwarze Liste
eines Überführten Multis/Botusers posten. Falls er noch bei anderen Browsegames aktiv ist kann man anhand das Datums und der IP den User feststellen - und ihn so, ewtl. samt email für alle Browsergames
hier sperren.
Klar kann man sich neu einloggen, anmelden - aber ne Abschreckende Sache wäre das vielleicht....
Kurz:
eine schwarze Liste
gepostet vor 19 Jahre, 10 Monate von Qmaster
Original von Mot
Ein Variante wäre wenn wir hier die IPs (und das dazugehörige Datum)
eines Überführten Multis/Botusers posten. Falls er noch bei anderen Browsegames aktiv ist kann man anhand das Datums und der IP den User feststellen - und ihn so, ewtl. samt email für alle Browsergames
hier sperren.
Klar kann man sich neu einloggen, anmelden - aber ne Abschreckende Sache wäre das vielleicht....
Kurz:
eine schwarze Liste
Da gibts ein kleines Datenschutzproblem. IP´s und Emails dürfen nicht ohne weiteres bekanntgeben werden. Aber schlecht wäre es nicht.
gepostet vor 19 Jahre, 10 Monate von Mot
das stimmt, ist aber leicht zu lösen in dem man seine Regeln entsprechend ändert und die spieler zustimmten das zu diesem Zwecke diese Daten weiter gegeben werden dürfen.
gepostet vor 19 Jahre, 10 Monate von knalli
Damit kriegt man aber auch nur globale Machenschaften entdeckt, nicht "regionale".
gepostet vor 19 Jahre, 10 Monate von Mot
Es wäre nur ein Abschreckungspunkt es einfach gar nicht zu versuchen, wer jetzt entdeckt wurde bei einen ....sagen wir beliebigen Weltraumstrategiespiel... der wird nach Entdeckung einfach zum nächsten gehen. Was er nicht kann wenn wir alle von dieser Entdeckung erfahren und er auf ne schwarze Liste kommt.
gepostet vor 19 Jahre, 10 Monate von Gambler
Man kann die Session doch nach x minuten zerstören, da hilft refreshen goar nix. Einfach loginzeit loggen und wenn die max zeit überschritten wurde wird die session destroyt. Login mit Captcha pic und gut is. Ich hasse es mich zu wiederholen^^
gepostet vor 19 Jahre, 10 Monate von Anomar
Kann ich nur unterschreiben Gambler: Ich hasse mich zu wiederholen.
Deine Lösung hilft 0,0nix gegen Bots, zumindest nicht gegen Bots der Klasse wie ich es beschrieben habe.
Deine Lösung hilft 0,0nix gegen Bots, zumindest nicht gegen Bots der Klasse wie ich es beschrieben habe.
gepostet vor 19 Jahre, 10 Monate von KoMtuR
Jeder Programmierlaie könnte Bots schreiben. Ich habe mir mal Delphi angesehen und da so einige Sachen, wie man Bots programmieren kann, festgestellt.
Es gibt ein AddIn von Microsoft, was ein Internet Explorer in Ligh-Version darstellt. Nennt sich TWebBrowser. Damit haste fast alles was man zum Botschreiben brauch. Durch die mitgelieferte DOM kann man wunderhübsch auf einzelne Elemente zugreifen. Keine Mausbeweger oder jegliches.
Per "document.links[0].click" (oder so ähnlich) wird dann dem Script vorgespielt, dass der "user" auf den Link geklickt hätte. Auch mit Formularen kann man damit einfachste dinge anstellen, womit das Script nicht nachprüfen kann, was da nun sache ist.
Session und Cookies werden gespeichert, weil das Grundsystem Internet Explorer ist. Für die Captcha-Bilder gibts sicherlich (hab noch nicht gesucht) ordentliche OCR-AddIns. Also wenn man die ordentlichen Plugins hat ist dies kein Problem.
Nun vielleicht Ansätze zur Bekämpfung dieser:
Mit Kommentaren gehts schonmal nicht, weil es die DOM-Struktur benutzt und diese Kommentare nicht beachtet. Man könnte nun für die Namen der Inputs immer zufallsgenerierte Namen nehmen und dem Script per Session mitteilen, wo sie die Werte herbekommt. Ist zwar vielleicht für billige Bots effektiv, aber man kann dies ja rausbekommen.
Mit Links und Buttons verschieben ist sinnlos, weil das Programm ja nichtmal die Maus benutzt. Dann kann man vielleicht keine Zahlencode-Abfragen machen, sondern eher logische Abfragen. Zum Beispiel man hat ein Bild mit einer Familie drauf. Nun stellt man dem User die Frage, was der Vater an hat oder welche Haarfarbe er hat. Klar verschwendet der User dann mehr Zeit. Aber dadurch kann man OCR-Programme vergessen. Problem an der Sache sind die Blinden (fragt sich eh wie Blinde Browsergames spielen).
Man könnte auch versuchen durch logische Texte die richtige Antwort der User rauszubekommen.
Das ganze Problem ist aberder Aufwand. Man bräuchte extra Leute, die sich damit beschäftigen.
Um den Bots das auslesen des Quelltextes zu erschweren könnte man doch auch Javascript-verschlüsselung benutzen. Wenn man so 4 oder 5 Techniken hat kann man ja immer variieren. Ok Problem: Javascript hat nicht jeder an.
Also ein Bot zu "bauen" ist net wirklich schwer. Kann man ganz ohne Mousemover fabrizieren und Microsoft hilft einem mit ner ordentlichen DOM dabei auch noch.
Es gibt ein AddIn von Microsoft, was ein Internet Explorer in Ligh-Version darstellt. Nennt sich TWebBrowser. Damit haste fast alles was man zum Botschreiben brauch. Durch die mitgelieferte DOM kann man wunderhübsch auf einzelne Elemente zugreifen. Keine Mausbeweger oder jegliches.
Per "document.links[0].click" (oder so ähnlich) wird dann dem Script vorgespielt, dass der "user" auf den Link geklickt hätte. Auch mit Formularen kann man damit einfachste dinge anstellen, womit das Script nicht nachprüfen kann, was da nun sache ist.
Session und Cookies werden gespeichert, weil das Grundsystem Internet Explorer ist. Für die Captcha-Bilder gibts sicherlich (hab noch nicht gesucht) ordentliche OCR-AddIns. Also wenn man die ordentlichen Plugins hat ist dies kein Problem.
Nun vielleicht Ansätze zur Bekämpfung dieser:
Mit Kommentaren gehts schonmal nicht, weil es die DOM-Struktur benutzt und diese Kommentare nicht beachtet. Man könnte nun für die Namen der Inputs immer zufallsgenerierte Namen nehmen und dem Script per Session mitteilen, wo sie die Werte herbekommt. Ist zwar vielleicht für billige Bots effektiv, aber man kann dies ja rausbekommen.
Mit Links und Buttons verschieben ist sinnlos, weil das Programm ja nichtmal die Maus benutzt. Dann kann man vielleicht keine Zahlencode-Abfragen machen, sondern eher logische Abfragen. Zum Beispiel man hat ein Bild mit einer Familie drauf. Nun stellt man dem User die Frage, was der Vater an hat oder welche Haarfarbe er hat. Klar verschwendet der User dann mehr Zeit. Aber dadurch kann man OCR-Programme vergessen. Problem an der Sache sind die Blinden (fragt sich eh wie Blinde Browsergames spielen).
Man könnte auch versuchen durch logische Texte die richtige Antwort der User rauszubekommen.
Das ganze Problem ist aberder Aufwand. Man bräuchte extra Leute, die sich damit beschäftigen.
Um den Bots das auslesen des Quelltextes zu erschweren könnte man doch auch Javascript-verschlüsselung benutzen. Wenn man so 4 oder 5 Techniken hat kann man ja immer variieren. Ok Problem: Javascript hat nicht jeder an.
Also ein Bot zu "bauen" ist net wirklich schwer. Kann man ganz ohne Mousemover fabrizieren und Microsoft hilft einem mit ner ordentlichen DOM dabei auch noch.
gepostet vor 19 Jahre, 10 Monate von Mot
nunja für die die mausclick Sachen brauch man nichtmal Programmierkenntnisse, Ghostmaus runterladen, typischen Mausweg abfahren - fertig
gepostet vor 19 Jahre, 10 Monate von zodiac2k
Am Webserver kommen eh nur URLs an, da kann man auch einfach eine Seite als anfordern, wichtige Daten herausparsen und dann den normalen "Weg" nachspielen per gesendeten HTTP-Requests.
Man brauch nun wirklich nicht viel Ahnung vom HTTP Protokoll um einen kleinen Bot zu programmieren.
Es ist auch nicht so schwer, ein Gif Bild zu interpretieren. Ein kleiner Parser, der alle abweichenden Farbpixel catched und aus deren relativen Positionen zueinander sich den Code erarbeitet, wenn der Code eh nur aus ein paar wenigen Vorlagen zusammengebastelt wird.
Läuft ganz einfach ab:
1. HTTP Request der Login Seite
2. Loginseite parsen und URL des CodePics catchen
3. CodePic Requesten
4. CodePic Interpretieren
5. aus dem interpretierten Code und Login an die Loginziel URL
Da kann man viele Hürden einbauen, jedoch könnt ihr davon ausgehen, dass es immer irgendwelche Cracks geben wird, die solche halbherzigen Dinge überwinden.
Und wer glaubt, ein GIF Format sei etwas kompliziertes...
astronomy.swin.edu.au/~pbourke/dataformats/gif/
Warum nicht einfach ein Konzept so entwickeln, dass man keinen Vorteil aus Bots hat?
Man brauch nun wirklich nicht viel Ahnung vom HTTP Protokoll um einen kleinen Bot zu programmieren.
Es ist auch nicht so schwer, ein Gif Bild zu interpretieren. Ein kleiner Parser, der alle abweichenden Farbpixel catched und aus deren relativen Positionen zueinander sich den Code erarbeitet, wenn der Code eh nur aus ein paar wenigen Vorlagen zusammengebastelt wird.
Läuft ganz einfach ab:
1. HTTP Request der Login Seite
2. Loginseite parsen und URL des CodePics catchen
3. CodePic Requesten
4. CodePic Interpretieren
5. aus dem interpretierten Code und Login an die Loginziel URL
Da kann man viele Hürden einbauen, jedoch könnt ihr davon ausgehen, dass es immer irgendwelche Cracks geben wird, die solche halbherzigen Dinge überwinden.
Und wer glaubt, ein GIF Format sei etwas kompliziertes...
astronomy.swin.edu.au/~pbourke/dataformats/gif/
Warum nicht einfach ein Konzept so entwickeln, dass man keinen Vorteil aus Bots hat?
gepostet vor 19 Jahre, 10 Monate von Mot
wie das? der Vorteil eines Bots ist es das man sachen machen kann und in den Scorelisten steigen kann - und sich dabei einen runterholen kann wie toll man ist - obwohl man selbst keine Zeit dafür hatte...
gepostet vor 19 Jahre, 10 Monate von Qmaster
Eine grafische Abfrage ist einfach ein muss. Oder wollt ihr mir sagen dass dieses Bild 217.20.127.21:8080/Qforces/ShowImage?image=humancheck einfach zu knacken wäre ? Falls jemand ein Tool kennt womit dies möglich wäre, der möchte sich bitte hier melden.
gepostet vor 19 Jahre, 10 Monate von zodiac2k
Falls sie dynamisch generiert sind, sind sie sehr gut und sicherlich schwer zu parsen.
Liegen sie jedoch schon fertig bereit und werden nur per Zufall angezeigt, muss man die Bilder einfach über 2-3 Tage mitspeichern und per Hand danach den Code einpflegen. Über eine Checksum (zb CRC32 ) könnte man danach aus einer selbst erstellten Bild-Datenbank den Code für einen Bot auslesen.
Die Chance dass nach 2-3 Tagen dann noch ein neuer Auftritt ist ziemlcih gering, wenn man schon über einen Tag 4 * 24 (15 Minuten Codewechsel) = 96 Bilder sammeln kann.
Zudem sind solche Bots ja auch nicht an einem Tag geschrieben. Würde ja auch nichts dagegen sprechen einfach neue unbekannte erneut zu speichern um sie dem Datenbestand hinzufügen zu können im laufenden Bot Betrieb.
Liegen sie jedoch schon fertig bereit und werden nur per Zufall angezeigt, muss man die Bilder einfach über 2-3 Tage mitspeichern und per Hand danach den Code einpflegen. Über eine Checksum (zb CRC32 ) könnte man danach aus einer selbst erstellten Bild-Datenbank den Code für einen Bot auslesen.
Die Chance dass nach 2-3 Tagen dann noch ein neuer Auftritt ist ziemlcih gering, wenn man schon über einen Tag 4 * 24 (15 Minuten Codewechsel) = 96 Bilder sammeln kann.
Zudem sind solche Bots ja auch nicht an einem Tag geschrieben. Würde ja auch nichts dagegen sprechen einfach neue unbekannte erneut zu speichern um sie dem Datenbestand hinzufügen zu können im laufenden Bot Betrieb.
gepostet vor 19 Jahre, 10 Monate von Qmaster
Meine Strategie:
- grafische Abfrage beim Anmelden
- max. 1 Stunde pro Session, dannach wird zwangsgetrennt.
Damit hat man bereits die nutzung der Bots über längere Zeit verhindert. 100%
Wie verhindert man nun Bots in dieser einer Stunde ?
- als erstes muss man alles was im Spiel passiert loggen. Da kommt man nicht drum herum. Sind zwar enorme Datenmengen, aber ohne Statistik kann man nicht viel erreichen.
- zählen der Zugriffe. Sobald die Zugriffe über einen bestimmten Zeitraum einen bestimmten Wert überschreiten hat man mit hoher wahrscheinlichkeit einen Automaten erwischt. Ein normaler Spieler verursacht nur in den seltesten Fällen über 200 Zugriffe pro Session. So ist es zumindes bei mir.
- Zugriffsmuster. Viele Bots benutzen bestimmte Wege um Aktionen auszufüren. z.B. - Gebäudebau->Forschen->Angriffe starten usw. Das tuen zwar Menschen auch, aber falls man bei einem Spieler überwiegend nur solche Muster findet hat man wahrscheinlich einen Bot dran.
- Fehlerhafte Zugriffe. Bots müssen entwickelt, getestet und angepasst werden. Wie jede ander Software auch macht auch ein Automatiesierungstool Fehler. Sobald ein Fehler beim Zugriff auftaucht hat man einen Cheater erwischt. Ob es jetzt ein Spieler ist der die URL manipuliert hat oder ein Bot ist eher zweitrangig.
- grafische Abfrage beim Anmelden
- max. 1 Stunde pro Session, dannach wird zwangsgetrennt.
Damit hat man bereits die nutzung der Bots über längere Zeit verhindert. 100%
Wie verhindert man nun Bots in dieser einer Stunde ?
- als erstes muss man alles was im Spiel passiert loggen. Da kommt man nicht drum herum. Sind zwar enorme Datenmengen, aber ohne Statistik kann man nicht viel erreichen.
- zählen der Zugriffe. Sobald die Zugriffe über einen bestimmten Zeitraum einen bestimmten Wert überschreiten hat man mit hoher wahrscheinlichkeit einen Automaten erwischt. Ein normaler Spieler verursacht nur in den seltesten Fällen über 200 Zugriffe pro Session. So ist es zumindes bei mir.
- Zugriffsmuster. Viele Bots benutzen bestimmte Wege um Aktionen auszufüren. z.B. - Gebäudebau->Forschen->Angriffe starten usw. Das tuen zwar Menschen auch, aber falls man bei einem Spieler überwiegend nur solche Muster findet hat man wahrscheinlich einen Bot dran.
- Fehlerhafte Zugriffe. Bots müssen entwickelt, getestet und angepasst werden. Wie jede ander Software auch macht auch ein Automatiesierungstool Fehler. Sobald ein Fehler beim Zugriff auftaucht hat man einen Cheater erwischt. Ob es jetzt ein Spieler ist der die URL manipuliert hat oder ein Bot ist eher zweitrangig.
gepostet vor 19 Jahre, 10 Monate von Mot
Ist das Bild dynamisch generiert worden?
gepostet vor 19 Jahre, 10 Monate von Qmaster
Original von Mot
Ist das Bild dynamisch generiert worden?
Ja.
gepostet vor 19 Jahre, 10 Monate von Crafty-Catcher
- Fehlerhafte Zugriffe. Bots müssen entwickelt, getestet und angepasst werden. Wie jede ander Software auch macht auch ein Automatiesierungstool Fehler. Sobald ein Fehler beim Zugriff auftaucht hat man einen Cheater erwischt. Ob es jetzt ein Spieler ist der die URL manipuliert hat oder ein Bot ist eher zweitrangig.
Das passiert auch wenn jemand die URL kopiert oder abschreibt und Zeichen dabei vergisst.. Da kann man dann nicht immer von einem Cheater ausgehen, muss man halt noch vergelichen ob die URL nur ein Teil der orig. URL ist.
gepostet vor 19 Jahre, 10 Monate von knalli
Ich darf zusammenfassen:
1. Login dynamisch (Zufallsbild mit Zahlen, verschiedene Farben, Winkel, 5 Stück)
2. MaxLifeTime 1 Stunde oder bei Request zweier Scripts jeweils Verlängerung um eine Stunde (Premiumfeature).
3. BOT
a) Transfer läuft NUR per Socket, nicht über MiniBrowser.
b) eine Änderung der SessionID verhindert Komfort im normalen Surfing und verwirrt.
c) ein gezwungener Logout terminiert das Problem Bot nur auf das Timeoutzeitfenster, nicht das eigentliche Problem.
Im Grunde kann man nur hingehen, und die Seiten so umstellen, dass der Bot in die Falle läuft.. und dann irgendwie daraus resultierende Logfiles sinnvoll begründen.
1. Login dynamisch (Zufallsbild mit Zahlen, verschiedene Farben, Winkel, 5 Stück)
2. MaxLifeTime 1 Stunde oder bei Request zweier Scripts jeweils Verlängerung um eine Stunde (Premiumfeature).
3. BOT
a) Transfer läuft NUR per Socket, nicht über MiniBrowser.
b) eine Änderung der SessionID verhindert Komfort im normalen Surfing und verwirrt.
c) ein gezwungener Logout terminiert das Problem Bot nur auf das Timeoutzeitfenster, nicht das eigentliche Problem.
Im Grunde kann man nur hingehen, und die Seiten so umstellen, dass der Bot in die Falle läuft.. und dann irgendwie daraus resultierende Logfiles sinnvoll begründen.
gepostet vor 19 Jahre, 10 Monate von Mudder
Max Lifetime naja.. klingt im ersten Moment einfach aber jeder Spieler - inklusive euch - würden sofort Forum und Emailpostfach vollspammen. Da ist man am Wochenende mal bischel vorm Rechner und schaut im 10 Minuten Takt in seinen Account um evtl. Spionagesonden und angreifende Flotten kontrollieren oder aber ein eigenen Angriff beobachten. Und wenn der Feind dann nach einer Stunde gleich vor der Haustür steht und man schnell alle in Sicherheit bringen will dann kommt das liebevolle Loginfenster.
Leute die eigene Browser schreiben und Mausabläufe speichern für die dürfte es auch machbar sein Imagecodes zu knacken - zumindest wenn das Script nur auf ein Spiel ausgelegt ist. Ergebniss sind immer komplexere Imagecodes und das Artet bei vielen schon so aus das man die als Mensch schon kaum mehr entziffern bzw. den Code überhaupt mehr finden kann. (Ok nen eigenen Browser zu schreiben ist nicht wirklich schwer)
Sicherheit in allen Ehren doch wenn eine Ally Nachtraids durchführen will dann findet sich einer der Accountsitting betreibt. Und nur so nebenbei, doch hier nun "Panik" zu veranstallten dürfte für einige Spiele fehl am Platze sein. Nur bei wenigen Spielen lohnt sich der Aufwand sowas wie nen Bot zu erstellen und bei Spielen bis 500 Spielern (wovon dann meist 100 inaktiv sind), da wäre es angebrachter das Spiel weiter zu verfeinern als Panisch einen evtl. Bot auszusperren.
Leute die eigene Browser schreiben und Mausabläufe speichern für die dürfte es auch machbar sein Imagecodes zu knacken - zumindest wenn das Script nur auf ein Spiel ausgelegt ist. Ergebniss sind immer komplexere Imagecodes und das Artet bei vielen schon so aus das man die als Mensch schon kaum mehr entziffern bzw. den Code überhaupt mehr finden kann. (Ok nen eigenen Browser zu schreiben ist nicht wirklich schwer)
Sicherheit in allen Ehren doch wenn eine Ally Nachtraids durchführen will dann findet sich einer der Accountsitting betreibt. Und nur so nebenbei, doch hier nun "Panik" zu veranstallten dürfte für einige Spiele fehl am Platze sein. Nur bei wenigen Spielen lohnt sich der Aufwand sowas wie nen Bot zu erstellen und bei Spielen bis 500 Spielern (wovon dann meist 100 inaktiv sind), da wäre es angebrachter das Spiel weiter zu verfeinern als Panisch einen evtl. Bot auszusperren.
gepostet vor 19 Jahre, 10 Monate von Qmaster
Original von Mudder
Sicherheit in allen Ehren doch wenn eine Ally Nachtraids durchführen will dann findet sich einer der Accountsitting betreibt. Und nur so nebenbei, doch hier nun "Panik" zu veranstallten dürfte für einige Spiele fehl am Platze sein. Nur bei wenigen Spielen lohnt sich der Aufwand sowas wie nen Bot zu erstellen und bei Spielen bis 500 Spielern (wovon dann meist 100 inaktiv sind), da wäre es angebrachter das Spiel weiter zu verfeinern als Panisch einen evtl. Bot auszusperren.
Von Panik ist hier überhaupt keine Rede Es ist einfach eine Diskussion, wie man die Sache angehen kann. Und als "Entwickler" müsstest du eigentlich Wissen wie schwer Bilder zu interpretieren sind. :wink:
gepostet vor 19 Jahre, 10 Monate von zodiac2k
Qmaster, es ist nicht allzuschwer. Ich hab gestern Abend mal etwas rumgespielt und bei deinen CodePics ein paar Farbspielchen gemacht. Wenn man geziehlt die Hintergrundfarben schwärzen würde, hätte man ein sehr klares Abbild der Ziffern, die dann doch recht einfach interpretiert werden könnten.
Man müsste lediglich vorher alle Hintergrundfarben rausfischen. Das wäre in dem Falle halt Fleissarbeit die Intensitäten herauszufinden, was noch als Hintergrunfarbe gilt und was nicht. So wie es aussieht, nutzt du für die Hintergrundfarben die intensität 00-~70-80. Die Ziffern sind irgendwo ab dem 90-AA HexBereich in mindestens einer Farbe.
Nicht einfach aber wäre ebenfalls machbar.
Man müsste lediglich vorher alle Hintergrundfarben rausfischen. Das wäre in dem Falle halt Fleissarbeit die Intensitäten herauszufinden, was noch als Hintergrunfarbe gilt und was nicht. So wie es aussieht, nutzt du für die Hintergrundfarben die intensität 00-~70-80. Die Ziffern sind irgendwo ab dem 90-AA HexBereich in mindestens einer Farbe.
Nicht einfach aber wäre ebenfalls machbar.
gepostet vor 19 Jahre, 10 Monate von Qmaster
Ich wüsste auch wie man da vorgehen könnte, allerdings ist es keine einfache Sache. Es ist auch ein Unterschied ob man weiss wie man zum Ziel kommt oder es tatsächlich schafft.
Ich behaupte mal das niemand einen solchen Code zu 100% rausgelesen bekommt. Wenn doch, möchte ich es vorgeführt bekommen !
Ich behaupte mal das niemand einen solchen Code zu 100% rausgelesen bekommt. Wenn doch, möchte ich es vorgeführt bekommen !
gepostet vor 19 Jahre, 10 Monate von Mot
vielleicht vist es doch ein besserer Ansatz das mögliche Script Nutzer einfach keinen Vorteil haben, sondern lediglich das Risiko haben aufzufliegen.
gepostet vor 19 Jahre, 10 Monate von Mudder
Vielleicht aber die Leute die eben Bots schreiben, können programmieren. Und wer sich die Arbeit macht, ein BG mehr oder weniger komplett einzulesen einen Ablauf einprogrammieren was der Bot dann machen soll und das ganze dann noch so zu gestallten das es unaufällig aussieht, da dürfte es mehr ein Spielchen sein den lästigen Imagecode zu knacken.
Und mich sollte es nicht wundern wenns dafür schon diverse Algorythmen und Funktionen gibt die Zahlen und Buchstaben "entziffern" können oder die Farbwerte in Schwarz/Weiss umwandeln.
Und mich sollte es nicht wundern wenns dafür schon diverse Algorythmen und Funktionen gibt die Zahlen und Buchstaben "entziffern" können oder die Farbwerte in Schwarz/Weiss umwandeln.
gepostet vor 19 Jahre, 10 Monate von zodiac2k
Es gibt auch bereits einige solcher Algorithmen als Ansätze die aus einer Bitmap einen Buchstaben erlesen können. Es funktioniert so, dass über die Buchstaben ein Schachbrett gelegt wird und die Pixel in diesen Feldern gezählt werden.
Jeder Buchstabe hat somit eine bestimmte Charakteristik, selbst wenn der Buchstabe nur durch verstreute Punkte dargestellt wird.
Jeder Buchstabe hat somit eine bestimmte Charakteristik, selbst wenn der Buchstabe nur durch verstreute Punkte dargestellt wird.
gepostet vor 19 Jahre, 10 Monate von Qmaster
Wie gesagt, ich habe schon über einige Ansätze gelesen und auch persönlich mit Computervisualisten aus usnerem Fachbereich gesprochen. Es ist sicherlich einiges machbar. Der Aufwand den man dabei betreiben muss steht nicht im Verhältniss zum Nutzen. Und auch wenn man zu brauchbaren Ergebnissen kommt, 100% wird man nie erreichen. Ich brauche nur die Schriftarten rotieren zu lassen und einigen Parametern Zufallsvariablen zu geben, schon wird die Sache zu einer Unmöglichkeit. Zumindest in den nächsten 10 Jahren
gepostet vor 19 Jahre, 10 Monate von zodiac2k
Wenn du dir mal deinen aktuellen Code ohne Hintergrundfarben anschauen willst...
www.zodiac2k.de/test.php
Und glaub mir, der lässt sich sehr leicht in einem Raster interpretieren ;-)
PS: das ganze hat jetzt grad mal 30 Minuten gedauert und sind nichtmal 20 Zeilen.also wenn man sich dafür Zeit nimmt, dann ist das nicht wirklich kompliziert.
www.zodiac2k.de/test.php
Und glaub mir, der lässt sich sehr leicht in einem Raster interpretieren ;-)
PS: das ganze hat jetzt grad mal 30 Minuten gedauert und sind nichtmal 20 Zeilen.also wenn man sich dafür Zeit nimmt, dann ist das nicht wirklich kompliziert.
gepostet vor 19 Jahre, 10 Monate von Qmaster
Original von zodiac2k
Wenn du dir mal deinen aktuellen Code ohne Hintergrundfarben anschauen willst...
www.zodiac2k.de/test.php
Und glaub mir, der lässt sich sehr leicht in einem Raster interpretieren ;-)
PS: das ganze hat jetzt grad mal 30 Minuten gedauert und sind nichtmal 20 Zeilen.also wenn man sich dafür Zeit nimmt, dann ist das nicht wirklich kompliziert.
Mach bitte weiter. Ich würde echt wissen wie lange du für den Rest brauchst ?
gepostet vor 19 Jahre, 10 Monate von zodiac2k
Ok ich bastel am Wochenende noch ein bischen weiter... hab heute Abend für das eigene Game noch einiges zu tun.
gepostet vor 19 Jahre, 10 Monate von Mot
nunja jedenfalls 10 Jahre wird es nicht dauern...
gepostet vor 19 Jahre, 10 Monate von Qmaster
Original von MotIch habe gesagt wenn ... man muss schon genau lesen.
nunja jedenfalls 10 Jahre wird es nicht dauern...
gepostet vor 19 Jahre, 10 Monate von Mudder
Man muss auch mal beachten, dass dies mit PHP verarbeitet wird.. Andere Sprachen (in dennen die Bot-Browser geschrieben werden) dürften noch einige Funktionen inne haben die die Sache vereinfachen würden (im Sinne von technischer Verarbeitung).
gepostet vor 19 Jahre, 10 Monate von knalli
Ich kenne andere Browsergames nicht so genau; bei uns kann man als taktische Rafinesse "Flucht" einstellen, das hat Auswirkungen, ob man den Angreifer aktiv verteidigt oder sofort Ergebung ersucht :: relation Gesundheitswert.
Durch einen Bot kann man dies taktisch automatisiert einstellen, dass man immer ein "Fluchtfenster" hat, was ausreicht, dass der Gegner nicht effektiv angreifen kann. Ist der Angegriffene online, so ist das ein taktisches Mittel als Verteidigung.. jedoch bei Botusing über Stunden und in fast unmöglicher Zeit faktisch schon schlimmer als Multis.
Durch einen Bot kann man dies taktisch automatisiert einstellen, dass man immer ein "Fluchtfenster" hat, was ausreicht, dass der Gegner nicht effektiv angreifen kann. Ist der Angegriffene online, so ist das ein taktisches Mittel als Verteidigung.. jedoch bei Botusing über Stunden und in fast unmöglicher Zeit faktisch schon schlimmer als Multis.
gepostet vor 19 Jahre, 10 Monate von zodiac2k
Hab doch noch ein bischen weitergemacht... hier schonmal der erste Versuch, den ersten Buchstaben zurechtzuschneiden:
www.zodiac2k.de/test2.php
Mit diesem Zuschnitt kann man dann die Punkte in bestimmten Bereichen Zählen oder es mit Bitmap Vorlagen vergleichen, die man von den angezeigten Buchstaben her erstellen und sammeln könnte.
Falls man die Pixel in Bereichen zählt, könnte man statt den Pixeln auch die Pixelstärke zählen..also Summe aus RGB um eine bessere Relation zu bekommen.
www.zodiac2k.de/test2.php
Mit diesem Zuschnitt kann man dann die Punkte in bestimmten Bereichen Zählen oder es mit Bitmap Vorlagen vergleichen, die man von den angezeigten Buchstaben her erstellen und sammeln könnte.
Falls man die Pixel in Bereichen zählt, könnte man statt den Pixeln auch die Pixelstärke zählen..also Summe aus RGB um eine bessere Relation zu bekommen.
gepostet vor 19 Jahre, 10 Monate von Qmaster
@zodiac2k
Nicht anders würde ich es an deiner Stelle machen. Du muss aber zugeben dass je weiter man macht, destor schwieriger wird die ganze Sache
Hintergrundausblenden OK.
Zuschneiden auch OK.
Was jetzt kommt ist die eigentliche Arbeit die nicht in 30 min gemacht werden kann. Zunächst muss du die Bilder drehen. Die kommen nähmlich in zufälligen Winkeln und ich glaube sogar in grössen. Dannach muss man entweder über Schablonen gehen oder ein System zum anlernen ausdenken.
Ich bin mal gespannt ob du auf die schnelle doch noch eine Buchstaben ausgelesen bekommst.
Nicht anders würde ich es an deiner Stelle machen. Du muss aber zugeben dass je weiter man macht, destor schwieriger wird die ganze Sache
Hintergrundausblenden OK.
Zuschneiden auch OK.
Was jetzt kommt ist die eigentliche Arbeit die nicht in 30 min gemacht werden kann. Zunächst muss du die Bilder drehen. Die kommen nähmlich in zufälligen Winkeln und ich glaube sogar in grössen. Dannach muss man entweder über Schablonen gehen oder ein System zum anlernen ausdenken.
Ich bin mal gespannt ob du auf die schnelle doch noch eine Buchstaben ausgelesen bekommst.
gepostet vor 19 Jahre, 10 Monate von zodiac2k
Hier mal die nächsten Steps:
www.zodiac2k.de/test3.php
Die Hintergründe wurden sauberer ausgeblendet, die kräftigeren Buchstabenfarben wurden intensiviert und die Schnittränder wurden sauber an den Buchstaben angelegt.
www.zodiac2k.de/test4.php
Der Buchstabe wurde anhand veränderter Farbintensitäten in ein 5x7 Raster eingelegt, was für Vergleiche ausreichen sollte. Die Farbintensitäten werden relativ zueinander angezeigt wobei 255 das Maximum ist.
Normale OCR kommt bereits damit schon aus bei guten Mustern.
Ja jetzt kommt der "KI" der, der dem Programm erst beigebracht werden muss. Eine kleine Datenbank anlegen, in der Muster gespeichert werden auf die man vergleichen kann.
Eine Drehung ist nicht unbedingt nötig bei so einem Muster, vorallem wenn genügend Muster vorhanden sind.
to be continued ;-)
www.zodiac2k.de/test3.php
Die Hintergründe wurden sauberer ausgeblendet, die kräftigeren Buchstabenfarben wurden intensiviert und die Schnittränder wurden sauber an den Buchstaben angelegt.
www.zodiac2k.de/test4.php
Der Buchstabe wurde anhand veränderter Farbintensitäten in ein 5x7 Raster eingelegt, was für Vergleiche ausreichen sollte. Die Farbintensitäten werden relativ zueinander angezeigt wobei 255 das Maximum ist.
Normale OCR kommt bereits damit schon aus bei guten Mustern.
Ja jetzt kommt der "KI" der, der dem Programm erst beigebracht werden muss. Eine kleine Datenbank anlegen, in der Muster gespeichert werden auf die man vergleichen kann.
Eine Drehung ist nicht unbedingt nötig bei so einem Muster, vorallem wenn genügend Muster vorhanden sind.
to be continued ;-)
gepostet vor 19 Jahre, 10 Monate von Qmaster
Sehr gut Weiter so.
gepostet vor 19 Jahre, 10 Monate von schokofreak
Zodiac: Es geht sogar noch viel banaler.
-> mehrere Filter darüber laufen lassen.
Danach hat man guten Kontrast.
Darauf aufbauend einen Reader im Stile vom DirectX teil drüber laufen lassen.
-> das kennt alle (std) schriften; Sprich wenn man n System mit genügend verschnörkelten Schriften & co als penetrator laufen lässt, ist das kein Problem auch komische Schriften (handgeschrieben) zu erkennen. PLUS das schöne API kann auch mit rauschen, fehlern usw. umgehen.
Sprich: die Chance, dass solch ein Bild (nach einer Filter Bearbeitung; welche sich leicht automatisieren lässt) durch einen simplen API Aufruf identifizieren lässt ist sehr sehr hoch.
Gruss
-> mehrere Filter darüber laufen lassen.
Danach hat man guten Kontrast.
Darauf aufbauend einen Reader im Stile vom DirectX teil drüber laufen lassen.
-> das kennt alle (std) schriften; Sprich wenn man n System mit genügend verschnörkelten Schriften & co als penetrator laufen lässt, ist das kein Problem auch komische Schriften (handgeschrieben) zu erkennen. PLUS das schöne API kann auch mit rauschen, fehlern usw. umgehen.
Sprich: die Chance, dass solch ein Bild (nach einer Filter Bearbeitung; welche sich leicht automatisieren lässt) durch einen simplen API Aufruf identifizieren lässt ist sehr sehr hoch.
Gruss
gepostet vor 19 Jahre, 10 Monate von Qmaster
Das wird sich schon zeigen. zodiac2k scheint sein Fach sehr gu zu verstehen Mal schauen ob er es hinbekommt.
gepostet vor 19 Jahre, 10 Monate von zodiac2k
Es kommt halt auf die Filter drauf an. Ich mache hier ja nur ein bischen Spielerrei mit PHP. Mit C gibts da sicherlich ein paar schicke APIs mit denen man OCR Funktionen ausführen kann.
Dies ist einfach mal ein kleines Spielchen mit einer recht schnellen Lösung, die nicht auf Pixelgenauigkeit setzt, sondern auf Intensität mit in einem kleinen Raster. Damit deckt man viele leichte Drehungen der Schriften Bereits ab wenn man gute Muster hat auf die man vergleichen kann.
Hier die Page zum Sammeln der Codes:
www.zodiac2k.de/test5.php
Dies ist einfach mal ein kleines Spielchen mit einer recht schnellen Lösung, die nicht auf Pixelgenauigkeit setzt, sondern auf Intensität mit in einem kleinen Raster. Damit deckt man viele leichte Drehungen der Schriften Bereits ab wenn man gute Muster hat auf die man vergleichen kann.
Hier die Page zum Sammeln der Codes:
www.zodiac2k.de/test5.php
gepostet vor 19 Jahre, 10 Monate von Qmaster
Das ist ja schon mal gut soweit zu kommen. Auch wenn du das jetzt als Spielerei mit PHP abtuest.
Ich bezweifle allerdings dass du zu brauchbaren Ergebnissen kommst. Auch wenn du dich 1-2 Wochen hinsetzt, wirst du höchstens einzelne Zeichen rausfinden. Mit viel Glück vielleicht auch abundzu ganze Codes.
Ich lasse mich natürlich gern vom Gegenteil überzeugen.
Ich bezweifle allerdings dass du zu brauchbaren Ergebnissen kommst. Auch wenn du dich 1-2 Wochen hinsetzt, wirst du höchstens einzelne Zeichen rausfinden. Mit viel Glück vielleicht auch abundzu ganze Codes.
Ich lasse mich natürlich gern vom Gegenteil überzeugen.
gepostet vor 19 Jahre, 10 Monate von Anomar
QMaster:
Schritt 3 ist bereits völlig ausreichend. In Schritt 3 kann nahezu jede OCR-Software den Code erkennen. Warum sollte man sich also die Mühe machen und da aufwendig mit PHP weiter machen, wenn man scriptbare OCR-Software enbinden kann?
Saubere Leistung @zodiac2k.
Schritt 3 ist bereits völlig ausreichend. In Schritt 3 kann nahezu jede OCR-Software den Code erkennen. Warum sollte man sich also die Mühe machen und da aufwendig mit PHP weiter machen, wenn man scriptbare OCR-Software enbinden kann?
Saubere Leistung @zodiac2k.
gepostet vor 19 Jahre, 10 Monate von Qmaster
Original von Anomar
QMaster:
Schritt 3 ist bereits völlig ausreichend. In Schritt 3 kann nahezu jede OCR-Software den Code erkennen. Warum sollte man sich also die Mühe machen und da aufwendig mit PHP weiter machen, wenn man scriptbare OCR-Software enbinden kann?
Saubere Leistung @zodiac2k.
Nenne mir bitte eine OCR-Software die das Bild interprietiert. Möchte es gern testen.
gepostet vor 19 Jahre, 10 Monate von Anomar
ReadIris Pro oder OmniPage Pro - als Vertreter der "besseren SOHO-OCR"
FineReader soll wohl auch zu den besseren gehören, ist mir aber nicht bekannt.
FineReader soll wohl auch zu den besseren gehören, ist mir aber nicht bekannt.
gepostet vor 19 Jahre, 10 Monate von felix
Ein Problem ist wahrscheinlich auch, dass jeder der nen wirksamen Bot-Schutz hat, diese Technik nicht gerne preisgibt. Da sonst das Risiko steigt, dass der Schutz auch gleich geknackt wird.
Anonymität ist ja schön, doch sollte es zumindest möglich sein herauszufinden, ob ein Besucher ein Mensch oder ein Bot ist. Ein profi-Hacker kann natürlich jedes System knacken, vorallem wenn er viel Zeit hat. Aber die haben wahrscheinlich besseres zu tun, als BG's zu knacken.
Bei Spielen wie meinem oder wahrscheinlich auch Ogame reicht aber wahrscheinlich ein Bot aus 50 Zeilen, um das Spiel schon mächtig ins wanken zu bringen.
Ich denke da z.B. an einige Tausend Anmeldungen oder sowas in der Art...
Welche Spiele sind denn schon gewappnet gegen solche Angriffe?
Anonymität ist ja schön, doch sollte es zumindest möglich sein herauszufinden, ob ein Besucher ein Mensch oder ein Bot ist. Ein profi-Hacker kann natürlich jedes System knacken, vorallem wenn er viel Zeit hat. Aber die haben wahrscheinlich besseres zu tun, als BG's zu knacken.
Bei Spielen wie meinem oder wahrscheinlich auch Ogame reicht aber wahrscheinlich ein Bot aus 50 Zeilen, um das Spiel schon mächtig ins wanken zu bringen.
Ich denke da z.B. an einige Tausend Anmeldungen oder sowas in der Art...
Welche Spiele sind denn schon gewappnet gegen solche Angriffe?
gepostet vor 19 Jahre, 10 Monate von Dead
Ich sag mal so
Es gibt keine möglichkeit ein BG 100% zu schützen.
Besonders so große Spiele wie Ogame, etc. sind da nette Ziele.
Denn wenn ein Spiel 100k Spiele hat fällt das gar net so auf wenn es um die 1k Bots gibt. Auch haben die Admins gar nicht die Zeit/Lust bei sovielen Spielern sich da so genau drum zu kümmern. (Von Ogame könnt ich euch da Sachen berichten die ich gehört haben. Aber das passt jetzt net zum Thema)
Auch gibts meiner Meinung nach sogar schon Leute die sich nen Spaß draus machen BG's zu hacken und zu versuchen die Admins zu überlisten.
Und deshalb gibts keinen Schutz.
Meine Meinung ist gegen Multis kann man sich schützen. Gegen Bots nicht.
Denn die sind meist von Leuten die sich auskennen.
Es gibt keine möglichkeit ein BG 100% zu schützen.
Besonders so große Spiele wie Ogame, etc. sind da nette Ziele.
Denn wenn ein Spiel 100k Spiele hat fällt das gar net so auf wenn es um die 1k Bots gibt. Auch haben die Admins gar nicht die Zeit/Lust bei sovielen Spielern sich da so genau drum zu kümmern. (Von Ogame könnt ich euch da Sachen berichten die ich gehört haben. Aber das passt jetzt net zum Thema)
Auch gibts meiner Meinung nach sogar schon Leute die sich nen Spaß draus machen BG's zu hacken und zu versuchen die Admins zu überlisten.
Und deshalb gibts keinen Schutz.
Meine Meinung ist gegen Multis kann man sich schützen. Gegen Bots nicht.
Denn die sind meist von Leuten die sich auskennen.
gepostet vor 19 Jahre, 10 Monate von Qmaster
Original von Dead
Meine Meinung ist gegen Multis kann man sich schützen. Gegen Bots nicht.
Denn die sind meist von Leuten die sich auskennen.
Gerade das Gegenteil ist der Fall. Man kann sich sehr effektiv gegen Bots schützen. Gegen Mulits wird es sehr schwer.
gepostet vor 19 Jahre, 10 Monate von Mot
Ich halten den Schutz vor beiden Angriffsformen für schlichtweg
unmöglich, das Problem dabei ist das ein gut gemachter fehlerarmer Angriff einfach nicht festzustellen ist, man kann es erschweren mehr nicht - denn man reagiert nur, und läuft der Entwicklung hinterher.
unmöglich, das Problem dabei ist das ein gut gemachter fehlerarmer Angriff einfach nicht festzustellen ist, man kann es erschweren mehr nicht - denn man reagiert nur, und läuft der Entwicklung hinterher.
gepostet vor 19 Jahre, 10 Monate von knalli
Original von Qmaster
Original von Dead
Meine Meinung ist gegen Multis kann man sich schützen. Gegen Bots nicht.
Denn die sind meist von Leuten die sich auskennen.
Gerade das Gegenteil ist der Fall. Man kann sich sehr effektiv gegen Bots schützen. Gegen Mulits wird es sehr schwer.
In Bezug auf meinen 1. Post würde ich gerne näheres wissen..
- Script/Sockets-Bots
- Script/Mouse-Bots
gepostet vor 19 Jahre, 10 Monate von zodiac2k
@Knalli,
es ist deinem Webserver ziemlich egal, ob da ein Browseremulator oder einfach nur eine URL ankommt. Wenn dort eine eine gültige Browseridentifikation in dem HTTP Header drinsteht, ist das eine genauso wie das andere.
Hier das RFC zu HTTP...das ist die Protokollbeschreibung.
www.w3.org/Protocols/rfc2616/rfc2616.html
es ist deinem Webserver ziemlich egal, ob da ein Browseremulator oder einfach nur eine URL ankommt. Wenn dort eine eine gültige Browseridentifikation in dem HTTP Header drinsteht, ist das eine genauso wie das andere.
Hier das RFC zu HTTP...das ist die Protokollbeschreibung.
www.w3.org/Protocols/rfc2616/rfc2616.html
gepostet vor 19 Jahre, 10 Monate von knalli
Ja ach.. daher ja meine Nachfrage :roll:
gepostet vor 19 Jahre, 10 Monate von schokofreak
Geschrieben in: BG.net
Advanced Script Protection
--------------------------------------------------------------------------------
Mein Vorredner hat aus meiner Sicht schon ein wichtiges Teil des ganzen erwähnt... mir fehlt nur noch ein bisschen der Überblick in die gesammte Welt.
Deshalb da einen kurzen Überblick:
1. Script Schutz / Script Detektion
====================
1.1 Wer ist ein Scripter?
Man könnte meinen, scripter seien einfach irgendwelche Daus, mit 5 minuten zu viel Freizeit. Sitzt man jedoch einmal mit einem Scriptr zusammen findet man schnell heraus, dass man sich da irrt.
Die Scripter setzen sich mehrheitlich aus diesen 2 Gruppen zusammen.
-> Programmierer von Konkurenzgames, welches der Konkurenz eins auswischen wollen... meist sehr gute programmierer, aber nur mittelmässige Scripter, da nicht so geübt.
-> Programmierer, die den geistigen Wettkampf suchen; schauen wollen wer besser ist. Scripter oder Script verhinderer. Die haben ein enormes Wissen, was Scriptbau usw angeht; haben jedoch meist nicht den grossen Schaden im Kopf... sind nicht sonderlich gefährlich fürs Spiel.
-> Die übrigen, die sich durch ein Script im Spiel hochpushen wollen, sind nach meiner Beobachtung eine kleine Minderheit. Vorallem meist nicht gerade die besten Programmierer. ABER es sind die, die am meisten Schaden (nebst den Neidern aka Admins von Konkurenzgames) anrichten.
1.2 Wie arbeitet ein Scripter?
----------------------------------
Es gibt grob gesagt 3 ansätze, wie Scripter arbeiten:
- öffnen eines Sockets, und nachtippseln von HTTP Kommandos.
- Fernsteuern eines Browsers wie IE mit z.B. der ominösen Windows Ereignisverarbeitung
- Kontrolle des Browsers (Fernsteuerung mit Events) UND Manipulation von z.B. JavaScripts von aussen. Man kann von aussen sehr bequem auf einzelne JavaScriptblöcke usw zugreiffen... Zugriff aufs DOM usw geht auch gut.
1.3 Wie blockt man Telnet Scripter ab?
- Telnet Scripter sind meist die, mit den weniger guten Skills. Sehr viele sind schon stark gefordert, wenn es um ein korrektes Cookie Handling usw geht.
Am wirksamsten blockt man Telnet Scripter jedoch so ab. Auf dem WebServer (geht im PHP usw.) einstellen, dass gewissen Kerninhalte nur noch GZip Komprimiert übertragen werden... Eine DeKomprimierung von GZip ist schon mal ne recht anspruchsvolle Arbeit
- JavaScript Konstruktionen empfehlen sich nicht. Diese sind sehr schnell geknackt; und stellen selbst für die meisten Telnet Scripter kein grosses Problem dar. Schönstes beispiel: All die JavaScript "Verschlüsselungen". Der Witz daran ist, dass man niemals das Entschlüsselte JavaScript / HTML Sehen kann, da der Browser einem im Queltext anzeigen immer nur das Verschlüsselte Zeigt. Macht man jedoch nur z.B. ein Replace von < in @ in der Entschlüsselungsroutine (dort wo das document.write kommt) hat man schon allesn Page Source; null aufwand, nix...
- Konsolen Scripter müssen jedoch auch nicht gesondert behandelt werden, da alle AntiScript Mechanismen, die gegen Browser / Remote Zugriff Script Schütze auch gegen Telnet Scripter wirken (umgekehrt im Gegensatz logischerweise nicht).
-> Fazit? Vergesst alle Varianten via JavaScript, JavaApplets mit verschl. Kommunikation, ... ist sinnlos, da ein Browser / Remote Scripter von diesem Schutz gar nix sieht.
1.4 Wie blockt man Remote Scripter ab?
------------------------------------------------
Im Prinzip ist das nur möglich, wenn das Script weniger Intelligenz als der Mensch hat...
Denn. Alle Möglichkeiten, die Kommunikation Browser / Server zu zerhäckseln nützen nix. Der Scripter hat das selbe interface, wie der Mensch.
Wo hat man Situationen wo der Mensch klüger ist, als das Script?
1.4.1 Captchas
- Captchas - Texte:
Text Captchas, Zahlencodes usw. sind äusserst ungeeignet. Wieso? Sämtliche normal verfügbaren Verzerrungslibraries haben weniger Funktionalität, als die verfügbaren "Entzerrungs" Libraries. Man kann texte noch so verzerren; mit nur sehr wenig Code ist der Text wieder in Maschinen Form.
Nützen tut da nur, wenn man komplett neue Schriftarten erfindet; und die Verzerrt... aber auch dann ist die Chance grösser als 90 %, dass der Text dennoch erkannt wird. Und da der Mensch bei so stark verzerrten Texten nicht mehr gut erkentn; haben Scripte und Mensch etwa gleich grosse Fehlerquote
- Captchas - Musik: Was sagt die Person?
Funktioniert an und für sich recht gut, die Erkennungsrate von Scripts dürfte nicht grösser als so 50 % liegen. Nur? Waas mit Sprachbehinderten? Leuten ohne Boxen?...
Vorallem sind diese Captchas sehr einfach angreifbar. Mittels Hash Bildung...
Hier wieder das selbe, Verfremdung des Tones. Es gibt besserere Libraries, zur Entzerrung als zur Verzerrung (die ja real time erfolgen soll in php oder so). Fazit; alles was verzerrt werden kann, kann wieder entzerrt werden. Verzerrung nützt nix... und damit kann man mit Verzerrung auch nicht Hashbildung umgehen
- Bild Captchas: Welches der Bilder ist ein Auto? Was ist das für ein Bild?
Dies sind recht schwer zu knackende bilder!
Nur, man beachte, anlegen einer grossen Bibliothek solcher Bilder ist extrem teuer (zeitaufwendig). Und wenn die Bibliothek nicht genug gross ist, hat man mit einem Hashing sehr schnell einen Einlass gefunden.
Des weiteren ist mir ein Scripter bekannt, welcher selbst solche Bilder zu knapp 80 % erkennt. Indem Bilder mit Toleranz mit einer Bilder Bibliothek (3D objekte) verglichen werden. Und 80 % Richtiges erkennen reicht nicht, um einen User als Scripter zu identifizieren.
- Suche den Text: Der User muss auf einen Text klicken; der server wertet die Klick X und Y koordinate aus. Funktioniert ein bisschen besser, als das normale Text Captcha. Allerdings benötigt eine saubere Implementation eines solchen Captchaes extrem zeit.
1.4.2 SPIELLOGIK
Da kann man fast gar nix dagegen machen, hat das Spiel eine komplexere Logik, als sie ein Script analyiseren kann... ist ein Script nutzlos.
Also schön immmer dafür sorgen, dass der User ein bisschen überlegen muss, was er tun soll. Es soll keine Routine aufkommen.
Und vorallem, user sollen sich nicht vor Angriffen retten können; nur weil sie online Sind.
2. Script Erkennung
============
So, nun kommen wir zum einfacheren Kapitel.
2.1 Wozu überhaupt ein Script?
-------------------------------------
Scripte haben normalerweise den Vorteil, dass sie eine bessere Verwaltung eines Accounts ermöglichen. Der Account ist stärker, hat merh geld oder unschlagbar da auch immer on.
Weitere Möglichkeit: Züchten von vielen Accounts, für späteres Multitum
Andere Scripts sind mir bis jetzt noch nicht untergekommen. Ein script Account macht keinen Sinn, wenn er nicht stärker, bessser, ... ist als ein normaler Account.
2.2 Wie erkennt man scripts?
-----------------------------------
Genau gleich wie Multies, Cheater, Buguser erkennt man auch Scriptuser.
Scriptuser wollen einen Vorteil. Vorteile erkennt man am besten mittels Statistik.
Intelligente Messwerte nehmen (das ist vom Spiel abhängig) und diese immer überwachen. Punkte System einführen, dass differenzierte Abstufung ermöglicht, mit einem Schwellenwert, wo die WS für Nicht Scripter bei 0 liegt.
So erkennt man Multies, Scripter, ... einfach dadurch dass sie signifikant besser sind
2.3 Was machen bei Script erkennung?
-----------------------------------------------
Der grösste Fehler, den Games im Moment machen. Es kommt bei fehlzugriff; falschem cookie, durchgefallen bei Script usw eine Meldung: Script erkannt. bitte neu einloggen!
Wieso???
Baut ein, zwei erkennungs routinen ein, loggt im Hintergrund mit, wenn da wer reinfällt. Wartet ein paar Tage; beobacghtet (automatisiert) den account stärker. Und meldet nach 1, 2 Tagen dass der Acc. wegen Scripting gelöscht / gesperrt wird.
Der Scripter weiss nicht, wodurch er aufgeflogen ist.
So erkennt man scripter schon in ersten Feldversuchen; rasch im Telnet ein Kommando Faken und kucken obs geht.
Mein geheimtipp? Anschauen, in wie vielen IP Packeten eine HTTP Anfrage kommt.
Sinds zu viele, was zu viele sind ist eure ermessenssache, das mittlogen. Und 1, 2 Tage später sperren.
=> 90 % der Scripter machen erste versuche im Telnet. Kucken ob das geht, machen vorallem das ohne Protokoll... und 10 sachen gleichzeitig. Die erfahren nie, was ihnen geschehen ist.
3. Fazit:
=====
- Mit 90 % der Scripern kann man reden, sie machen keinen Schaden uns sind Hilfsbereit.
- Scriptschutz funktioniert nur, wenn er vom Konzept des Spieles berücksichtigt ist. Sprich, das Game soll keinen Ansatzpunkt (wiederholungen) bieten, wo scripts ansetzen soll. einfach SPIELTIEFE
- Scripters genau gliech wie Multies / Cheater mit Statistik suchen
- Captchas, Texte, ... ärgern nur User und nützen nix
Das wars in etwa, was ich dazu zu sagen habe.
gruss
gepostet vor 19 Jahre, 10 Monate von zodiac2k
Kleine Anmerkungen zu diversen Dingen:
GZIP Algo als HTTP Response..
man kann gzip forcen, schliesst damit jedoch auch viele älter Browser aus, da einige den Algo noch nicht können, unter anderem die noch garnicht so alten IE Versionen mit denen doch noch einige der User unterwegs sind. Normalerweise wird gzip nur dann verwendet, wenn der Client (Browser) auch gzip beherrscht und es via HTTP Header dem Server mitteilt.
Captachas...
Es gibt viele User im Netz, die kleinere Krankheiten haben. Das fängt bei einer Rotgrün Schwäche der Augen an, geht über Hörschäden usw. Viele der Captachas sind inzwischen so komplex, dass gewisse Leute damit schon Probleme bekommen.. nicht der eleganteste Weg ein Spiel "sicher" zu machen, wenn man Minderheiten nicht ausschliessen will.
Konzept...
Dies ist wohl der wichtigste Punkt, an dem man ansetzen kann, um ein Spiel so aufzubauen, dass Multis oder Bots uninteressant werden.
Bots: warum werden Bots eingesetzt?
- weil das Spiel zu viel Zeit braucht
- weil man ständig etwas ausführen muss, was mit dem RL nicht vereinbar ist
- weil man zu einem 24/7 online darsein gezwungen wird, wenn man im oberen Drittel mitspielen will.
- weil im Spiel zeitkritische Entscheidungen fallen die einen Zwingen online zu sein, da es keine einstellbare KI gibt, die solche Abwesenheitssituationen akzeptabel handlen könnte.
Wer will nicht oben mitspielen... jeder wohl. Bei einigen geht das aber nur wenn man Arbeitslos ist, oder Systemadministrator mit Internetzugang und sowieso den ganzen Tag nicht viel zu tun hat. Ein 24/7 Onlinezwang nimmt dem Großteil der Normaluser die chance, im oberen Drittel mitzuspielen.
Multis: Warum werden Multis erstellt?
- weil man zb durch zusätzliche Resourcen durch Farmen einen zu grossen Vorteil gegenüber anderen aufbauen kann, der über einen Totalsieg oder eine Totalniederlage entscheiden kann.
- weil das Punktewachstum eines Accounts hauptsächlich an einem bestimmten Spielinhalt (zb. Rohstoffen) gekoppelt ist und Zeit nur eine weniger wichtige Rolle dabei spielt.
Wenn man die ganzen Punkte mal durchschaut und sie mit den eingetragenen Spielen vergleicht, wird man bei sehr vielen Spielen genau diese "Angriffspunkte" erkennen, warum dort ein Captacha nötig ist und warum es in einigen Spielen von Multis nur so wimmelt.
GZIP Algo als HTTP Response..
man kann gzip forcen, schliesst damit jedoch auch viele älter Browser aus, da einige den Algo noch nicht können, unter anderem die noch garnicht so alten IE Versionen mit denen doch noch einige der User unterwegs sind. Normalerweise wird gzip nur dann verwendet, wenn der Client (Browser) auch gzip beherrscht und es via HTTP Header dem Server mitteilt.
Captachas...
Es gibt viele User im Netz, die kleinere Krankheiten haben. Das fängt bei einer Rotgrün Schwäche der Augen an, geht über Hörschäden usw. Viele der Captachas sind inzwischen so komplex, dass gewisse Leute damit schon Probleme bekommen.. nicht der eleganteste Weg ein Spiel "sicher" zu machen, wenn man Minderheiten nicht ausschliessen will.
Konzept...
Dies ist wohl der wichtigste Punkt, an dem man ansetzen kann, um ein Spiel so aufzubauen, dass Multis oder Bots uninteressant werden.
Bots: warum werden Bots eingesetzt?
- weil das Spiel zu viel Zeit braucht
- weil man ständig etwas ausführen muss, was mit dem RL nicht vereinbar ist
- weil man zu einem 24/7 online darsein gezwungen wird, wenn man im oberen Drittel mitspielen will.
- weil im Spiel zeitkritische Entscheidungen fallen die einen Zwingen online zu sein, da es keine einstellbare KI gibt, die solche Abwesenheitssituationen akzeptabel handlen könnte.
Wer will nicht oben mitspielen... jeder wohl. Bei einigen geht das aber nur wenn man Arbeitslos ist, oder Systemadministrator mit Internetzugang und sowieso den ganzen Tag nicht viel zu tun hat. Ein 24/7 Onlinezwang nimmt dem Großteil der Normaluser die chance, im oberen Drittel mitzuspielen.
Multis: Warum werden Multis erstellt?
- weil man zb durch zusätzliche Resourcen durch Farmen einen zu grossen Vorteil gegenüber anderen aufbauen kann, der über einen Totalsieg oder eine Totalniederlage entscheiden kann.
- weil das Punktewachstum eines Accounts hauptsächlich an einem bestimmten Spielinhalt (zb. Rohstoffen) gekoppelt ist und Zeit nur eine weniger wichtige Rolle dabei spielt.
Wenn man die ganzen Punkte mal durchschaut und sie mit den eingetragenen Spielen vergleicht, wird man bei sehr vielen Spielen genau diese "Angriffspunkte" erkennen, warum dort ein Captacha nötig ist und warum es in einigen Spielen von Multis nur so wimmelt.
gepostet vor 19 Jahre, 10 Monate von Rob-oter
Hi,
wir können ja einfach folgendes machen:
Wir hier teilen uns in zwei Gruppen. Die eine Gruppe baut ein mini BG mit einfachem login, und einer einfachen Funktion. Diese Gruppe versucht viele Anti-Scripting Methoden einzubauen.
Die zweite Gruppe beschäftigt sich mit der Erstellung eines Bots. Er muss ja nicht fertig werden......
Aber: Besonders die 2. Gruppe wird berichten können, wo die meissten Probleme waren...Und dort müssen wir dann ansetzen. Wir müssen wie die Bot-Scripter denken, dann wird uns auffallen, wo die wirklichen Probleme liegen.
Das Problem ist nur, das hier im Forum sich bestimmt auch einige Bot-Scripter rumtreiben, und schön munter diesen Thread hier lesen, und sich eins ablachen !
mfg Rob-oter
wir können ja einfach folgendes machen:
Wir hier teilen uns in zwei Gruppen. Die eine Gruppe baut ein mini BG mit einfachem login, und einer einfachen Funktion. Diese Gruppe versucht viele Anti-Scripting Methoden einzubauen.
Die zweite Gruppe beschäftigt sich mit der Erstellung eines Bots. Er muss ja nicht fertig werden......
Aber: Besonders die 2. Gruppe wird berichten können, wo die meissten Probleme waren...Und dort müssen wir dann ansetzen. Wir müssen wie die Bot-Scripter denken, dann wird uns auffallen, wo die wirklichen Probleme liegen.
Das Problem ist nur, das hier im Forum sich bestimmt auch einige Bot-Scripter rumtreiben, und schön munter diesen Thread hier lesen, und sich eins ablachen !
mfg Rob-oter
gepostet vor 19 Jahre, 10 Monate von schokofreak
Original von zodiac2k
GZIP Algo als HTTP Response..
man kann gzip forcen, schliesst damit jedoch auch viele älter Browser aus, da einige den Algo noch nicht können, unter anderem die noch garnicht so alten IE Versionen mit denen doch noch einige der User unterwegs sind. Normalerweise wird gzip nur dann verwendet, wenn der Client (Browser) auch gzip beherrscht und es via HTTP Header dem Server mitteilt.
Vor mehr als 1 Jahr hat GW2nd (oder wars Galaxywars? Weiss nimmer so genau) mit solch einem "BotSchutz" gearbeitet.
War für all die Telnet Scripter relativ effektiv; viele haben ned gepeilt was los war... die guten Scripter haben jedoch ned mal gemerkt, dass da n BotSchutz sein soll...
=> Kommt absolut nicht in Frage. Nützt ja nix gegen einen Remote Scripter. Der sieht das ned mal
Original von zodiac2k
Captachas...
Es gibt viele User im Netz, die kleinere Krankheiten haben. Das fängt bei einer Rotgrün Schwäche der Augen an, geht über Hörschäden usw. Viele der Captachas sind inzwischen so komplex, dass gewisse Leute damit schon Probleme bekommen.. nicht der eleganteste Weg ein Spiel "sicher" zu machen, wenn man Minderheiten nicht ausschliessen will.
Gestern habe ich (bei einer ms.passport registrierung 4 mal n captcha falsch eingegeben (gründe siehe in deinem post). Fazit: Captchas sind via Script einfacher zu interpretierne als via augen.
Original von zodiac2k
Konzept...
Dies ist wohl der wichtigste Punkt, an dem man ansetzen kann, um ein Spiel so aufzubauen, dass Multis oder Bots uninteressant werden.
Bots: warum werden Bots eingesetzt?
- weil das Spiel zu viel Zeit braucht
- weil man ständig etwas ausführen muss, was mit dem RL nicht vereinbar ist
- weil man zu einem 24/7 online darsein gezwungen wird, wenn man im oberen Drittel mitspielen will.
- weil im Spiel zeitkritische Entscheidungen fallen die einen Zwingen online zu sein, da es keine einstellbare KI gibt, die solche Abwesenheitssituationen akzeptabel handlen könnte.
Eiinführung von so was simplem wie Aktionspunkten verhindert schlimme Scripte schon seeehr effektiv. Man kann zwar 24/7 online sein, aber dennoch nur so 30 min am tag spielen, da danach keine aps mehr.
Die Analyse der dennoch vorhandenen Scripte mit Statistik...
@ rob-oter: Glaub es ist wohlbekannt wie scripte funktionieren... wozu so ne aktion?
gepostet vor 19 Jahre, 9 Monate von _Jan_
hi,
ich hab mir jetzt nicht alles durchgelesen (*schäm*)
aber ich denke das eine funktionierende Möglichkeit gegen Scripts ist, eine Session immer nach einer halben Stunde killen zu lassen. Der Login muesste per buchstaben-grafik (so nenn ich es mal) laufen, sodass das Script nicht herausfinden kann was auf der grafik steht.
Wenn nun ein Script zB uber nacht angemacht wird und der "echte" Spieler schlafen geht, dann würde das Script spätestens nach 30 Minuten ausgeloggt und könnte sich nicht wieder einloggen. natürlich, der schutz wäre primitiv, würde aber gegen viele script(kiddys) helfen. (wenns dann funktioniert)
ich weiß nich ob es das schon gabe aber wollte es noch ma anmerken
tschö
ich hab mir jetzt nicht alles durchgelesen (*schäm*)
aber ich denke das eine funktionierende Möglichkeit gegen Scripts ist, eine Session immer nach einer halben Stunde killen zu lassen. Der Login muesste per buchstaben-grafik (so nenn ich es mal) laufen, sodass das Script nicht herausfinden kann was auf der grafik steht.
Wenn nun ein Script zB uber nacht angemacht wird und der "echte" Spieler schlafen geht, dann würde das Script spätestens nach 30 Minuten ausgeloggt und könnte sich nicht wieder einloggen. natürlich, der schutz wäre primitiv, würde aber gegen viele script(kiddys) helfen. (wenns dann funktioniert)
ich weiß nich ob es das schon gabe aber wollte es noch ma anmerken
tschö
gepostet vor 19 Jahre, 9 Monate von Crafty-Catcher
Das gabs schon und der springende Punkt ist dieser:
sodass das Script nicht herausfinden kann was auf der grafik steht.
Original von Jan
sodass das Script nicht herausfinden kann was auf der grafik steht.
gepostet vor 19 Jahre, 9 Monate von Kallisti
Ein Zwangslogout nach 30 min empfände ich als User als überaus nervig.
Wir haben ein Logout nach 15 min Inaktivität und ich erwäge noch ein Zwangslogout nach 2 Stunden Loginzeit, das ist imho ein sinnvoller Kompromiss.
Wenn man zudem Captcha Logins hat, sind damit zumindest die überaus einfach zu schreibenden AutoIt Bots (simulieren Mausbewegungen, Klicks, Tastendrücken, etc) deaktiviert. Denn ein einfacher Autoit Bot kann zwar Pixelfarben an bestimmten Koordinaten vergleichen, aber eher kein Captcha per OCR auslesen. Das ist schon ein großer Schritt.
Wer einen eigenen Client schreibt und so scripten möchte, wird es _immer_ schaffen, außer man verändert die Seite ständig und banned regelmäßig die Accounts, die dann weiterhin die "alte" Seite ansurfen bzw. nach altem Schema handeln, aber moderne Bots schalten sich selbst ab, sofern sich etwas am Layout (nicht grafisch zu verstehen), ändert. Solche Programme können schlicht nicht verhindert werden, weil es eben Browsergames sind und je mehr Anstrengungen man unternimmt und Behauptungen ala "mein spiel ist 100% sicher" aufstellt, umso mehr reizt man einen ernsthaften Programmierer, das zu versuchen.
Daher denke ich, dass es reicht, wie oben beschrieben, ein Captcha Login mit Autologout nach zwei Stunden zu haben, zudem für alle Formulare bzw. an den zentralen automatisierbaren Stellen Posts und keine Gets verwendet und es ansonsten nicht übertreibt. Dann werden die User auch nicht zu stark beeinträchtigt und die Scripter nicht provoziert.
Wir haben ein Logout nach 15 min Inaktivität und ich erwäge noch ein Zwangslogout nach 2 Stunden Loginzeit, das ist imho ein sinnvoller Kompromiss.
Wenn man zudem Captcha Logins hat, sind damit zumindest die überaus einfach zu schreibenden AutoIt Bots (simulieren Mausbewegungen, Klicks, Tastendrücken, etc) deaktiviert. Denn ein einfacher Autoit Bot kann zwar Pixelfarben an bestimmten Koordinaten vergleichen, aber eher kein Captcha per OCR auslesen. Das ist schon ein großer Schritt.
Wer einen eigenen Client schreibt und so scripten möchte, wird es _immer_ schaffen, außer man verändert die Seite ständig und banned regelmäßig die Accounts, die dann weiterhin die "alte" Seite ansurfen bzw. nach altem Schema handeln, aber moderne Bots schalten sich selbst ab, sofern sich etwas am Layout (nicht grafisch zu verstehen), ändert. Solche Programme können schlicht nicht verhindert werden, weil es eben Browsergames sind und je mehr Anstrengungen man unternimmt und Behauptungen ala "mein spiel ist 100% sicher" aufstellt, umso mehr reizt man einen ernsthaften Programmierer, das zu versuchen.
Daher denke ich, dass es reicht, wie oben beschrieben, ein Captcha Login mit Autologout nach zwei Stunden zu haben, zudem für alle Formulare bzw. an den zentralen automatisierbaren Stellen Posts und keine Gets verwendet und es ansonsten nicht übertreibt. Dann werden die User auch nicht zu stark beeinträchtigt und die Scripter nicht provoziert.