Rotate Sushi

巻き寿司の 3D モデルを、青い画面の中で回して見せるだけの Windows プログラムです。DirectX 9 のサンプル(DirectX SDK のチュートリアル「Meshes」)と同じ作りで、モデルだけを自分で用意した寿司に差し替えています。

再現イメージ

当時の実際の画面は YouTube の動画「Sushi.exeの実行例」 に残っています。下のアニメーションはそれとは別に、配布していた exe とモデルから描画の条件を読み取り、AI が描き直した創作イメージです(実際の画面ではありません)。

巻き寿司が青い背景の中で円を描くように回る、AI による再現アニメーション

ノートンに消された話

配り始めたその日、この寿司を回すだけの 10KB のプログラムが、ノートン アンチウイルスにウイルスとして消されました。もちろん誤検知です。おもしろいのは、中身を 1 バイトも変えずに、ファイル名を変えただけで判定が変わったことでした。いまはこのプログラムを配っていないので、ここにあるのは当時の記録です。

ノートンは、まずダウンロードしたときに警告を出しました。理由として並んでいたのは「ごく少数のユーザー」「ごく新しい」「未確認」の 3 つです。

Norton のダウンロードインサイト。sushi.exe について「あなたはこのファイルをごく初期にダウンロードした Norton ユーザーです」と警告し、理由として、ごく少数のユーザー・ごく新しい・未確認の 3 つを挙げている

実行すると「疑わしい動作をしていました」として止められ、削除されました。

Norton のファイルインサイト。sushi.exe が「プログラムがコンピュータ上で疑わしい動作をしていました。このプログラムは遮断され削除されました」と表示され、詳細にはごく少数のユーザー・リスク高とある

そこで、次の順に確かめました。

  1. メッセージボックスを出すだけのプログラムを Sushi.exe という名前で作ると、これも疑わしいファイルとして検知された
  2. 本物の寿司のプログラムを DxTest4.exe という名前でコンパイルすると、検知されない
  3. それをコピーして Sushi.exe に名前を変えると、ウイルスとして検知された
  4. 2 と 3 のファイルは、MD5(ファイルの中身から計算する指紋のような値)まで一致していた

DxTest4.exe と Sushi.exe を並べた画面。どちらもサイズ 10KB、CRC 72E1A964、MD5 048A66DDB8F2807C838603D37ACF2296 で、ツールが「重複ファイル検出」と表示している

当時は、いくつかの「怪しい」条件が重なったのだろうと考えていました。ダウンロード元が知られていない、使っている人が世界に少ない、コンパイルしたときと名前が違う、昔 sushi.exe という名前のウイルスがあったのかもしれない、といった条件です(最後のものは当時も推測で、今回調べても確かめられませんでした)。同じファイルを試したほかのアンチウイルス 3 社は、何も言いませんでした。

いま読み直すと、ひとつ説明のつかないところが残ります。ノートンの評判による判定(Norton Insight1)は、ファイルの中身のハッシュ値と、それを使っている人の数でファイルを見分ける仕組みです。これなら中身が同じ 2 つのファイルは同じ評判になるはずなのに、名前で結果が分かれました。評判のほかに、名前も手がかりにする仕組みが動いていたのかもしれません。当時の本人は「厳しすぎて損はしない」と感心しつつ、「個人のソフト製作者にはきつい仕様かも」と書いています。名前を変えたきっかけは、コンパイルしたときの名前がダサかったから、でした。


  1. Norton 2010 で入った仕組みで、ファイルの SHA-256 ハッシュを集め、多くの利用者のパソコンに現れるものを安全とみなす。Norton Insight(Wikipedia) ↩︎