お絵描きソフト「MSペイント」を使ってC言語のソースを書いてしまう脅威のGIFアニメ動画
小さなビットマップ画像を作成してテキストエディタで開いてみると、実はプログラムが隠れていた……という一連の手順を収めた脅威のGIFアニメです。画像ファイルはウィルスが入ってなくて安全、という思い込みはかなり危険であることがよく分かる動画です。
このように、小さなビットマップ画像に1ドットずつ色を置いていきます。
そして保存したものをテキストエディタで開くと……
画像ヘッダの後に、なんとC言語のソースが現れました。
元のGIF動画はこちらから見ることができます。
Writing Code in MS Paint [Animation] | Geekosystem
製作者はおそらく、最初にテキストエディタでソースを書いた後、バイナリ列を見ながらピクセルに変換していったものと考えられています。画像のサイズも文字とピクセルの変換に都合のよいものとなっています。
ところで、もし埋め込んであったのがソースではなくコンパイルして実行可能になったバイナリだったり、コンパイルが必要でないスクリプト言語だとならかなり危険なことになります。
例えば、こちらは海外の匿名掲示板「4Chan」に貼り付けられた画像。「拡張子を.HTAにして保存し、できたファイルをダブルクリックしろ」と書いてあります。指示の通りにするとHTML Applicationとして、4ChanのCAPTCHA認証を破り、自分自身を4Chanに投稿し続けるスクリプトが動作します。
Painting by Numbers – Microsoft Malware Protection Center – Site Home – TechNet Blogs
(画像は一部を壊しています)
またiPhoneの「脱獄」にもこの方式が利用されます。背景の白いキズのような横線の部分に、脱獄用のプログラムが埋め込まれています。iPhoneでは、ユーザーが記憶領域にアクセスしにくくなっているため、脱獄アプリではこうしたいじりやすい部分にプログラムが埋められ、他の脆弱性を利用して実行されるようになっています。
ちなみにこちらは抽象画家ピエト・モンドリアンの描いた絵のような画像でプログラミングする言語「Piet」。
左側が「Piet」と表示するプログラム、右側が1921年の作品「Composition with Red, Yellow and Blue.」だそうです。色々考える人はいるものですね。
DM’s Esoteric Programming Languages – Piet
動画や「.exe」などのバイナリファイルなどと違い「画像ファイルは安全」という思い込みがユーザーにはありますが、実際はこのように簡単にプログラムを埋め込むことができます。普通の方法ではこれらの埋め込まれたプログラムを実行することは難しいのですが、アンチウィルスソフトなどを使って防衛していくことが大事です。
絵の中に暗号が隠れている、という発想そのものはお話として面白いものなのですけどね。
関連記事:
「プログラマにお使いを頼んだら……」ジョークが海外の掲示板で人気 – DNA
複雑に絡み合うコード……プログラムの進化を視覚化すると大変なことに – DNA
「本当に人気のあるプログラミング言語」ランキングを計測する方法と結果 – DNA
[閲覧注意]Facebookのトップ画面に「あるメッセージ」が隠されていたことが判明 – DNA
ソフトウェアのライセンスを違法共有サイトに1回アップすると77万4千651回コピーされる – DNA
人類の敵「IE6」のレンダリングを再現しレイアウトを崩壊させるブックマークレット「IE6ify」 – DNA
RJ-45コネクタの内部にすべてを詰め込んだウルトラコンパクトなWebサーバー「Miniature Web Server」 – DNA
告発サイト「ウィキリークス」創設者の逮捕に抗議してハッカー集団が各所を攻撃中 – DNA