Security Tips
 

WSHの暗号化 - Script Encoderの紹介

たかはし もとのぶ
2004/6/2

 ご存じのとおり、WSH(Windows Scripting Host)は、VBScriptやJScriptを用いて高機能なスクリプトを記述できるスクリプト言語として、従来プログラムを作成していたような用途にも、広く用いられている。しかし、スクリプトのソースが丸見えとなってしまうため、重要なビジネスロジックや認証情報などでは扱いにくいといったスクリプト言語故のデメリットも同時に存在する。

 こうした問題をある程度解消するのが今回紹介するScript Encoderである。Script Encoderは米MicrosoftのWebサイトで配布されている。以下のURLから適宜取得のうえ、インストールを行ってほしい。なお、日本語版は存在しないため、英語版を取得する。

Script Encoder
http://www.microsoft.com/downloads/details.aspx?FamilyId=E7877F67-C447-4873-B1B0-21F0626A6329&displaylang=en

 デフォルトの設定でインストールを行うと、C:\Program Files\Windows Script Encoder以下にscrenc.exeというコマンドラインツールとヘルプファイルがインストールされる。

 では、早速使ってみよう。暗号化を行うには、以下のように、引数として暗号化前のファイルと暗号化後のファイルを指定すればよい。

C:\Program Files\Windows Script Encoder>screnc.exe test.vbs test.vbe
スクリプトの暗号化

 なお、通常VBScriptの拡張子はvbsであるが、暗号化を行なった後ではvbeにする必要がある(JScriptの場合は、同様にjseになる)。

 図1のようなスクリプトを暗号化した結果を図2に示す。

REM Copyright(C) 2004 TAKAHASHI Motonobu
REM All Rights Reserved
'**Start Encode**

Set objNetwork = CreateObject("Wscript.Network")

Wscript.echo objNetwork.UserName
図1 暗号化前のスクリプト

REM Copyright(C) 2004 TAKAHASHI Motonobu
REM All Rights Reserved
'**Start Encode**#@~^ZgAAAA==Cm@#@&@#@&U+Y,W(%YAWM3~x,ZCr4Nn^YvJq/
^Dr2DRH+DAWM3Eb@#@&@#@& km.kaOc+^4W,W4NOhKDVR`/n.gl@#@&sx4AAA==^#~@
図2 暗号化後のスクリプト

 デフォルトではスクリプト全体が暗号化されるが、著作権表示など暗号化されると都合の悪い情報は、上記のように「'**Start Encode**」という文字列の前に記載しておけばよい。なお、この文字列は、大文字小文字の区別も含めた文字列全体がキーワードになっているため、「REM**Start Encode**」や「'**START ENCODE**」のような文字列にしただけで、文字列としての意味をなくしてしまうので、注意が必要である。

 暗号化したスクリプトは、コマンドラインで

C:\Program Files\Windows Script Encoder>test.vbe

のように直接実行してもよいし、

C:\Program Files\Windows Script Encoder>cscript.exe test.vbe

のように実行させることもできる。

 このほか、screnc.exeにはいくつかのオプションがある。また、ここでは説明しなかったが、ASPファイルなどに含まれるVBScriptやJScriptを暗号化することも可能だ。詳細はヘルプなどを参照してほしい。

 なお、Script Encoder による暗号化は強固なものではない。暗号化を解除するツールがインターネット上で公開されている。米Microsoftのページにも

Note that this encoding only prevents casual viewing of your code; it will not prevent the determined hacker from seeing what you've done and how.

という記載がある。本ツールを使用する場合、こうした点を理解したうえで使用してほしい。

Security Tips Index



Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間