nmsist ein Kommandozeilen-Tool, das auf per Pipe übergebenen ASCII- oder UTF-8-Text einen Entschlüsselungseffekt wie auf dem Bildschirm anwendet: Zunächst wirkt der Text wie verschlüsselte Daten, anschließend werden die ursprünglichen Klartextzeichen sichtbar- Der Effekt bildet die berühmte Datenentschlüsselungsszene aus dem Hackerfilm Sneakers von 1992 nach und bezieht sich auf den Effekt bei 0:35 in diesem Filmclip als Referenz
nmszeigt standardmäßig zunächst die anfänglichen verschlüsselten Zeichen an, wartet dann auf eine Tasteneingabe des Nutzers und startet anschließend die Entschlüsselungssequenz- Die typische Nutzung besteht darin, Standardausgabe per Pipe zu übergeben, etwa
ls -l | nms; zu den wichtigsten Optionen gehören automatische Entschlüsselung mit-a, Maskierung von Leerraumzeichen mit-s, Festlegen der Vordergrundfarbe mit-f <color>, Bildschirmbereinigung mit-cund Versionsanzeige mit-v - Das mitgelieferte Programm
sneakersstellt die Szene aus dem Filmclip nach; vor dem Beenden muss der Nutzer eine der Menüoptionen auswählen - Die Standardkonfiguration hat keine Abhängigkeiten, nutzt für die Nachbildung des Effekts jedoch ANSI/VT100-Terminal-Escape-Sequenzen
- Für Terminals ohne ANSI/VT100-Unterstützung wird eine ncurses-Implementierung bereitgestellt
- Die ncurses-Implementierung unterstützt Nicht-ANSI-Terminals, hat aber die Einschränkung, dass sie vor der Ausgabe immer den Bildschirm löscht und dadurch die Inline-Funktionalität verloren geht
- Für die Installation aus dem Quellcode werden
git,gccundmakebenötigt; die Build-Ziele sind innms, das optionalesneakerssowienms-ncursesundsneakers-ncursesfür ncurses aufgeteilt - Für Nutzer, die denselben Effekt in Kommandozeilenprogrammen verwenden möchten, wird die C-Bibliothek LibNMS separat bereitgestellt
- Es handelt sich um freie Software, die unter den Bedingungen der GNU General Public License weiterverbreitet und verändert werden darf
1 Kommentare
Hacker-News-Kommentare
Mir gefällt, dass die Installationsanleitung nicht davon ausgeht, dass jemand, der dieses Paket installieren will, bereits gcc/git/make hat
Es wird wohl niemanden geben, der so etwas sagt wie: „Ich bin ein kompletter *nix-Anfänger mit einer frisch installierten Distribution und möchte den Befehl installieren, der den Entschlüsselungseffekt aus Sneakers nachbildet.“
Zu viele Pakete machen solche Annahmen, und in solchen Fällen ist die Wahrscheinlichkeit groß, dass auch andere zentrale Informationen fehlen
Außerdem ist es schön, dass es nicht irgendein
npm install-Ding istManchmal gibt es nur Code- oder Konfigurationsschnipsel, die für sich allein nicht funktionieren, und es ist unklar, wo man sie einfügen soll oder worin sie verschachtelt sind
Manchmal werden auch Imports verwendet, deren Namen auf der Seite nirgends zu finden sind
Wenigstens ein vollständiges Beispiel oder ein Link dazu am Ende der Seite wäre schön
.h-Dateinamensmakezu hämmern oder in apt nachlib-$THINGzu suchenSo etwas sollte der Standard sein und keine angenehme Ausnahme
Diese Frustration kann ich zu 100 % nachvollziehen
Etwas wie dieses Repository, in das
makeeingeht, würde ich nirgendwo in unseren Prozessen aufnehmen wollenEs wird am Ende ohnehin scheitern
Andererseits ist das hier nicht für den ernsthaften Einsatz gedacht, sondern eher ein Spielzeugprojekt
Trotzdem wäre es cool, wenn man sie ohne Abhängigkeiten direkt aus dem Quellcode ausführen könnte, und deshalb scheinen einige Tools noch immer in reinem Shell-Code geschrieben zu werden
Bei echten kryptanalytischen Angriffen gibt es Kategorien wie CBC-Padding-Orakel, Bleichenbachers RSA-Padding-Orakel und Byte-für-Byte-Angriffe auf ECB, die bei der Ausführung wie die Entschlüsselungsszene aus Sneakers aussehen
Soweit ich mich erinnere, hat Juliano Rizzo dafür den Begriff Hollywood Attack geprägt
Das ist ein guter Begriff, ich fände es schön, wenn ihn alle verwenden würden, und er hilft auch ein wenig dabei, eine Intuition für den Angriff zu entwickeln
Viele kryptanalytische Angriffe arbeiten nicht damit, gleich die gesamten 128 oder 2048 Bit einer Nachricht auf einmal anzugehen, sondern isolieren auf kreative Weise jeweils ein Byte des Chiffrats
Ich liebe diesen Film wirklich
Ich habe ihn als Kind auf VHS gesehen, und zufällig fahre ich jeden Tag mit dem Fahrrad an dem Hintergrund einer der Schlüsselszenen vorbei
Das ist der gemauerte Innenhof, der heute zwischen Google und Wharton liegt
Im Film erscheint er als Außenbereich zum Essen, und Sidney Poitier sagt mit dem Autotelefon in Martins Karmann Ghia: „Martin, It's your mother“
Danach merken sie, dass sie nicht mit der NSA zusammenarbeiten
Inzwischen hat man dort eine scheinbar schwebende Feuerwache hinzugefügt, und die Straße ist auch etwas anders, aber ich mag, dass die Szenerie noch immer ähnlich geblieben ist wie zur Zeit der Dreharbeiten
Insgesamt ist es wirklich ein sehr gut gemachter Film
Man lädt 3 bis 5 Quelldateien herunter, tippt einfach
make, und es baut einfach?Keine Einrichtung einer isolierten Build-Umgebung, kein Herunterladen von 1600 Abhängigkeiten, um sie aus dem Quellcode zu bauen, keine Installation einer Dateisystemhierarchie mit 1600
.so-Bibliotheken, kein Docker, kein npm?Und dann ist es auch noch in weniger als einer Sekunde kompiliert?
Erstaunlich, was diese neue Sprache C alles kann
makeund die C-Toolchain müssen installiert seinWenn das installiert ist, dann ist ziemlich wahrscheinlich auch Python, Perl und vielleicht sogar ein recht aktuelles Java vorhanden
Nicht auf MacOS, aber bei den meisten Linux-Distributionen dürfte das so sein
Und alle diese Sprachen können dasselbe ebenfalls ohne Abhängigkeiten leisten
In den 90ern dachte man oft fälschlicherweise, ein C-Programm würde aufgebläht, wenn man
stdlib.hoder andere Bibliotheken einbindet, und implementierte dann Methoden selbstDas heißt wohl auch, dass man nicht wusste, wie das Linken funktioniert
Mein 12-jähriges Ich würde heute beim Anblick von NPM, pip, bundle oder sogar Electron nach Luft schnappen
Mit sehr wenig konnte man wirklich sehr viel machen
Wenn die Umgebung installiert ist und das Programm keine Abhängigkeiten hat, muss man nur den Build-Befehl ausführen
Dieses Projekt braucht ebenfalls gcc, make und ncurses ohne angegebene Versionen
Sonst endet es womöglich wie das heutige schreckliche Python
Python war einmal fantastisch und hat tatsächlich einfach funktioniert
Dann haben es alle entdeckt, Nvidia hat sich eingemischt, und mit TensorFlow/PyTorch/Machine Learning ist alles kaputtgegangen
Weil zu viele Script-Kiddies Zeug zusammengeschustert haben, ohne sich um Paketkompatibilität zu kümmern
Die Community ist zugleich die größte Stärke dieser Sprache und ihr schlimmster Aspekt
makepersönlich so selten auf Anhieb funktioniert, dass ich bei C-Projekten inzwischen meist denke: „Cool, aber ich werde das ohnehin nicht kompilieren können“, und den Tab schließeDieses Projekt ließ sich gut bauen
Wenn ich das Wort „Passport“ höre, kann ich nicht anders, als „My voice is my passport“ zu sagen, wenigstens in meinem Kopf
„cattle mutilations are up“
Inzwischen weiß ich nicht mehr, was von beidem es war
Das war gerade nicht leicht für mich
Der Hack war direkt vom Film inspiriert, und PLA hat ihn in einer Podcast-Episode vorgeführt
https://phonelosers.com/2008/05/pla-radio-episode-17-voice-a...
Die Kombination mit cool-retro-term[1] ist unverzichtbar, um auf meinem Computer echte Hacker-Zeit zu verbringen
[1] https://github.com/Swordfish90/cool-retro-term
https://www.youtube.com/watch?v=_gRIG_zK4SQ
In meinem ersten Helpdesk-Job gehörte auch Mainframe-Support dazu, und ich konnte noch ein altes IBM-4-fach-Plasma-Terminal benutzen, das damals noch vorhanden war
Das Ticketsystem lief ebenfalls noch auf dem Mainframe und war daher für die Helpdesk-Arbeit tatsächlich nützlich
Vermutlich war es dieses Modell oder etwas sehr Ähnliches: https://www.argecy.com/ibm-3290-plasma-terminal
[1] https://github.com/Rezmason/matrix
brew install --cask cool-retro-termEs ist schon bemerkenswert, dass mir beim Lesen von Kevin Mitnicks Nachruf sofort dieser Film eingefallen ist
Vermutlich ging es vielen so
Immer wieder unterhaltsam
Vor ein paar Jahren habe ich ein einzelnes Python-Skript namens
decrypt.pygeschrieben, das fast genau dasselbe machtTraurigerweise ist es bis heute das beliebteste Repository unter meinen GitHub-Projekten: https://github.com/jtwaleson/decrypt
Ich würde wirklich gern eine moderne Version von Sneakers sehen
Am besten mit einer Handlung, in der jemand herausfindet, dass ein Quantencomputer vermutlich bereits gebaut wurde, und ihn stehlen muss, falls er tatsächlich existiert
Das würde auch perfekt zum „no more secrets“-Meme des ursprünglichen Sneakers passen
Allerdings war das Original selbst schon ein Film über Alter und Reife, daher wäre es wohl nicht besonders überzeugend gewesen, die Geschichte einfach nur eine weitere Generation später anzusiedeln
Es ist schade, dass River Phoenix und Sidney Poitier nicht mehr leben, und ich habe sogar nachgesehen, ob Ben Kingsley noch lebt
Für einen Film, der sich in gewissem Maß mit Technik beschäftigt, hat sich das Original meiner Meinung nach erstaunlich gut gehalten
Zum Teil auch deshalb, weil es genau vor dem World Wide Web spielt und es selbst 2023 noch vorkommt, dass wichtige Systeme auf Mainframes laufen
Ich weiß nicht, warum die Filme, die ich als Kind mochte, keine Reboots, Fortsetzungen, Prequels oder wenigstens eine gescheiterte Fortsetzung bekommen
Das ist einer meiner absoluten Lieblingsfilme
Die Entschlüsselungsszene ist in meiner Erinnerung wirklich ikonisch, und dieses Projekt hat dieses Gefühl vollkommen perfekt eingefangen