Advanced WiFi jamming tool built with Python, following SOLID principles and designed for educational purposes.
π View Documentation on GitHub Pages - Complete usage guide, demos, troubleshooting, and contribution guidelines.
git clone https://github.com/oyi77/wifi-jammer.git
cd wifi-jammer
bash install.sh
# or for quick install:
bash quick_install.shThis will automatically:
- Install all dependencies
- Request Location Services permission
- Detect which Python has permission
- Set everything up for you
# Linux/macOS
curl -sSL https://raw.githubusercontent.com/oyi77/wifi-jammer/main/quick_install.sh | bash
# Windows (PowerShell)
Invoke-Expression (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/oyi77/wifi-jammer/main/quick_install.sh" -UseBasicParsing).Contentgit clone https://github.com/oyi77/wifi-jammer.git
cd wifi-jammer
bash install.sh- Multiple Attack Types: Deauth, Disassoc, Beacon Flood, Auth Flood, Assoc Flood, Probe Response Flood
- Network Scanning: Automatic network discovery and analysis
- Cross-Platform Qt GUI: Modern graphical user interface using PyQt6 (Windows, macOS, Linux)
- Modern TUI: Beautiful, responsive Text-based User Interface using Textual
- NetCut Tool: Interactive client discovery and selective device kicking (see
tools/) - SOLID Architecture: Clean, maintainable code following SOLID principles
- Cross-Platform: Enhanced support for macOS (including M1/M2/M3 ARM chips) and Linux
- Rich CLI: Beautiful terminal interface with progress bars and tables
- Easy Installation: One-command setup with automatic dependency management
The tool follows SOLID principles:
- Single Responsibility: Each class has one clear purpose
- Open/Closed: Easy to extend with new attack types
- Liskov Substitution: All attack strategies are interchangeable
- Interface Segregation: Clean interfaces for each component
- Dependency Inversion: High-level modules don't depend on low-level modules
wifi_jammer/
βββ core/ # Core interfaces and data structures
βββ scanner/ # Network scanning functionality
βββ attacks/ # Attack strategy implementations
βββ factory/ # Factory pattern for creating attacks
βββ utils/ # Utility functions and logging
βββ cli.py # Command-line interface
# Launch the cross-platform Qt GUI
sudo wifi-jammer --gui
# or
sudo ./venv/bin/python3 -m wifi_jammer.gui
# or use the dedicated entry point
sudo wifi-jammer-guiOption 1: Using the wrapper script (recommended - auto-detects best Python):
# Scan networks
./wifi-jammer.sh scan
# Launch TUI
sudo ./wifi-jammer.sh attack --tui
# Direct attack
sudo ./wifi-jammer.sh attack --interface en0 --target 00:11:22:33:44:55 --attack deauthOption 2: Using installed command (after pip install -e .):
# Scan networks
wifi-jammer scan
# Launch TUI
sudo wifi-jammer attack --tui
# Direct attack
sudo wifi-jammer attack --interface en0 --target 00:11:22:33:44:55 --attack deauth# Direct attack with options
sudo ./wifi-jammer.sh attack --interface en0 --target 00:11:22:33:44:55 --attack deauth# Scan networks without attacking
sudo ./wifi-jammer.sh --scan-onlydeauth- Deauthentication attackdisassoc- Disassociation attackbeacon_flood- Beacon flood attackauth_flood- Authentication flood attackassoc_flood- Association flood attackprobe_response- Probe response flood attack
The WiFi Jammer now includes built-in NetCut-style functionality! When using deauth or disassoc attacks, you can:
Discover connected clients:
sudo ./wifi-jammer.sh --interface en0
# Select your target network
# Choose deauth attack
# Answer "yes" when asked to discover clientsThe tool will:
- π Scan for 30 seconds to discover all connected devices
- π Show you a list of discovered clients (excluding your device)
- π― Let you select specific clients to kick OR kick all
- β‘ Send targeted deauth packets to only those clients
- π» Keep you connected while others are kicked
Standalone NetCut Tool: For a dedicated NetCut experience, use:
sudo python3 tools/netcut.py- Python 3.8+
- Root privileges (for wireless interface access on Linux/macOS)
- Wireless interface with monitor mode support
- Linux, macOS, or Windows (limited functionality)
- scapy: Packet manipulation
- netifaces: Network interface management
- psutil: System utilities
- rich: Beautiful terminal output
- click: CLI framework
- colorama: Cross-platform colored output
- PyQt6: Cross-platform GUI framework (for GUI mode)
This tool is for educational purposes only!
- Use only on networks you own or have explicit permission to test
- Respect local laws and regulations
- The authors are not responsible for misuse
- Intended for security research and penetration testing education
-
"No wireless interfaces found"
- Check if your wireless card supports monitor mode
- Run
iwconfigto see available interfaces
-
"Permission denied"
- Make sure to run with
sudo - Check if your user has wireless permissions
- Make sure to run with
-
"Interface not found"
- Verify interface name with
iwconfig - Some interfaces may have different names
- Verify interface name with
-
macOS: "SSID/BSSID are None" or networks show as
<redacted>- Location Services permission required!
- Quick fix: Run
bash install.shorbash quick_install.sh- they automatically run setup and request permission - Or manually:
- System Settings β Privacy & Security β Location Services
- Enable Location Services (toggle ON)
- Find "Python" or "python3" in the list and check the box β
- Note: The tool automatically detects which Python has permission and uses it
sudo wifi-jammer --verbose- Create new attack class in
wifi_jammer/attacks/ - Inherit from
BaseAttack - Implement
_create_packet()method - Register in
AttackFactory
class MyCustomAttack(BaseAttack):
def _create_packet(self) -> Packet:
# Create your custom packet
return packetMIT License - see LICENSE file for details.
Remember: With great power comes great responsibility. Use this tool ethically and legally!