世界を動かす技術を、日本語で。

Show HN: 学生プロジェクトのWiresharkおもちゃ版

2025年6月3日原文(github.com)

概要

Vanta は、Go言語で作られた 軽量ネットワークパケットアナライザーコマンドライン 上で動作し、HTTP・DNS・TLSなどの プロトコル解析 が可能。 依存関係なし ・単一バイナリで持ち運びやすい設計。 JSON形式 で動作ログを出力し、スクリプト連携や学習用途に最適。 開発者の 個人的な思い と感謝が込められたオープンソースプロジェクト。

Vanta: 軽量ネットワーク行動解析ツール 概要

  • VantaGo言語 製の軽量・高速な コマンドライン型ネットワーク行動解析ツール
  • プロトコルレベルのフロー再構築構造化されたアクティビティ抽出 に特化
  • Wireshark のようなGUIツールとは異なり、 明快さ・シンプルさ・構造性 を重視
  • スクリプト連携や最小構成環境 に最適化された設計
  • 単一バイナリ・依存なし で持ち運びやすい

主な特徴

  • プロトコル解析対応
    • HTTPDNSTLS (一部フィンガープリント対応)解析
  • コネクショントラッキング
    • 双方向フローの自動再構築 機能
  • 行動エクスポート
    • クリーンなJSON形式サマリー 出力
  • ポータブル&依存不要
    • 外部依存ゼロ の単一バイナリ配布

クイックスタート

  • 実行方法
    • go run main.go
  • 詳細な使い方
    • usage/フォルダに 中国語ドキュメント あり

開発環境

  • OS: macOS 15.5 (Apple Silicon)
  • エディタ: Visual Studio Code
  • 言語: Go
  • Goモジュール: go 1.23.0
  • ツールチェーン: go1.24.3
  • ターミナル: zsh(macOS標準)
  • 開発端末: MacBook Air M1(学部生による個人開発)

プロジェクト構成

  • main.go: メインエントリーポイント
  • capture.json: 入力例ファイル
  • internal/core/: パケットキャプチャ・フロー再構築
  • internal/decoder/: プロトコルデコーダ
  • internal/fuzz/: ファジングモジュール(実験的)
  • internal/export/: 行動エクスポートロジック
  • usage/: 利用方法ドキュメント

開発背景

  • 個人の思い感謝 を込めたプロジェクト
  • 政治的な圧力 の中、Harvard・MIT・CMUなど一部大学が 留学生を擁護 したことへのリスペクト
  • リソース・バックグラウンドなし の学部生による コードでの応答
  • Wiresharkの“おもちゃ版” としての位置付け(実運用ではWireshark利用)
  • 教授・大学への感謝率直な気持ち の表現

フィードバック・連絡先

  • メール: lixiasky@protonmail.com
  • GitHub: github.com/lixiasky

追記:開発者より

  • VantaGoで書かれた小型オープンソースネットワークアナライザー
  • TLS・DNS・HTTP などの 基本プロトコル解析 対応
  • ターミナル上でパケット内容を直接確認 可能
  • 出力はカラー表示 で可読性向上
  • 全体で約400行 のシンプルなコード構成
  • 学習・プロトコル理解 のための個人実験として開発
  • 本格運用はWireshark推奨、本ツールはあくまで“ネットワークおもちゃ”
  • 興味があればGitHubで公開中: https://github.com/lixiasky/vanta
  • 意見・感想・批評歓迎、どなたかの役に立てば幸い

このツールはシンプルながら、ネットワーク解析やGo言語学習に最適実運用ではWiresharkを推奨 しつつも、 個人の成長や感謝の証 として開発された点が特徴。

Hackerたちの意見

いいね!絶対に見てみるよ。なんでこのプロジェクトにGoを選んだのか気になるな。RustかGoでBurpの簡易版を作ろうと思ってるけど、まだ決めかねてるんだ。

俺がその状況でGoを選ぶ主な理由は、クロスコンパイル、静的バイナリ、そして主観的には生産性が高いからかな。すぐにMVPを動かせるようになるし、どこでも動くって分かって配布できるのがいいよね。

それ、俺もやってるよ! ;) https://github.com/redawl/gitm 静的バイナリのためにGoを選んだんだ(エンドユーザーにインストール手順がいらないからね)。最近Goプログラムを書くのがすごく楽しくて、シンプルなのに速度をあまり犠牲にしないところが気に入ってるんだ。

いい質問だね!Goを選んだのは、シンプルで効率的、しかも広く使われているからだよ。正直、今一番自分が使いやすい言語なんだ。まだ学生だし、大きな野望はないけど、完成させて理解できるものを作りたかったんだ。Rustは素晴らしいけど、まだ本格的には学び始めてないから、今はちょっと圧倒されてる感じ。いつか、もっと深く掘り下げる準備ができたらやってみたいな!君のBurpプロジェクトも頑張ってね!いつかシェアしてくれたら見てみたいな。

Goはこういうツールにぴったりだね。MITMプロトコルアナライザーを何回か作ったことがあるけど、ハンドリングや分析、デバッガーでのブレークを完全にカスタマイズできるのは、Wiresharkみたいな超高機能だけど汎用的なツールよりも役立つことが多いよ。

経験をシェアしてくれてありがとう!Goは本当に素晴らしいね。Vantaを作りながら学んでいる学生としても、意外とスムーズに進んだと感じたよ。君が言ってた機能、めっちゃいいね。後で試してみるかも—ストリームのブレークやデバッグコントロールをサポートするの、楽しそうだね。

これいいね、プロジェクトの名前を「babyshark」にしてみたら?

それか「Fanta」でもいいかも。

このプロジェクトは、このダジャレのためだけでも作る価値があると思うな。

そうだね、Vantaはすでに有名な会社だから特に。

ななななな

Hacker Newsで議論の続きを見る