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と打てばコマンドプロンプト上で結果を確認できます。
cmdp.png

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

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

以上。

Manually insert RIGHT-TO-LEFT OVERRIDE character into the filename


67c71e8e-1599-11e7-9f20-4b75e769f3a1.png

MountedDevices registry key

HKLM\System\MountedDevices

The MountedDevices subkey stores the database of mounted devices for the NTFS filesystem
https://technet.microsoft.com/en-us/library/cc978525.aspx

mounteddevices_20170404221711d0e.png

Snort メモ

Snortの個人的メモ
随時更新予定
参考
http://manual-snort-org.s3-website-us-east-1.amazonaws.com/node27.html
http://blog.joelesler.net/2010/03/offset-depth-distance-and-within.html

offset [どこから検索するか]
パケットのどこから検索を開始するか指定する
content:"cgi-bin/phf"; offset:4;
パケットの4バイト目以降から"cgi-bin/phf"の検索を行う

depth [どこまで検索するか]
パケットのどこまで検索するかを指定する
content:"GET"; depth:3;
パケットの1バイト目から3バイト目の間に現れる"GET"を検索する。ちなみにルール中の一番最初のcontentは自動的にオフセット0から検索されるので、offset:0と指定する必要はない。

distance [どこから次の検索を開始するか]
content Aが見つかったあと、次のcontent Bの検索をどこから開始するかを指定する
content:"ABC"; content:"DEF"; distance:1;
"ABC"が見つかったら、1バイト無視してから"DEF"の検索を開始する
/ABC[.]DEF/
「"ABC"のあとに"DEF"が現れるはずだけど、何バイト目以降に現れるかは分からない」という場合にはcontent:"ABC"; content:"DEF"; distance:0 とすれば、"ABC"のあとに何バイトあろうと関係なく"DEF"を検索します。

within [~以内を検索する]
content Aが見つかってから、何バイト以内にあるcontent Bを検索する
content:"ABC"; content:"EFG"; within:10;
"ABC"のあとの10バイト以内にある"EFG"を検索する。大体何バイト以内に次のcontentがあるか分かっている場合に有効。

ファイルの「ダウンロード」と「ドロップ」の違い(個人的解釈)

ファイルをダウンロードする:
外部に対して何かしらのリソースを要求して取得すること。

ファイルをドロップする:
何かしらの操作をしたときに自動的にファイルが作成されること。たとえば、example.exeというプログラムを実行したときにfoo.txtというファイルが作成される。このとき、example.exefoo.txtをドロップした、と言える。

※あくまで個人の解釈です。

以上。

| NEXT>>

プロフィール

トニヒコ

Author:トニヒコ
趣味は旅行と読書とマンガ。
将来の夢はコスモポリタン!

リンク・フリーです。

My hobby is traveling and reading(include manga).
My dream is to become cosmopolitan!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
スポンサード リンク
マクロミルへ登録
FC2カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR