SocketMonitor

A powerful network packet monitoring tool that acts as a proxy between clients and target servers. It provides real-time packet inspection and analysis capabilities.

Screenshot

Overview

graph LR Client[Client] <--> Proxy[SocketMonitor Proxy] <--> Target[Target Server] Proxy --> Display[Display Output] Display --> Console[Console Version] Display --> UI[UI Version] Display --> Hex[HEX View] Display --> Raw[RAW View]

Key Features

Packet Monitoring

  • Real-time packet capture and display
  • Dual-mode display (HEX/RAW)
  • Synchronized HEX and ASCII views
  • Auto-scroll option
  • Data selection and copy in multiple formats

Proxy Functionality

  • Transparent proxy between client and server
  • Configurable listening and target ports
  • Support for both TCP and UDP protocols
  • Automatic connection management
  • Connection status monitoring

Data Analysis

  • Timestamp for each packet
  • Direction indicators (Client → Server, Server → Client)
  • Data size information
  • Hex and ASCII representation
  • Easy data export functionality

User Interface

  • Modern Qt-based interface
  • Split view for HEX and ASCII data
  • Context menu for data operations
  • Configurable display options
  • Auto-save settings

Usage

  1. Configure the proxy settings:

    • Set the listening port (where clients will connect)
    • Set the target server address and port
    • Choose display options
  2. Start the monitor:

    • Click "Start" to begin monitoring
    • The proxy will start listening for client connections
  3. Connect your client:

    • Point your client to the SocketMonitor's listening address
    • All traffic will be automatically forwarded to the target server
  4. Monitor the traffic:

    • View packets in real-time
    • Use the context menu to copy data
    • Export data for further analysis

System Requirements

  • Windows 10 64bit or later
  • Python 3.6 or later
  • PyQt5
  • pip install -r requirements.txt

License

MIT License

Copyright (c) 2024 Danny

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Website: https://da2.35g.tw

Contributing

Issues and Pull Requests are welcome to improve this project!