Skip to content

Add GUI version of steganography toolkit with tkinter#7

Merged
irfan-sec merged 3 commits intomainfrom
copilot/fix-5f22dc84-7a8e-4565-b14d-2333f7a5e86f
Oct 2, 2025
Merged

Add GUI version of steganography toolkit with tkinter#7
irfan-sec merged 3 commits intomainfrom
copilot/fix-5f22dc84-7a8e-4565-b14d-2333f7a5e86f

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Oct 2, 2025

Overview

This PR adds a complete graphical user interface (GUI) to the stegano-sec steganography toolkit, making it accessible to users who prefer a visual interface over command-line tools. The GUI is built using Python's built-in tkinter library, ensuring cross-platform compatibility with no additional dependencies.

What's New

GUI Application (stegano_sec_gui.py)

A fully-featured graphical interface with three main tabs:

  1. Encode Tab - Hide secret messages in media files

    • File browser for input/output selection
    • Choice between entering text directly or loading from a file
    • Support for all media types (PNG, JPEG, WAV, TXT, MD)
    • Text steganography method selection (whitespace/zero-width)
  2. Decode Tab - Extract hidden messages from files

    • File browser for encoded file selection
    • Display decoded message in scrollable text area
    • Optional save-to-file functionality
    • Auto-detection for text steganography methods
  3. Capacity Tab - Check storage capacity of media files

    • Quick capacity estimation before encoding
    • Shows maximum characters that can be hidden
    • Provides helpful information for each file type

Features

  • 🖱️ Point-and-click interface - No command-line knowledge required
  • 📁 File browser dialogs - Easy file selection for all operations
  • 📝 Multi-line text input - Comfortable message editing with scrollbars
  • Input validation - Clear error messages for invalid inputs
  • 💬 User feedback - Success/error dialogs with detailed information
  • 🔄 Format auto-detection - Automatically detects file types
  • 🎨 Clean UI - Intuitive tabbed interface using ttk widgets

Screenshot

stegano-sec GUI

The GUI shows the Encode tab where users can select files, enter messages, and configure encoding options.

Technical Details

Implementation

  • Framework: tkinter (built-in with Python, cross-platform)
  • Architecture: Clean separation of UI and business logic
  • Code reuse: Leverages all existing stegano.* modules
  • No duplication: Zero duplication of encoding/decoding logic
  • Type hints: Full type annotation for better IDE support

Code Quality

  • All tests pass - 5/5 unit tests passing
  • flake8 compliant - Zero linting errors
  • pylint score: 9.69/10
  • Backward compatible - CLI functionality 100% preserved

Usage

Launch GUI

python stegano_sec_gui.py

CLI Still Available

python stegano_sec.py encode -i input.png -o output.png -m "Secret message"
python stegano_sec.py decode -i output.png

Documentation Updates

  • Updated README.md with GUI usage instructions and screenshot
  • Updated IMPLEMENTATION.md with new project structure
  • Updated .gitignore to exclude temporary screenshot files

Compatibility

  • Python: 3.6+ (same as existing requirements)
  • Dependencies: No new dependencies (tkinter is built-in)
  • Platforms: Windows, macOS, Linux
  • Breaking changes: None - all existing functionality preserved

Benefits

  1. Accessibility: Makes the tool accessible to non-technical users
  2. User Experience: Intuitive interface with immediate visual feedback
  3. No Learning Curve: Familiar file dialogs and form-based input
  4. Flexibility: Users can choose between GUI and CLI based on their needs
  5. Maintainability: Clean code that follows existing patterns

This addition transforms stegano-sec from a CLI-only tool into a versatile application suitable for both technical and non-technical users, while maintaining all existing functionality and code quality standards.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • esm.ubuntu.com
    • Triggering command: /usr/lib/apt/methods/https (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

make the GUI version of this tool


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI changed the title [WIP] make the GUI version of this tool Add GUI version of steganography toolkit with tkinter Oct 2, 2025
Copilot AI requested a review from irfan-sec October 2, 2025 07:54
@irfan-sec irfan-sec marked this pull request as ready for review October 2, 2025 07:56
@irfan-sec irfan-sec merged commit 998bce8 into main Oct 2, 2025
0 of 3 checks passed
@irfan-sec irfan-sec deleted the copilot/fix-5f22dc84-7a8e-4565-b14d-2333f7a5e86f branch October 2, 2025 08:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants