[VBScript] スクリプトをエンコードしてソースコードを読めなくする方法
2020年 12月 28日
VBScriptはメモ帳でもプログラム開発できる反面、見せたくないソースコードも配布しなければならない
- 大半のプログラムは、実行プログラム形式で配布する。そのため、ソースコード自体は配布しなくてよい。
しかしVBScriptは、実行プログラム=ソースコードとなる。そのため、ソースコード自体の配布は必須となる。
それを避けたいならどうするか?
VBSファイルをエンコードすれば、配布したソースコードが読まれることはない
- [VBScript] ユーザログイン状態のまま管理者実行する方法で管理者昇格する方法、では管理者に昇格できるものの、そのパスワードがダダ漏れとなっていた。
いくら開発がカンタンなVBScriptとはいえ、パスワードが漏れるのはまずい。
ならば、VBSファイルをエンコードすればよい。
エンコードすれば、下図のようにエディタでソースコードを見れなくなる。
![[VBScript] スクリプトをエンコードしてソースコードを読めなくする方法_a0021757_10173292.gif](https://pds.exblog.jp/pds/1/202012/29/57/a0021757_10173292.gif)
サンプルプログラムのダウンロードと使い方
- ダウンロード
- 使い方
エンコードは「encode.vbs」へVBSファイルをドロップ → VBEファイルが生成される。
デコードは「decode.vbs」へVBEファイルをドロップ → VBSファイルが生成される。
※このエンコードは「Windows Script Encoder」(配布終了)と同じ技術が利用されている。
※VBEファイルをデコードすれば、もとのVBSファイルが編集可能となる。
参考サイト
エンコードしたVBEファイルはインクルード実行できない??
- できる。wsfファイルを使えば。
<script language="VBScript.Encode" src="vbCommon.vbe"/>
<script language="VBScript">
SetScriptHost("cscript")
dprintf("どーもボキです。")
For i = 0 To WScript.Arguments.Count -1
dprintf WScript.Arguments(i)
Next
</script>
</job>
エンコード後のVBEファイルはインクルード実行方式は採用できない。
ポイントは、wsfファイルで以下を指定すること。
language="VBScript.Encode"
この記事での気付き
- 配布終了となったWindows Script Encoder利用当時は、デコードできるなど思いもしなかった。

にほんブログ村