Windows Script Encoderとは、JScriptやVBScriptを暗号化して、スクリプトのソースが読まれるのを防ぐための難読化ツールです。
スクリプトには、だれでもソースコードを見ることができてしまい、保護が難しいという欠点があります。そこでこのツールを使うことで、コードの安易な表示から保護することができます。
ただし、いくつかの欠点があります。まず、Internet Explorer 5.0以降でないとスクリプトは実行できないこと。そして、暗号強度は決して高くないことです(それにこのサイトで解読ツールを公開していますから・・・)。
使い方
まず、次のページからWindows Script Encoderをダウンロードして、インストールしてください。
ここでは、インストール先のフォルダを「C:\Program Files\Windows Script Encoder」だとして話を進めます。
まずスクリプトを暗号化したいファイル(HTML、JS、VBS、ASPなど)を、インストール先と同じフォルダにコピーします。
次に、コマンドプロンプトを起動します。
起動方法は、[スタート]→[ファイル名を指定して実行]で、名前欄にWindows 95/98ならば「command」、Windows Me/2000/XPならば「cmd」と入力してOKをクリックします。
コマンドプロンプトが起動されたら、「cd C:\Program Files\Windows Script Encoder」と入力し、[Enter]キーを押してください。
すると、次のように表示されます。
C:\Program Files\Windows Script Encoder>
そして、次のように入力して[Enter]キーを押すことで、暗号化されたファイルが生成されます。
screnc 暗号化するファイル名 暗号化後のファイル名
例として、「test.html」というファイルのスクリプトを暗号化し、「testenc.html」という名前で保存するならば、次のようになります(暗号化するファイルは、Windows Script Encoderのインストール先フォルダに置いてください)。
screnc test.html testenc.html
上書きする場合
先の説明は、ファイル名を変えて保存するものでしたが、上書きして保存したい場合は次のように入力してください。
screnc /f 暗号化するファイル名
拡張子についての注意
Windows Script Encoderで認識して暗号化できるファイルの拡張子(ファイル名の最後にある「.」(ピリオド)で区切られた部分)は、asa、asp、cdx、htm、html、js、sct、vbsです。
これ以外の拡張子を持つ、JScriptやVBScriptのコードを含んだファイルを暗号化したい場合は、認識可能なファイルの拡張子に関連付けする必要があります。
認識できない拡張子のファイルを暗号化する場合は次のように入力して[Enter]キーを押します(関連付けする拡張子はasa、asp、cdx、htm、html、js、sct、vbsのいずれかになります)。
screnc /e 関連付けする拡張子 暗号化するファイル名 暗号化後のファイル名
例えば、「script.txt」というファイル名のJScriptファイルを暗号化する場合、拡張子がtxtでは認識できないので、jsに関連付けします。
screnc /e js script.txt scriptenc.txt
こちらは上書き保存する場合の例です。
screnc /f /e js script.txt
著作権の表記
スクリプトのコードに、著作権の表示を埋め込んだ場合、そのままでは著作権表記まで暗号化されてしまいます。
しかし、暗号化したくない部分の直後に「//**Start Encode**」(VBScriptなら「'**Start Encode**」)と記述すると、それ以降の部分だけが暗号化される機能があります。
次の例は、HTMLファイルのJScriptのコードに「// Copyright:(C) 2005 Nojima All Rights Reserved.」という著作権表記のコメントを入れる場合の記述例です。
<script type="text/JScript">
// Copyright:(C) 2005 Nojima All Rights Reserved.
//**Start Encode**
document.write("hello world!");
</script>
すると、次のように変換されます。
<script type="text/JScript.Encode"> // Copyright:(C) 2005 Nojima All Rights Reserved. //**Start Encode**#@~^JgAAAA==@#@&NG1Es+xDRS.kD+cJ4+ssKPhK.V9J#p@#@&EgsAAA==^#~@</script>
注意点など
私がWindows Script Encoderを使っていて気付いたことです。
HTMLにSCRIPT要素を記述する場合、コードの部分を「<!--」と「-->」で囲ってコメントにすることで、未対応ブラウザでコードが表示されないようにしていることがあります(下の記述例のように)。
<script> <!-- /* スクリプトのコード部分 */ //--> </script>
もしそのままWindows Script Encoderで暗号化した場合、スクリプトのコードではない「<!--」と「-->」までもが暗号化されてしまいます。
この対策として、「<!--」と「-->」を消してから暗号化し、その後「<!--」と「-->」を再び記述することをお勧めします。