Mit einem versteckten Computer in Stiefeln können Sie sogar einen Großmeister schlagen / Sudo Null IT News

Viele Methoden des Schachbetrugs wurden bereits “patentiert”: jemand verwendet Handys an die Beine geklebtund Dinge wie TV-Fernbedienungen, andere gehen einfach auf die Toilette, um die Optionen am Telefon zu begutachten. Ganz zu schweigen von Fällen von nicht offensichtlichem und nur teilweise bestätigtem Betrug, wie der jüngste Skandal mit Großmeister Hans Niemann.

Der Programmierer James Stanley* hat sich einen anderen Weg ausgedacht, um beim Schach zu gewinnen. Der Miniaturcomputer Raspberry Pi Zero in seiner Tasche ist mit mehreren Knöpfen und Vibrationsmotoren in seinen Stiefeln verbunden, sodass er heimlich mit der Pi-basierten Schachengine kommunizieren kann. Ideal dafür sind die Beine: Sie sind der einzige Körperteil, mit dem sich bei gewisser Geschicklichkeit komplexe Manipulationen unbemerkt von anderen durchführen lassen.

James nannte dieses Projekt Sockenfisch, da Stockfishs Socken als Schnittstelle zur Kommunikation mit der Stockfish-Schachengine verwendet werden. Lesen Sie die Geschichte des Autors über die Details des Experiments unter dem Schnitt.

*Bitte beachten Sie, dass die Position des Autors nicht immer mit der Meinung von MyOffice übereinstimmen muss.

Bereiten Sie sich auf die Party vor

So ist jede meiner In-Shoe-Fernbedienungen mit zwei ausgestattet resistive Kraftsensoren und ein Vibrationsmotor. Kraftsensoren dienen als Knöpfe, mit denen ich die Züge des Gegners eingebe. Vibrationsmotoren geben haptisches Feedback, um Tastendrücke zu bestätigen und geben mir Schach-Engine-Cues.

Am Dienstagabend hatte ich endlich die Gelegenheit, Sockfish gegen einen ahnungslosen echten Gegner einzusetzen – Owender viel besser Schach spielt als ich. Ich überredete ihn, das Spiel mit einem Zeitlimit von fünfzehn Minuten zu spielen, was länger ist als die Blitz- und Super-Blitzpartien, die wir normalerweise spielen, aber sonst hätte ich keine Zeit gehabt, Züge mit meinen Zehen einzugeben.

Das erste Spiel spielen

Owen konnte nicht verstehen, warum ich 20 Sekunden intensives Nachdenken brauchte, um den ersten Schritt zu machen. Am Ende deutete er an, ich müsse „geprobt“ haben und versuchte jetzt mein Bestes, mich darauf zu konzentrieren, mich an die Theorie zu erinnern. Teilweise hatte er recht: Die Dateneingabe mit Sockfish und das Entschlüsseln der Antwortsignale erforderte höchste Konzentration! Ich stellte fest, dass mich das Schummeln mit Sockfish dazu zwang, mich viel mehr zu konzentrieren, als faires Schach zu spielen. Vielleicht hätte ich besser gespielt, wenn ich immer so aufmerksam gewesen wäre.

Alles lief gut, bis Sockfish mir vorschlug, gegen die Regeln zu verstoßen. Das Spiel (in der Sockfish-Ansicht) verlief folgendermaßen: (Ich habe schwarz gespielt). Das Programm wollte, dass ich 20… Dxe6 spiele.

Aber auf dem richtigen Brett war es anders. Ruari war ein Zuschauer, er wusste, was der Haken war, und schaffte es sogar, einen Teil des Spiels aufzuzeichnen. Nach seinem Video zu urteilen, war die Position der Figuren wie folgt:

Der Unterschied zur Sockfish-Variante besteht darin, dass mein Springbauer (g) nach g6 gezogen ist und mein weißfeldriger Läufer keine Figur nach g2 genommen hat.

Ich glaube, das lag daran, dass ich mich stattdessen für g6 entschieden habe, als der Computer mich aufforderte, Lxg2 zu spielen. Obwohl dieser Fehler wild aussieht, ist er durchaus verständlich: Normalerweise sagt mir Sockfish das Start- und Endfeld meines Zuges, aber da es nur eine Figur für g2 gab, sagte mir Sockfish nur das letzte Feld. Daher gab das Programm den Befehl g2 aus, aber ich habe ihn mit g6 verwechselt. Dies liegt daran, dass „2“ als zwei kurze Vibrationen auf das rechte Bein übertragen wird, und um Zeit zu sparen, wird „6“ als eine lange Vibration (bedeutet „5“) gefolgt von einer kurzen übertragen. Ich verwechselte einfach den ersten kurzen Schwung auf meinem rechten Fuß mit einem langen und entschied mich für g6.

Vielleicht ist dieses Schwingungsdecodierungsschema nützlich (oder vielleicht auch nicht):

Was auch immer es war, beim Spielen mit der Hilfe von Sockfish war ich in der Spannweite und musste selbst herauskommen.

Anstatt die Dame auf e6 zu schlagen, gegen die Regeln zu spielen (womit ich kaum durchgekommen wäre), habe ich mich mit einem Turm vor einem Schach geschützt. Das war extrem dumm von mir! Ich habe gerade einen Turm verloren und nichts zurückbekommen. Zu meiner Verteidigung, ich war so in die Interaktion mit Sockfish vertieft, dass ich kaum verstand, was auf dem Brett vor sich ging. Bald beendeten wir das Spiel, und ich gab mit der folgenden Anordnung der Figuren auf:

Lass uns das zweite Spiel spielen

Glücklicherweise stimmte Owen einem Rückkampf zu.

Diesmal filmte Ruari fast das gesamte Spiel. Ich erinnere mich, dass ich panisch war, dass das Video mich auf meinem Stuhl herumzappeln sehen würde, aber es sah so aus, als würde ich nur angestrengt nachdenken. Von der Seite war kaum zu erahnen, dass meine Schuhe vollgestopft waren.

Irgendwann im Spiel habe ich falsche Daten eingegeben, aber das habe ich bemerkt und es geschafft, alles zu korrigieren. Das Video zeigte mich, wie ich fluchte, 30 Sekunden lang angestrengt nachdachte und dann lachte und Owen bat, mich an ein paar frühere Züge zu erinnern. Es ist erstaunlich, dass er nichts ahnte.

70 Sekunden lang schwang ich meine Zehen, brach Bewegungen ab und wiederholte sie (während ich versuchte, mich natürlich zu verhalten), bis ich schließlich überzeugt war, dass ich meine Position wiedererlangt hatte, woraufhin ich weiter spielte und ein ziemlich lautes „Puh!“ ausstieß. und merke, dass ich vorsichtiger sein muss.

Leider ging nach ein paar Zügen wieder alles schief. Sockfish bat mich erneut, gegen die Regeln vorzugehen. Für das Programm war die Position im Vorstand:

Aber in Wirklichkeit standen die Zahlen so:

Im Wesentlichen 27… Dxe1 und 28. Während ich alles stornierte und neu machte, verschwand der Zug Txe1 irgendwie aus Sockfish. Ich muss 1 Halbzug weiter hinten gespielt haben, als ich hätte tun sollen, und ich konnte die Position auf dem Brett nicht wiedererlangen. In dieser Stellung schlug Sockfish vor, dass ich Td8+ spiele, aber da ich keinen Turm auf der d-Linie hatte, war es schwierig, dies zu tun. Ich erklärte, dass ich “in die falsche Steppe” gegangen sei (ohne zu erklären, was das bedeutet) und begann, ohne die Hilfe des Programms zu spielen.

Glücklicherweise hatte ich vollen Damenvorteil und gewann ohne zu viel Druck – Owen gab nach ein paar Zügen auf. Nicht ganz der Erfolg, den ich mir erhofft hatte, aber immerhin ein Gewinn! Wir können definitiv sagen, dass Sockfish 50 % der Spiele gewinnt.

Ein Geheimnis preisgeben

Unmittelbar nach dem Sieg habe ich Owen erklärt, wie ich es geschafft habe, ihn zu schlagen. Er weigerte sich zu glauben, bis ich ihm zwei im Schuh integrierte Fernbedienungen und einen Taschencomputer zeigte. Alles in allem war er mir nicht wirklich böse.

Ich sagte ihm, dass ich einen “glaubwürdigen” Schachspieler finden würde, der mit meiner Erfindung die Weltmeisterschaft gewinnen könnte, aber er antwortete, dass dies “das Spiel diffamieren” könnte und er mich definitiv verraten würde. Allerdings eignet sich ein solches Szenario tatsächlich besser für eine Verfilmung auf Netflix als für eine Umsetzung.

Einzelheiten

Ich habe eine Plastikbox in meiner Tasche, in der sich ein Raspberry Pi Zero, ein 4-Kanal-ADC zum Lesen von Widerstandskraftsensoren, mehrere Transistoren zum Schalten der Leistung der Vibrationsmotoren und ein Trimmerwiderstand für jeden Vibrationsmotor zum Einstellen befinden Vibrationsstärke. Ohne die Trimmer wären die Motoren zu laut und könnten (sozusagen) das ganze Spiel ruinieren. Hier ist, was in der Plastikbox ist:

Auch in meiner Tasche ist eine USB-Batterie, um den Pi-Computer zu betreiben.

Der Pi führt ein Python-Skript aus, das Daten von den GPIO-Pins liest und in den stdout-Ausgabestrom schreibt, der vom Perl-Skript verwendet wird. Perl wiederum liest die Tastendrücke aus dem stdin-Eingangsstrom, rekonstruiert die Position der Formen und führt Stockfish aus und schreibt dann die Vibrationsimpulse in seinen stdout-Ausgangsstrom, wonach sie von einem zweiten Python-Skript an die GPIO-Pins übertragen werden .

(Warum so eine ausgefallene Architektur? Ich hätte es vorgezogen, das Programm in Perl zu schreiben, aber alle Raspberry Pi GPIO-Beispiele verwenden Python … also war es einfacher).

Dieses ganze System läuft innerhalb einer Schnittstelle mit der Option -L, so dass die Ausgabe zur späteren Betrachtung protokolliert wird. Das System wird beim Einschalten des Computers mit dem Befehl /etc/rc.local gestartet.

Werden die In-Shoe Remotes angeschlossen, während der Rechner hochfährt, dann „klebt“ einer der Vibrationsmotoren für etwa eine Minute, weil der GPIO-Pin, der den Motor steuert, während des Pi-Boots mit +5 V angesteuert wird. Es spielt keine Rolle, aber Sie können fühlen, wie die Vibration im Laufe einer Minute schwächer wird, wenn es wärmer wird und der Widerstand zunimmt.

Mit einem Lötkolben machte ich ein Loch in der aufgesetzten Tasche meiner Hose, um die Drähte in die Beine zu führen.

Ich habe ursprünglich 4-Pin verwendet TRRS-Anschlüsse um den Computer mit den Stiefeln zu verbinden, fand sie aber sehr schwach und unzuverlässig. Ich habe sie durch 4-polige wasserdichte E-Bike-Stecker ersetzt, die viel besser funktionieren und nicht viel größer sind.

Zuerst habe ich In-Schuh-Fernbedienungen aus PLA-Kunststoff gedruckt. Aber es stellte sich als zu steif heraus, was das Gehen erschwerte. Dann bin ich auf flexiblen TPU-Kunststoff umgestiegen, der für meine Zwecke viel besser ist. Außerdem habe ich ursprünglich gewöhnliche Mikroschalter verwendet, die beim Gehen beschädigt wurden. Indem ich sie durch resistive Kraftsensoren ersetzte, löste ich nicht nur dieses Problem, sondern erhielt auch einen zusätzlichen Vorteil – die Möglichkeit, die Aktivierungskraft auf Softwareebene anzupassen.

Sockfish ähnelt einem System Eudämonen – ein Computer, der in Schuhen versteckt ist und dazu bestimmt ist, beim Roulette zu betrügen. Ein sehr beeindruckendes Projekt angesichts der primitiven Elektronik der 70er Jahre des letzten Jahrhunderts.

Nachwort: Ich plane jetzt, Sockfish-ng zu entwickeln

Sagen Sie es niemandem, aber ich habe bereits Pläne für eine verbesserte Version von Sockfish, die viel schwerer zu erkennen sein wird!

Der aktuelle Prototyp ist nur gut genug, um Kumpels in der Kneipe ein paar Mal Streiche zu spielen. Um die WM zu gewinnen, muss man die Sache viel ernsthafter angehen.

Ich denke, wir werden den Computer und alle anderen elektronischen Komponenten auf derselben Leiterplatte platzieren, anstatt den Computer an zwei Steckbretter anzuschließen. Diese Leiterplatte sollte nach meiner Vorstellung in einem der Schuhe platziert werden. In jedem der Stiefel könnte ein separater Akku und ein Bluetooth-Modul (oder ähnliches) platziert werden, und die gesamte Elektronik könnte unter den Innensohlen versteckt werden. Dann würde selbst eine vollständige Leibesvisitation nichts Verbotenes aufdecken.

Die Schnittstelle kann grundsätzlich unverändert bleiben, lediglich die Verbindung zwischen „primärem“ und „sekundärem“ Stiefel kann drahtlos erfolgen. Vielleicht sollte darauf geachtet werden, dass es einfacher ist, zwischen langen und kurzen Impulsen zu unterscheiden.

Um eine Täuschung zu erkennen, müsste man die Schuhe mit Röntgenstrahlen beleuchten. Besteht die Gefahr einer solchen Kontrolle, dann kann der Spieler in normalen Schuhen durch die Kontrolle gehen, und sein Komplize kann auf andere Weise ein Paar Stiefel mit einem Geheimnis einbringen. Der Spieler wechselt die Schuhe, nachdem sie bereits gescannt wurden.

***

Wir freuen uns über Ihre Meinung zu dem Artikel in den Kommentaren. Vielleicht haben Sie Ihre eigenen Beispiele für technologische Möglichkeiten des Schummelns im Schach und anderen Wettkampfspielen? Unbedingt darüber schreiben! Und um weitere interessante Inhalte zu erhalten, abonnieren Sie unseren habr-Blog: Wir übersetzen regelmäßig Artikel ausländischer Autoren und teilen das Fachwissen unserer Mitarbeiter.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *