netcatとWSHとWMIとか。
引き続きnetcatの話題
とりあえず次の1行だけ書いたファイルをa.jsとして保存しておく
コマンドプロンプト上で動くことを確認する
WScript.Echo("Hello netcat on NT!");
netcatのnt版(持ってない場合はgoogleで探してね)がパスの入ったディレクトリにあることを確認して
c:\>CScript a.js
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.Hello netcat on NT!
コマンドプロンプト上でこのように実行する
で、別のコマンドプロンプトを開いて次のように実行すると、、
c:\>nc -v -L -p 10000 -t -e "CScript a.js"
とかやれば、WSHとnetcatをなんとかセットで動かすことができる
c:\>nc -v localhost 10000
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.Hello netcat on NT!
これでTCPの通信をしているのだからすごい
例えばa.jsの中身を以下のように書いてみる(2000/XPじゃないと動かないよ)
こうすると脳内でアドレナリンがドバーっと出るが如く(少なくともe_c_e_tは大喜びした)netcat経由でhotfix適用状況がバリバリと流れてきて
locator = new ActiveXObject("WbemScripting.SWbemLocator.1");
service = locator.ConnectServer();
set = service.ExecQuery("select * from Win32_QuickFixEngineering");
for(e = new Enumerator(set); !e.atEnd(); e.moveNext()){
p = e.item();
WScript.Echo("HotFixID \t\t:" + p.HotFixID + "\n" +
"ServicePackInEffect \t:" + p.ServicePackInEffect + "\n" +
"CSName \t\t\t:" + p.CSName + "\n" +
"FixComments \t\t:" + p.FixComments + "\n" +
"InstalledBy \t\t:" + p.InstalledBy + "\n" +
"InstalledOn \t\t:" + p.InstalledOn + "\n");
}
そ、そんなに早く文字は読めんのです
とか、そんな状態になった。しばらくいろいろ遊んで気づいたが、起動させているときに
とかやってみるとわかるのだが、どうやらそのままではネットワーク経由での実行は難しいらしい
c:\>netstat -n | findstr 10000
TCP 127.0.0.1:10000 127.0.0.1:xxxx TIME_WAiT
あと、まだ引数を渡す方法もわからない。
簡単なechoサーバすらまだ実現できていない。
むー。