JavaScriptのコード内容の手っ取り早い確認方法

JavaScriptの大まかなコードの内容を手っ取り早く確認したいときは、コードのキモとなっていそうな変数や関数の中身を出力させるのが有効です。
例えば以下のようなコードがあったとします。


fojbldfd = String.fromCharCode(81, 50, 57, 117, 65, 51, 74, 104, 100, 72, 86, 115, 89, 88, 82, 112, 98, 50, 53, 122, 73, 83, 66, 84, 100, 87, 78, 106, 65, 88, 78, 122, 65, 110, 86, 115, 98, 72, 107, 103, 65, 71, 86, 106, 98, 50, 82, 108, 65, 67, 69, 61).replace(/A/g, 'Z');
eval(fojbldfd);

変数fojbldfdにゴニョゴニョと値を入れてevalで実行しているようです。変数fojbldfdの中身を出力すれば何をしようとしているのか分かりそうです。変数の出力にはdocument.writeWScript.Echo(Windows環境の場合)を使います。

■document.writeを使う場合
evalの部分をdocument.writeに書き換えます。またコード全体をscriptタグで囲って.htmlとして保存します。

<script>
fojbldfd = String.fromCharCode(81, 50, 57, 117, 65, 51, 74, 104, 100, 72, 86, 115, 89, 88, 82, 112, 98, 50, 53, 122, 73, 83, 66, 84, 100, 87, 78, 106, 65, 88, 78, 122, 65, 110, 86, 115, 98, 72, 107, 103, 65, 71, 86, 106, 98, 50, 82, 108, 65, 67, 69, 61).replace(/A/g, 'Z');
document.write(fojbldfd);
</script>

保存したhtmlファイルをブラウザで開くと変数の中身が確認できます。
browse.png

■WScript.Echoを使う場合
evalの部分をWScript.Echoに書き換えて、.jsとして保存します。

fojbldfd = String.fromCharCode(81, 50, 57, 117, 65, 51, 74, 104, 100, 72, 86, 115, 89, 88, 82, 112, 98, 50, 53, 122, 73, 83, 66, 84, 100, 87, 78, 106, 65, 88, 78, 122, 65, 110, 86, 115, 98, 72, 107, 103, 65, 71, 86, 106, 98, 50, 82, 108, 65, 67, 69, 61).replace(/A/g, 'Z');
WScript.Echo(fojbldfd);

保存したjsファイルをダブルクリックするとメッセージボックスが表示されて変数の中身が確認できます。
message.png

あるいはコマンドプロンプトでcscript.exe example.jsと打てばコマンドプロンプト上で結果を確認できます。

WScript.Echoを使ったほうがコードにエラーがあった場合エラー箇所を教えてくれるので、修正がしやすいです。document.writeでブラウザ表示だと、コードにエラーがあって正しい出力結果が得られ無い場合、すぐには異常に気づかないかも。
でも、出力結果をコピペしたいときはブラウザに表示させたほうが楽です。(メッセージボックスの内容はコピペできないし、コマンドプロンプト上でコピペするのは少し面倒) 状況に応じて使い分けるのが良いかと。

ちなみに最後のbase64をデコードすると"Congratulations! Successfully decoded!"となります。

以上。

Leave a Reply

Your email address will not be published. Required fields are marked *