TIPS:WindowsでWSHスクリプトコードを暗号化するスクリプト言語によるプログラミングは簡易な半面、ソース・コードがエンドユーザーに露出してしまう、コードの改変が可能である、などの問題も存在する。Encoderを利用することで、スクリプト・コードを暗号化し、ユーザーの目から隠ぺいできる。Pages)、Webページのクライアント・サイド言語として、VBScriptやJavaScript(JScript)のようなスクリプト言語が適用されるケースは多い。スクリプト言語はその扱いの簡便さから多くのユーザーに親しまれ、急速に普及した。スクリプト言語をビジネスの局面で本格的に活用しようとした場合、いくつかの問題もある。1つに、ソース・コードを一般ユーザーの目から隠すことができないという点だ。いうまでもなく、ソース・コードとは、アプリケーションを販売する企業にとっては、知的財産の集積であり、付加価値の源泉だ。スクリプト言語を採用した場合、コードはまったく保護されないので、第三者がそのコードを改変して、自分のアプリケーションに取り込むことも自由にできる。これは、ビジネスとしてスクリプト言語を利用する場合に、致命的な阻害要因となるものだ。ソース・コードを自由に見られるということは、アプリケーションを任意の第三者が自由に書き換えられることを意味する。本来は問題なく動作すべきアプリケーションが、第三者の手によって不用意に改変されてしまったとしても、これを防ぐ手段は存在しない。Encoderとは、文字どおり、スクリプト言語で開発されたソース・コードをエンコード(符号化)するためのツールで、これによってコードの露出を防ぐことができる。Encoderをインストールしておこう。Encoderのダウンロード先は、以下のとおりである。Encoder(日本語版)のダウンロード先ダウンロードしたsce10jp.exeをダブルクリックすれば、インストーラが起動される。使用許諾やインストール先フォルダなどを確認した後、インストール処理が開始される。Encoder本体やヘルプ・ファイルなど必要なファイルがコピーされるので、エクスプローラなどから確認してみてほしい。Encoderは、コマンド・プロンプトから利用可能なコマンドライン・ツールだ。Encoderのインストール・フォルダ)に移動してから、以下のように記述すればよい。Encoder(screnc)と同一のフォルダに保存されているものとする。sample.vbeこの結果、sample.vbeが作成されれば成功だ。以下に、入力元のsample.vbsと出力結果のsample.vbeを示しておこう。平のテキストであったスクリプト・コードが、人間の目では判読できない文字列に置き換えられているのが確認できるはずだ(ただし、コード内に2bytesが含まれている場合には、その部分だけはエンコードされないので、注意すること)。Encode**WScript.Echo("サンプル")エンコードされた結果は次のとおり。Encode**」)は、エンコードの開始位置を定めるエンコード・マーカーだ。Encoderは、エンコード・マーカーとして指定された以降のコードのみをエンコード処理する。著作権の表示など、ソース・コードの一部をエンコード処理の対象外としたい場合に使用すると良いだろう。無指定の場合は、スクリプト部分がすべてエンコードの対象となる。VBScript、JavaScriptファイルをエンコードした後の拡張子は、それぞれ「.vbe」(VBScript.Encode)「.jse」(JavaScript.Encode)でなければならない点に注意すること。エンコード後の「.vbe」(「.jse」)ファイルもエンコード前とまったく同様の処理が行われることを確認してみてほしい。Encoderにはさまざまなオプションが用意されている。以下に、その中でも主要なものを挙げておくことにしよう。<使用言語>コード内に言語の指定がない場合に使用するデフォルト言語(VBScript|JScript)。Encoderが標準で認識できる拡張子は、以下のとおりである。Encoderでは認識できない。そこで、表内の「/e」オプションを利用して、「.sct」ファイルに関連付ける必要がある。Encoderの目的はコードの安易な表示・改変を防ぐことにある。暗号を解こうとするクラッカーから「完全にコードを保護するものではない」ので、その点は理解した上で利用してほしい。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。