
ランタイム不要のC言語とWin32による単一ファイルのネイティブWindowsトレイアプリケーションで、どのプログラムがどのホストに対してバイトを送受信しているかを正確に表示します。
単一ファイルのネイティブ Windows トレイアプリケーション(C、Win32、ランタイム不要)で、どのプログラムがバイトを送受信しているか、どのホストに対してかを正確に表示し、Windows の接続監査を有効に保ち、あなたまたは AI エージェントがその場でプロセスを強制終了したりプログラムをブロックしたりできるようにし、さらに、あなたが明示的に許可したプログラムだけが使用できる localhost ソケット経由ですべてをストリーミングします。
1.2 では Inspector が追加されました:1 つのプロセスにズームインして、その接続(状態、RTT、再送、接続時刻)、ワイヤー上でデコードされたパケット(TLS SNI/ALPN、QUIC、DNS、HTTP)、プロセスプロファイル(CPU、メモリ、ディスク、GPU、ユーザー、コマンドライン、署名者)、およびタイムライン(接続、失敗、子プロセス、DLL ロード)を確認でき、pcapng エクスポートにも対応します。これらはすべて Windows 自身のカーネルプロバイダーと ndiscap.sys から取得されます。インストールするドライバーはありません。
1.3 では、ソケットが多数のエージェントを同時に扱えるようになりました(SENTINEL.md の Sentinel 設計):コマンドはワーカースレッドで実行されるため、あるクライアントからの遅い inspect が他のクライアントを妨げなくなりました。最大 4 つの pcapng キャプチャが同時に実行でき、1 プロセスにつき 1 つです。conns はすべてのフローをページングし、アクティブなフローまたはタイムスタンプ以降に触れたフローにフィルタリングできます。ウォッチャーはすべてのフレームではなくデコードされたハンドシェイクのみを要求できます。flowinfo イベントは、各フローの SNI、ALPN、HTTP リクエスト、または TLS バージョンがデコードされた瞬間に通知します。各接続は 64 プロセスを監視できます。inspect はファイルの SHA-256 を報告し、署名チェックをキャッシュします。
実際の Hodometer の映像は、プロセス検査、パケットキャプチャ、検証済みのファイアウォールブロックを通じた制御されたアップロードを追っています。Sentinel のセグメントは明確にラベル付けされたシミュレーションの AI 調査であり、スコアとドライラン動作はリポジトリのコードによって計算されています。個人情報および無関係なプロセスは公開動画から削除されています。
address:port を表示します。ローカルおよび LAN のトラフィックはデフォルトで非表示です(トグルボタン、または local on)。host)。history)し、history.jsonl に追記します。auditpol /set /subcategory:"Filtering Platform Connection" /success:enable /failure:enable で有効になるもの)。オフになっている場合は再びオンにし、ログに記録して接続中のエージェントに通知します。ボタンで即座に実行することもできます。conn イベントとして転送します。spike イベントを発行し、hodometer.log に 1 行記録し、トレイ通知を表示します(最大 5 分に 1 回)。行をダブルクリックするか、選択したプロセスを検査 を押すか、右クリックメニューを使用するか、ソケット経由で inspect <pid> show を送信します。最大 8 個のインスペクターウィンドウを開くことができ、それぞれが 1 つの pid を追跡します。
capture_<name>_<pid>_<time>.pcapng として書き出し、
Wireshark で開ける。最大 4 つのキャプチャ(プロセスごとに 1 つ、または全プロセスで 1 つ)を同時に実行でき、ヘッダーには
このプロセスのキャプチャと、他が実行中である旨が表示される。Copy JSON は Inspector の状態全体をクリップボードに
コピーする(inspect の応答)。Kill と Block はこのプロセスに対して動作する。仕組み:フレームは Windows 自身の ndiscap.sys(netsh trace の背後にある Microsoft-Windows-NDIS-PacketCapture プロバイダー)
から、2 つ目の ETW セッション HodometerZoom を通じて取得される。これは Inspector が開いている間、ソケット
クライアントが監視している間、またはキャプチャが実行中の間(さらに 30 秒の猶予期間)のみ動作する。フレームにはプロセス ID が
含まれない。Hodometer は、カーネルネットワークイベントから構築した接続テーブルに対してローカルおよびリモートのアドレスとポートを
照合することで、フレームを帰属させる。これにより、pktmon や Wireshark にはできないプロセスごとのパケット処理を実現している。
SNI から学習した名前は、DNS が何も明らかにしなかった場合(例えば DNS over HTTPS を使用するブラウザー)に、
メインテーブルのホスト列も埋める。
新しいソケットクライアントはすべて、その所有プロセス(TCP テーブル経由)、実行可能ファイルのパス、およびファイルの SHA-256 によって識別される。そのプログラムがすでに信頼されていない限り、標準の Windows タスクダイアログが表示される(シールドアイコン、3 つの コマンドリンクボタン):
trusted.jsonl に記憶される。ファイルが変更されると再度確認される。intruder イベントとトレイアラートが発生する。ダイアログは60秒後に自動的に拒否され(--auth-timeout Nで変更可能)、クライアントが諦めると自動的に閉じます。
1分以内に10回を超える接続試行があると、プロンプト表示が5分間停止されます(不明なものはすべて拒否されます)。
Hodometerは昇格して実行されるため、Windowsの整合性分離(UIPI)により、非昇格のプログラムが自分でダイアログを
クリックすることはできません。クライアントが許可されるまで、クライアントは{"ev":"auth","status":"pending"}のみを受信し、そのコマンドは
拒否されます。pardon <substring>はプログラムの拒否記録と、それが獲得したファイアウォールブロックをクリアします。
build.ps1はMinGW-w64(WinLibs gcc + windres)でHodometer.exeをビルドします。ws2_32、iphlpapi、dnsapi、advapi32、
shell32、user32、gdi32、comctl32、ole32、psapi、pdh、wintrust、crypt32、bcryptを静的にリンクします。build.ps1 -Out Hodometer-new.exeはHodometer.exeの実行中に別名でビルドします(実行中のexeはロックされています)。install.ps1(管理者として一度実行)はログオンタスクHodometer(昇格、UACプロンプトなし)を登録し、そのタスクを起動する
デスクトップショートカットを配置し、古いスクリプトウォッチャーを廃止してアプリを起動します。--port N(デフォルト48201)、--tx MBPS、--rx MBPS、--auth-timeout SECONDS、--show、--local、
--no-audit-auto。Unregister-ScheduledTask -TaskName Hodometer -Confirm:$falseを実行し、フォルダとショートカットを削除します。作成されたファイアウォール
ルールはHodometer block: ...という名前で、Windowsファイアウォールまたはunblockで削除できます。TCP 127.0.0.1:48201、改行区切りのJSON。接続し、authがallowed(ユーザーがプロンプトをクリック)と
言うのを待ち、その後イベントを読み取り、コマンドをプレーンな単語またはJSON({"cmd":"kill","pid":123}、{"cmd":"block","path":"..."})として書き込みます。
コマンドは4つのワーカースレッドで実行されます。異なるクライアントは並列に処理され、各クライアント自身のコマンドは送信した順に
一度に1つずつ実行されるため、応答はコマンド順に返ります(イベントはインターリーブされます。応答はreply
フィールドで照合してください)。全クライアントを通じて128を超えるコマンドがキューに入ったクライアントは{"reply":"error","error":"command queue full, try again"}を受け取ります。最大32クライアント。
イベント: