No More Secrets - 1992年の映画『Sneakers』の画面内復号化エフェクトを再現
(github.com/bartobri)nmsは、パイプで受け取ったASCIIまたはUTF-8テキストに画面内のデータ復号化エフェクトを適用し、最初は暗号化データのように見せたあと、元の平文文字を表示するコマンドラインツール- このエフェクトは、1992年のハッカー映画『Sneakers』の有名なデータ復号化シーンを再現したもので、参考用の映画クリップでは0:35時点の演出に対応
nmsは基本的に、最初に暗号化された文字を表示してからユーザーのキー入力を待ち、その後に復号化シーケンスを開始する仕組み- 主な使い方は
ls -l | nmsのように標準出力データをパイプで渡す形式で、代表的なオプションとして自動復号化の-a、空白文字マスキングの-s、前景色指定の-f <color>、画面クリアの-c、バージョン表示の-vを提供 - 付属の
sneakersプログラムは映画クリップ内の場面を再現し、終了前にユーザーがメニューオプションのいずれかを選択する必要がある - 基本構成は依存関係なしで動作するが、エフェクト再現にはANSI/VT100ターミナルのエスケープシーケンスを使用
- ANSI/VT100をサポートしないターミナル向けにncurses実装も提供
- ncurses実装は非ANSIターミナルをサポートする一方、出力前に常に画面を消去するため、インライン機能を失う制約がある
- ソースからのインストールには
git、gcc、makeが必要で、ビルド対象はnms、任意のsneakers、ncurses向けのnms-ncursesとsneakers-ncursesに分かれる - コマンドラインプログラムで同じエフェクトを使いたいユーザー向けに、CライブラリLibNMSも別途提供
- GNU General Public Licenseの条件に従って再配布と改変が可能な自由ソフトウェア
1件のコメント
Hacker News の意見
インストール手順が、このパッケージをインストールしようとする人がすでに gcc/git/make を持っていると想定していない点が気に入った
「新規インストールしたディストリビューションを使う完全初心者の *nix ユーザーで、Sneakers の復号エフェクトを再現するコマンドをインストールしたいです」みたいな人はいないだろうから
あまりに多くのパッケージがこういう前提を置いていて、その場合ほかの重要な情報も抜けている可能性が高くなる
それに、npm install 的な何かではない点も良い
単体では動かないコードや設定の断片だけがあり、どこに入れるべきか、何の中にネストされるのかも不明な場合がある
ページ内で見つからない名前の import を使っていることもある
少なくともページの下に完全な例か、そのリンクくらいは置いてほしい
.hファイル名だけを見てmakeを叩いたり、apt でlib-$THINGを探したりするのにあまりに多くの時間を失ってきたこういうのはデフォルトであるべきで、うれしい例外であるべきではない
こういう苛立ちには100%共感する
このリポジトリのように
makeが入るものは、私たちのプロセスのどこにも入れたくない結局失敗するから
ただしこれは本気で使えというものではなく、おもちゃプロジェクトに近い
それでも依存関係なしでソースから直接実行できるならすばらしいし、だから一部のツールはいまでも純粋なシェルコードで作られているのだと思う
実際の暗号解析攻撃の中には、CBC パディングオラクル、Bleichenbacher の RSA パディングオラクル、ECB のバイト単位攻撃のように、実行すると Sneakers の復号シーンのように見える類いのものがある
Juliano Rizzo がこれに Hollywood Attack という用語を付けていたと記憶している
良い用語なので皆が使えばいいと思うし、攻撃の直感をつかむのにも少し役立つ
多くの暗号解析攻撃は、128ビットや2048ビットのメッセージ全体を一度に相手にするより、暗号文の1バイトを創造的に孤立させる形で動作する
この映画が本当に好き
子どもの頃に VHS で見たし、偶然にも主要シーンの一つの舞台を毎日自転車で通っている
今 Google と Wharton の間にあるレンガ造りの中庭がそこ
映画では屋外の食事スペースとして出てきて、Sidney Poitier が Martin の Karman Ghia で車載電話を取り、「Martin, It's your mother」と言う
それから彼らが NSA と一緒にいるわけではないと気づく
今はそこに宙に浮いているような消防署が追加され、道も少し変わったが、映画撮影当時と今の風景がいまでもよく似たまま残っている点がいい
全体として本当によくできた映画
ソースファイルを3〜5個ダウンロードして
makeと打つだけで普通にビルドできるって?隔離されたビルド環境の構成もなく、依存関係1600個を取得してソースからビルドすることもなく、
.soライブラリ1600個分のファイルシステムレイヤーもインストールせず、Docker や npm みたいなものも動かさないって?しかも1秒もかからずコンパイルされるって?
この新しい言語 C にできることは実に驚きだ
makeと C ツールチェーンがインストールされている必要があるそれが入っているなら、ほぼ確実に Python、Perl、もしかするとかなり最近の Java もインストールされている可能性が高い
MacOS は別だが、ほとんどの Linux ディストリビューションはそうだと思う
そしてこれらもすべて、依存関係なしで同じことができる
90年代には
stdlib.hやほかのライブラリを含めると C プログラムが肥大化すると誤解して、メソッドを自前で実装したりしていたリンクがどう動くのかも分かっていなかったわけだ
12歳の自分が最近の NPM、pip、bundle、さらには Electron を見たら息が詰まりそうになると思う
ごくわずかなもので本当に多くのことができた
環境がインストールされていて、プログラムに依存関係がなければ、ビルドコマンドを実行するだけでよい
このプロジェクトにも、バージョンが明記されていない gcc、make、ncurses が必要
そうすると今のひどい Python のようになりかねない
Python はかつて素晴らしく、実際そのまま動いた
皆がこの言語に気づき、Nvidia が関わり、TensorFlow/PyTorch/機械学習が入ってきて壊れた
パッケージ互換性に関心のないスクリプトキディたちが、ひどいものをあまりにも多く書いたからだ
コミュニティはこの言語の最大の長所であると同時に、非常に大きな最悪の部分でもある
makeを叩いてまともに動いたことがあまりに少ないので、今では C プロジェクトを見ると「かっこいいけど、自分にはコンパイルできないだろうな」と思ってタブを閉じてしまうこのプロジェクトはちゃんとビルドできた
「Passport」という単語を聞くと、「My voice is my passport」と言わずにはいられない。少なくとも頭の中ではそうなる
「cattle mutilations are up」
今となってはどちらだったか混乱している
今自分がやったことは簡単ではなかった
そのハッキングは映画から直接着想を得たもので、PLA がポッドキャストのエピソードで見せていた
https://phonelosers.com/2008/05/pla-radio-episode-17-voice-a...
これと cool-retro-term[1] の組み合わせは、自分のコンピュータで本物のハッカー時間を過ごすための必需品です
[1] https://github.com/Swordfish90/cool-retro-term
https://www.youtube.com/watch?v=_gRIG_zK4SQ
最初のヘルプデスクの仕事にはメインフレームのサポートが含まれていて、まだ残っていた古い IBM 4分割プラズマ端末を使えました
チケットシステムもまだメインフレーム上にあったので、ヘルプデスク業務に実際役立っていました
おそらくこのモデルか、非常によく似たものだったと思います: https://www.argecy.com/ibm-3290-plasma-terminal
[1] https://github.com/Rezmason/matrix
brew install --cask cool-retro-termKevin Mitnick の訃報を見て、すぐにこの映画を思い出したのが不思議です
たぶん多くの人がそうだったのだと思います
いつ見ても面白いです
数年前、同じようにほぼ同じことをする単一ファイルの Python スクリプト
decrypt.pyを作りました悲しいことに、今でも自分の GitHub プロジェクトの中で最も人気のあるリポジトリです: https://github.com/jtwaleson/decrypt
Sneakers の現代版をぜひ見てみたいです
誰かが量子コンピュータはおそらくすでに作られていると突き止め、もし実在するなら盗み出さなければならない、という話だといいですね
原作 Sneakers の「no more secrets」ミームにも完全にぴったり合います
ただ、原作もすでに老いと成熟についての映画だったので、さらに一世代が過ぎたというだけでは、それほど説得力のある物語にはならなかったかもしれません
River Phoenix と Sidney Poitier が亡くなっているのは残念ですし、Ben Kingsley がまだ存命かどうかも確認してしまいました
技術をある程度扱う映画として、原作は驚くほどよく持ちこたえていると思います
それは部分的には、ワールドワイドウェブ直前という時代設定にうまく乗っていたことと、2023年でも重要なシステムがメインフレーム上で動いていることがまだあるからです
なぜ自分が子どものころ好きだった映画には、リブートも続編も前日譚も、ひどい続編ですら作ってくれないのか分かりません
これは私の人生の映画の一つです
復号シーンは記憶の中で本当に象徴的で、このプロジェクトはその雰囲気を完全に正しく実装しています