コンピュータ・ウィルスなんぞを作ったり、それをばらまくことに
快感を覚えているようなヤツは、私の理解の外にある不思議な人物であります。
サラ金に巨額の借金を背負って、銀行強盗をはたらくヤツのほうが、
まだ理解は出来ます。善悪は別として、動機としては理解可能です。
でも、ウィルスの場合は全く理解できないのですよ。
愉快犯と言ってしまえばそれまでですけど。
ま、それはおいといて、ここでウィルス開発についてひとつの問題提起を
してみたいと思います。
ウィルスの開発者達は、いったいどうやって動作検証をしているのか、
ということです。
ソフトウェアの開発経験のある方なら、ここで大笑いしてしまいませんか?
ウィルスもプログラムの一種です。一般的な「プログラム」とはちょっと違った
毛色のものもありますが、それらも、広義には「プログラム」と捉えて
差し支えないでしょう。ですから、ウィルス開発にあたっては、
コード(例えば C 言語とか、例えば VB とか、例えばアセンブラとか)を
書いて、そのコードが正しく(プログラマの意図した通り)に動作するかどうかの
検証が必要になります。プログラムというのは、どんなに簡単なものでも、
一発で正常に動作することはまれで、普通は何回もテストを繰り返して、
色々と修正していかなければなりません。
一方、ウィルスはコンピュータに何らかの被害を与えるものです。
例えば私が自宅の PC を使って、Windows OS のシステムファイルをズタズタに
破壊してしまうウィルスを作るとしましょう。そうなると、Windows は正常に
動作しなくなってしまいます。もちろん、Windows の上で動くアプリケーションも
正常に動作しないことでしょう。
そういうウィルスを作るべく、暗い情熱に突き動かされて、セコセコと
コーディングして、さて動作を確認してみようという段階になって、
私は頭を抱えてしまうのです。何故かというと、自分の使っている PC
で動作確認するということは、その PC の Windows がズタズタにされてしまう
ということだからです。
私も昔はソフトウェアの技術屋でしたから、そういう場合には、
ああすればよいとかこうすればよいとか、色々と手段は思いつきますよ。
もう一台の PC を用意しておいて、そちらでテストするとか、ソフト的なカラクリを
用意して、ウィルスの動作は確認できるけど、実際には悪さはせずに空振りして
しまうようにしておくとか、その二つを両方とも行うとか。
別の PC を用意したとしても、それはそれで大変なことです。テストが一回で
終了すれば良いですけど、何回も何回もテストするということは、
何回も何回も Windows を再インストールしなければなりませんね。ご苦労様です。
ウィルスを空振りさせるカラクリを用意するのは効果的に思えます。しかし、
人間のやることにはミスがつきものでして、だからこそのテストなのです。
カラクリ自体に不備があって、空振りさせることが出来ずに、実際に Windows
を破壊してしまうかもしれません。また、ウィルスは A という部分を破壊する
つもりで作っていて、A に対する悪さを空振りさせる用意をしていたとしても、
テストが完了していない段階では、ウィルスは B という部分を破壊してしまう
かもしれません。他の予期せぬ損害を自分の PC に与えるかもしれません。
ご愁傷様です。
こんな風に考えてくると、ウィルスのテストは善意のソフトのテストよりも
かなり大変なものであることが想像されます。ほんと、ご苦労なことです。
ウィルス作りにかける情熱を、もっと他のことに使えば・・・、
などと思ってしまうのも、無理からぬところでありましょう。
ウィルス作りの実態について、私は何も知らないのですが、もしかしたら、
実際はテストなどほとんどせずに、つまり自分の PC に損害を与えることはさけつつ、
動作は充分に検証もせずに、ばらまかれているウィルスが多いのかもしれません。
ウィルスが仕様通りに動かないとしても、それに気付く人も少ないでしょうし、
「仕様と違う!」と文句を言う人もいないでしょうから、それはあり得る話でしょう。
でも、話としては、ウィルスを作っているヤツが、ブツブツ言いながら何回も
Windows をインストールしていたり、「あちゃー、こんなはずじゃなかったのに」
と、立ち上がらない PC を目の前にして呆然としていたりするほうが面白いので、
そういう状態を想像して楽しみましょう。