« ERRORLEVELの簡単表示 | トップページ | 「イントラネットゾーン」の設定は危険です。 »

2006年9月25日 (月)

JScriptやVBScriptのスクリプトエンコードをデコードする。

JScriptのヘルプを見ると、次のように書いてあります。
| メモ   関数を呼び出すときは、必須の引数とかっこを記述してください。かっこを付けずに関数を呼び出すと、関数の結果ではなく、関数のテキストが返されます。

例えば、

function hoge(){return 1;}
WScript.Echo(hoge);

をfox.jsとして実行すると、

function hoge(){return 1;}

が表示されます。

これ自体はちっとも面白くないのですが、

function hoge(){ #@~^NQAAAA==W!x^DkKxP4WTn`* .+DE.U,Fi)@#@&q?mMr2Yc21tG`4GT+bi@#@&dBAAAA==^#~@ }
WScript.Echo(hoge);

(タブを全角空白に変えてます。)

の全角空白をタブに戻して、fox.jseとして実行すると、
functionの中のスクリプトエンコードがデコードされて表示されます。

VBScriptのスクリプトエンコードの場合は、

function hoge(){/* VBScriptのスクリプトエンコード */}
WScript.Echo(hoge);

とコメントで囲んでやれば、同様にデコードできます。

« ERRORLEVELの簡単表示 | トップページ | 「イントラネットゾーン」の設定は危険です。 »