趣味ソフトのプレハブ部屋
【警告】
本ソフトの性質上、開発者・ネットワーク管理者専用とお断りさせていただきます。通常ユーザが使用した場合、プライバシー侵害となる可能性があります。なお、使用者に問題/損害が生じても作成者は一切責任を負わないものとします。
(2003/08/02 更新) 【最新情報】
--------------------------------------------------------------------------
0.48βBuild 12 -> 0.49βBuild 2 (2003/08/02 更新)
・オフライン機能追加(Pop3,Smtp,HostTable)
・日付ディレクトリ作成タイミング変更
・仮)トレイアイコン化
(1) オフライン機能を利用する場合は、必ず、オンラインで記録した構成で実行して下さい。フォルダ移動、フォルダ名称変更、ファイル名称等が記録時と異なる場合、本機能は利用できません。
(2) これまでディレクトリを起動時に一度だけ生成していましたが、今回キャプチャ開始時点で作成するよう変更しました。
従って、開始/終了を繰り返すと多くのディレクトリが作成されます。
【ダウンロード】
[ネットワーク監視ソフトウェア]
がんつ〜る 0.49β Build 2 4272kb・・・ Windows2000 , XP 対応 Download
注:Windows95/98/98SE/Me/NTには対応していません。翻訳/監視機能はシリアル番号入力後、使用できるようになります。
【概要】
詳細は後ほどRead.meに記しますが、一言で言っちゃえば、「本ソフトを起動したPCのNICに届いたパケットを【全て】表示・記録する」ソフトです。全てというのは他の宛先IPパケットもです。あっ・・・当然ながら、スイッチングHubにつないだ場合は自己PCへのデータ、ブロードキャストされたデータしか見れませんので悪しからず(^^)。ルータ&ゲートウェイとなってるIIS
PC上で動作させると完璧(?)です。
また、IP Address毎にメールデータ(送信、受信共)の取得翻訳、IP Messengerデータ取得翻訳、Httpアクセスを詳細に調査できます。
注意:ダンプ表示&保存を行うときは翻訳機能をOFF(ウィンドウメニューから全ての翻訳表示を消去)してください。逆に、翻訳機能を使用するときはダンプ表示&保存をOFFにしてください。ダンプ表示&書込が一番処理負荷が高いため、同時に多機能を使用すると、環境にもよりますが、他PC−他PC間のパケットを取りこぼす等発生します。勿論、自PC−他PC間は取りこぼすことはまずありません(取りこぼしたとしてもTCP/IPの仕様として再送処理、WindowSizeの縮小処理が他アプリケーションで走る)。
・実行には Administrator 権限が必要です。
・全てのパケットデータを以下のような形式でリアルタイム表示します。
(ツールバーの[LOG表示&書込]&[Analyze]チェックを両方ともONにしたとき)
---------------------------------------------------------------------------
2001/11/11 12:34:56 Protocol: TCP
SIP: 10.**.**.**:1275(etc) -> DIP: 210.***.***.***:110(pop3)
00000000 : 45 00 00 30 0e a7 40 00 80 06 ce 7a 0a ** ** ** E..0..@....z....
00000001 : d2 ** ** ** ** ** 00 6e b9 de d8 ae 00 00 00 00 ..A....n........
00000002 : 70 02 40 00 8d 82 00 00 02 04 05 b4 01 01 04 02 p.@.............
[IP] IP Version : 4
[IP] Header Length : 5
[IP] Srvice Type : Pri 0, Lat 0, Tpt 0, Tru 0, Exp 0, Rsv 0
[IP] Total Packet : 48
[IP] Identification : 3751
[IP] Flags : Rsv 0, DivPossible 1, LastPkt 0
[IP] Flagment Offset: 0
[IP] Time of Live : 128
[IP] Protcol : TCP
[IP] CheckSum : 16384
[IP] Source IP : 10.***.***.***
[IP] Distination IP : 210.***.***.***
[TCP]Source Port : ****
[TCP]DistinationPort: 110
[TCP]Sequence Number: 3118371179
[TCP]Acknowledgment : 37634
[TCP]Data Offset : 7
[TCP]Code Bit : URG 0, ACK 0, PSH 0, RST 0, SYN 1, FIN 0
[TCP]Window Size : 16384
[TCP]Check Sum : 36226
[TCP]Urgent : 0
---------------------------------------------------------------------------
ちなみに、IPヘッダは頭から20byte(or +4byte)、TCPヘッダはIPヘッダ終わりから20byte(or +4byte)、UDPヘッダはIPヘッダ終わりから8byte。【通常は】残りがデータです(IPヘッダのヘッダ長、TCPヘッダのデータオフセットでそれぞれの長さが計算できる)。覚えてて損はないよ?ちなみに上で[**]の部分にIPアドレス・ポート番号が入ってます。本パケットを詳細に表すとこう↓なります。
【IPヘッダ部】
IP Version:IPバージョン、ここに6が入るとIPv6になる。
Header Length:ヘッダ長(×4)、単位は4オクテット(32bit)
Srvice Type:サービスタイプ、通常はAll 0です。
Total Packet:パケット長、単位はオクテット(=Byte)、ここでは30(Hex)byteある。
Identification:識別子、フラグメント復元の為の識別子、通常はパケット送るたびに+1される。
Flags(3bit):フラグ、3bitで構成、分割指定フラグです。
Flagment Offset(13bit):フラグメントオフセット、13bitで構成、分割パケットの場合使用される。
Time of Live:生存時間、実際は時間ではなく、ルータの中継を許容する最大値。ルータを通るたび-1されていく。0になったら破棄。
Protcol:プロトコル番号、6の場合はTCP、17はUDPを意味する。他多数。
CheckSum:ヘッダチェックサム、ヘッダのチェックサム値。
Source IP:送信元IPアドレス
Distination IP:宛先IPアドレス
----通常はここまで-----以降はプロトコルヘッダ部となる--------
3byte:オプション
1byte:パディング
【TCPヘッダ部】
Source Port:ポート番号(送信元)
DistinationPort:ポート番号(宛先)
Sequence Number:シーケンス番号、送信するたびにそのオクテット数分加算される。初期値は不定。
Acknowledgment:確認応答番号、次に受信すべきデータのシーケンス番号。ここでは初データなので0。
Data Offset:Data Offset、単位は4オクテット、通常は5(20byte)。
(6bit):予約
Code Bit(5bit):コードビット、頭bitからURG/ACK/PSH/RST/SYN/FINを意味。ここでは初データなのでSynパケがON(接続要求)。
Window Size:ウィンドウサイズ、受信可能な受信サイズを指定。
Check Sum:チェックサム、TCPチェックサム
Urgent:緊急ポインタ
----SYNパケット以外のTCPヘッダはここまで-----以降は通常データ部となり、アプリケーションが使用する---
3byte:オプション、アプリケーションによる
1byte:パディング、同上
【動作環境】
CPU:500MHz以上(1.0GHz以上を推奨)
HDD:7200rpm以上(高トラフィック環境ではRAID0を推奨します)
NIC:最低1個あること。:あらゆるNICに対応します。(NIC,IEEE1394 over TCP/IP, AirH",モデム)
但し、AirH"の場合、自己PCから発する送信パケットが取得できない。>MS-API or ドライバの仕様かも
【開発環境&動作環境】
開発言語:Borland C++ Builder
開発PC:
VAIO GR9/K(CPU:P3 1.13GHz,HDD:30GB,SO-DIMM:512MB)
EPSON PRO-900(CPU:P4 1.7GHz,HDD:240GB(60GB×4,RAID0+1),RIMM:1024MB)
自作 (CPU:Athlon 933MHz,HDD:120GB(60GB×2,RAID1),DIMM:1024MB)
NIC:
100MBASE-TX, 10MBASE-T, H"携帯接続USBケーブル, シリアルModem, AirH", IEEE1394
Over TCP/IP
--------------------------------------------------------------------------
0.48βBuild 8 -> 0.48βBuild 12 (2002/06/20 更新)
・翻訳機能再設定(nkf32.dll使用)
・パケット翻訳機能強化 ( DNS,ICMP )
--------------------------------------------------------------------------
0.48βBuild 2 -> 0.48βBuild 3 (2002/04/27 更新)
・web監視機能追加
・WindowsXPでブラウザが使えなくなってしまったため、pop3,smtp翻訳できなくなった。
それに伴い、これを翻訳せずそのまま表示。
誰か[JIS -> S-JIS変換ルーチン作って〜!!(^^;]
・HTTP画面は作成中。
(2001/12/08 更新) 【最新情報】
--------------------------------------------------------------------------
0.47β Build 5 -> 0.47βBuild 8 (2001/12/08 更新)
・一部操作性向上。
・画面表示上の細かい修正。
0.46β Build33+1 追加仕様とご説明。
起動後に以下の子ウィンドウが表示されます(公開時のデフォルトは非表示)。
【1】pop3データ表示
【2】smtpデータ表示
【3】IpMsgデータ表示
【4】ホストテーブル (new)
これらは、それぞれ親ウィンドウメニューの[ウィンドウ]から表示・非表示を切り替えることが出来ます。非表示状態の場合は機能もOFFとなり、データの取得も行われません(ホストテーブル機能を除く)。
できれば、一つのウィンドウのみ表示、他のウィンドウは未使用にしての運用を推奨します。
それぞれについて注意点を記します。
【1】pop3データ表示
本来、クライアントからの取得要求コマンド[RETR][UIDL]によって、サーバから取得できるものですが、本ソフトではクライアントコマンドを認識せず、受信時パケット先頭に[Receive]があれば1データとして認識します。これは、同期が取れるメーラなどとは違い全てのパケットを非同期に取得するという本ソフトの性質上、コマンド認識処理・ファイル生成等に時間を食い、肝心のパケットを取りこぼしてしまう可能性があるためです。従いまして、次データパケット先頭にReceiveがあった前データは1データと認識します(ヘッダが2データ以上に分かれてしまうことがあります)。ご了承下さい。
・・・っていうか、Quitを貰えるまでメモリに書き込めばいいんじゃん?でも、合計サイズが何Mとかになるとおかしくなんないかな・・・・?
Build 34 (2001/11/17 22:30 追加対応)
弊害が発生しました。メールサーバによってはパケット先頭に[Receive]がこないことがあり、その場合は取得できません。現在色々情報を取得中です。そのうち、パケット先頭に[+OK ***Octet(CrLf)Receive****]というパターンが見つかりました(Microsoft系?)。。また、パケット最後が[+OK Pop***](Sun系)以外に[+OK (CRLF)]というパターンが存在することが解りました。本Buildでそのタイプのデータに対応しました。
【2】smtpデータ表示
こちらはコマンドもデータも全てクライアント→サーバという流れのため、コマンドを認識する処理が軽くでき、クライアントからのデータ要求[DATA]+0x0d0a
を認識してからデータを取得しています。
【3】IpMsgデータ表示
IP Messenger のデフォルト使用ポートは[2425]ですが、本ポートのUDPデータを全て取得します。違うポート番号を取得したいときはメニュー[編集]-[オプション設定]で変更することができます。
【4】ホストテーブル
各PCに届くと考えられる各種サイズを表示します(リアルタイム)。
本機能は子ウィンドウが非表示状態でも機能し続けます。
【履歴】
--------------------------------------------------------------------------
0.47β Build 2-> 0.47βBuild 4 (2001/11/25 更新)
・IPMsgデータ表示画面で横スクロールバーを追加(ThanX! Shimodaさん)
・フィルタ設定でIPフィルタ、ポートフィルタ共に「除く」が選択できなかった(=機能がなかった(^^;)が選択できるようにしました。
・フィルタ設定で行った設定を翻訳機能(Pop3,Smtp,Ipmsg)にも反映するように仕様変更しました。(これまではダンプ機能のみ反映)
・Pop3でリストにあるデータを選択しても「表示できません」が表示されてしまう。<これは一部対処を行いましたが、メールサーバのOSによって返してくるリターン期待値が異なるためにファイルが閉じられないでいることに起因します。引き続き情報収集中です。問題が再現しましたらお手数ですが、ご使用メールサーバOSをお知らせ下さい。(ThanX!
All)
・Pop3,Smtpデータが途中で切れるところを修正。<再送処理が走った場合は無効。
・長時間運用した際(2時間程度)に例外が発生する場合がありました。原因は判明し対処も終わったのですが、完全にテストは終わってません(とりあえずは24時間高トラフィック環境下に置いてテストしたいけど・・・環境がない〜(汗))>今週中にテストいたします。(ThanX!
Shimodaさん)
・「ウィンドウ」メニューに「重ねて表示」と「並べて表示」を追加。
・フォント設定を追加している途中(^^;。
・画面表示上の細かい修正。
--------------------------------------------------------------------------
0.46β Build 37 -> 0.47βBuild 2
・ホストテーブル表示機能(HostName以外正式版)
・パケット翻訳機能(IP/TCPヘッダ部) <------- ツールバーに[Analyze]チェックを追加
--------------------------------------------------------------------------
0.46β Build 33-> 0.46β Build 37
・フィルタ設定でポートフィルタを設定後、再設定で画面を表示したとき、ポートNOが設定された値と異なっていたところを修正。(ビッグエンディアン/リトルエンディアン変換し忘れ)
・メールサーバ環境によって、Pop3翻訳機能が正常に動作しないことがある。そのうち1パターンについて対応しました。対応済みメールサーバ:SunOS,Microsoft
IIS >その他については現在情報収集中。
(ThanX! ichimaruさん)
・キャプチャ設定のファイル指定テキストボックス内のディレクトリ部分の文字列を実行ディレクトリ下にくるようにしました。
(ThanX! ichimaruさん)
--------------------------------------------------------------------------
0.46β Build 26 -> 0.46β Build 33
・キャプチャ開始直後、ホストテーブルで送信サイズが不正な値になる部分を修正( ThanX! Domonさん)
--------------------------------------------------------------------------
0.461β -> 0.46β Build 26
・ホストテーブル仮追加
・表示等修正
--------------------------------------------------------------------------
0.46β -> 0.461β対応済み機能
・POP3 翻訳 & SMTP 翻訳(日本語化)&ファイル抽出機能で例外が発生していた部分を修正
--------------------------------------------------------------------------
0.45β -> 0.46β対応済み機能
・POP3 翻訳(日本語化)&ファイル抽出機能
・SMTP 翻訳(日本語化)&ファイル抽出機能
・Pop3/Smtp ユーザ、パスワード抽出機能([User_****.dat]ファイル化)
・IP Mesenger 翻訳(日本語化)&ファイル抽出
--------------------------------------------------------------------------
0.43β - 0.45β
・やりたいこと増加に伴い(^^;;、SDIアプリケーションからMDIアプリケーションへ設計変更
--------------------------------------------------------------------------
0.42β
・仮リリース(ホントは公開するつもりはなかったけど・・・)
・ダンプデータ表示で送信元IP、宛先IP、ポート種別、プロトコルの翻訳表示を付加
--------------------------------------------------------------------------
0.10β --- 0.43β
デバッグ工程
--------------------------------------------------------------------------
【予定】
--------------------------------------------------------------------------
0.47β追加【予定】機能
・ホストテーブル表示機能<テーブルは出来てるんだけど表示方法がー(^^;;
・オフライン表示機能
記録済み翻訳キャプチャデータを表示できる機能。
--------------------------------------------------------------------------
0.48β「以降」追加【予定】機能
・トラフィック統計機能
・パケット翻訳機能(IP/TCPヘッダ部)
・HTTP(Port:80&8080)翻訳機能 < 思ってたより複雑な為、後回し(笑)
・telnet(Port:23) データ抽出機能(ログインユーザ毎)
・telnet(Port:23) ユーザ、パスワード抽出機能
・FTP(Port:21) コマンド抽出機能(ログインユーザ毎)
・FTP(Port:21) ユーザ、パスワード抽出機能
・timeserver(Port:37) データ翻訳機能
・nameserver(Port:42) データ翻訳機能
・domain(Port:53) データ翻訳機能
・netbios-ns(Port:137) NETBIOS Name Service データ翻訳機能
・netbios-dgm(Port:138) NETBIOS Datagram Service データ翻訳機能
・netbios-ssn(Port:139) NETBIOS Session Service データ翻訳機能
・ICQ(Port:5190) icq データ翻訳機能
【既知問題点】
--------------------------------------------------------------------------
・リアルタイム表示だとそろそろヤバイ(^^;;
・メールの添付ファイルの扱い方について -> 現在全データ取得
・HTTPデータの扱い方について -> 現在機能無
・FTPコマンド put mput get mget 発行時のファイルの扱い方について
-> 現在機能無
--------------------------------------------------------------------------
取り扱い説明書等は・・・・いまのところありません(^^;。
Version 1.00以降になってから添付いたします。