Skip to content

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MAC Changer Pro

β–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—  β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— 
β–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•    β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β• β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β–ˆβ–ˆβ–ˆβ–ˆβ•”β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘         β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘         β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•  β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•‘ β•šβ•β• β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—    β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘
β•šβ•β•     β•šβ•β•β•šβ•β•  β•šβ•β• β•šβ•β•β•β•β•β•     β•šβ•β•β•β•β•β•β•šβ•β•  β•šβ•β•β•šβ•β•  β•šβ•β•β•šβ•β•  β•šβ•β•β•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•β•šβ•β•  β•šβ•β•

Advanced MAC Address Changer with Auto-Reconnect Feature

Python Version License Platform


πŸ“‹ Table of Contents


πŸ” Overview

MAC Changer Pro is a powerful, professional-grade Python tool designed for Linux systems that allows users to change their network interface MAC addresses with ease. It features an intuitive menu-driven interface, automatic network reconnection, network scanning capabilities, and MAC address cloning from discovered devices.

This tool is ideal for penetration testers, security researchers, privacy-conscious users, and network administrators who need to modify MAC addresses for legitimate purposes such as testing, research, or privacy protection.


✨ Features

  • πŸ”„ MAC Address Modification: Change MAC addresses for any network interface
  • πŸ” Network Scanning: Scan local network to discover connected devices using arp-scan
  • 🎭 MAC Cloning: Clone MAC addresses from discovered network devices
  • πŸ“ Manual Entry: Set custom MAC addresses manually
  • πŸ” Auto-Reconnect: Automatic NetworkManager restart and reconnection after MAC change
  • πŸ’Ύ Backup & Restore: Save original MAC address and restore it when needed
  • πŸ“Š Network Information: Display IP, subnet, gateway, and DNS information
  • πŸ“‹ Logging: Comprehensive logging of all operations
  • 🎨 Colorful UI: Beautiful, colorful command-line interface
  • ⚑ Real-time Progress: Live progress indicators during network scanning
  • πŸ›‘οΈ Error Handling: Robust error handling with retry mechanisms
  • πŸ”’ Root Privilege Management: Automatic sudo handling for privileged operations

πŸ“¦ Requirements

System Requirements

  • Operating System: Linux (Kali Linux, Ubuntu, Debian, etc.)
  • Python: 3.6 or higher
  • Privileges: Root/sudo access

Dependencies

# Python packages
pip3 install colorama tabulate

# System packages (Debian/Ubuntu/Kali)
sudo apt-get install arp-scan network-manager

πŸš€ Installation

Method 1: Clone the Repository

# Clone the repository
git clone https://github.com/Rootx202/MAC-Changer-Pro.git

# Navigate to the directory
cd MAC-Changer-Pro

# Install Python dependencies
pip3 install -r requirements.txt

# Make the script executable
chmod +x main.py

Method 2: Manual Installation

  1. Download the source code
  2. Extract to your preferred directory
  3. Install dependencies:
    pip3 install colorama tabulate
    sudo apt-get install arp-scan network-manager

πŸ’» Usage

Basic Usage

# Run with sudo privileges (required)
sudo python3 main.py

Step-by-Step Guide

  1. Launch the Tool

    sudo python3 main.py
  2. Select Network Interface

    • The tool will display all available network interfaces
    • Enter the number corresponding to your desired interface
  3. Choose an Option

    • Option 1: Scan network and clone a device's MAC address
    • Option 2: Restore original MAC address
    • Option 3: Enter a custom MAC address manually
    • Option 4: Select a different network interface
    • Option 5: Exit the program
  4. Network Scanning (Option 1)

    • The tool will scan the local network for connected devices
    • Select a device from the list to clone its MAC address
    • The tool will automatically change your MAC and reconnect
  5. Manual MAC Entry (Option 3)

    • Enter a MAC address in format: XX:XX:XX:XX:XX:XX
    • Example: 00:11:22:33:44:55
  6. Restore Original MAC (Option 2)

    • Restores the MAC address that was saved when you first started

Example Session

$ sudo python3 main.py

[*] Available interfaces:
  1. eth0
  2. wlan0

[*] Select interface number: 2

[*] Current MAC: aa:bb:cc:dd:ee:ff

[*] Options:
1. Scan network and clone device MAC
2. Restore original MAC
3. Change MAC manually
4. Select different interface
5. Exit

[*] Enter your choice: 1

[*] Scanning network...
[+] Found: 192.168.1.1 - 00:11:22:33:44:55 - TP-Link Router
[+] Found: 192.168.1.100 - 66:77:88:99:aa:bb - Samsung Device

[*] Select device number to clone: 1
[*] Attempting to clone MAC: 00:11:22:33:44:55
[βœ”] MAC address changed successfully!
[βœ”] Network services restarted, device reconnected.

πŸ“ Project Structure

MAC-Changer-Pro/
β”‚
β”œβ”€β”€ main.py                     # Main application entry point
β”‚
β”œβ”€β”€ model/                      # Data models and configurations
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ constants.py            # Application constants and configurations
β”‚   β”œβ”€β”€ data_manager.py         # MAC address data persistence
β”‚   └── logger.py               # Logging functionality
β”‚
β”œβ”€β”€ core/                       # Core functionality modules
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ banner.py               # Application banner display
β”‚   β”œβ”€β”€ interface_operations.py # Network interface operations
β”‚   β”œβ”€β”€ mac_operations.py       # MAC address change operations
β”‚   └── network_operations.py   # Network scanning and info display
β”‚
β”œβ”€β”€ README.md                   # This file
β”œβ”€β”€ requirements.txt            # Python dependencies
└── LICENSE                     # License file

Module Descriptions

model/

  • constants.py: Stores application-wide constants (version, author, file paths)
  • data_manager.py: Handles saving and loading original MAC addresses
  • logger.py: Manages logging of all operations to file

core/

  • banner.py: Displays the application banner and branding
  • interface_operations.py: Lists interfaces and retrieves current MAC addresses
  • network_operations.py: Network scanning, device discovery, and network info display
  • mac_operations.py: Core MAC changing logic with auto-reconnect functionality

πŸ”§ How It Works

MAC Address Change Process

  1. Stop Network Services

    • Stops NetworkManager and wpa_supplicant
  2. Bring Interface Down

    sudo ip link set dev <interface> down
  3. Change MAC Address

    sudo ip link set dev <interface> address <new_mac>
  4. Bring Interface Up

    sudo ip link set dev <interface> up
  5. Restart Network Services

    • Starts NetworkManager and wpa_supplicant
    • Reconnects using nmcli
  6. Verification

    • Verifies the MAC address was changed successfully
    • Retries up to 3 times if needed

Network Scanning

Uses arp-scan to discover devices on the local network:

sudo arp-scan -l -I <interface>

Parses the output to extract IP addresses, MAC addresses, and vendor information.


πŸ“Έ Screenshots

Coming soon - Add screenshots of the tool in action


πŸ› Troubleshooting

Common Issues

Issue: Permission denied errors

Solution: Run the script with sudo
$ sudo python3 main.py

Issue: ModuleNotFoundError

Solution: Install required Python packages
$ pip3 install colorama tabulate

Issue: arp-scan not found

Solution: Install arp-scan
$ sudo apt-get install arp-scan

Issue: MAC address doesn't change

Solution: 
- Ensure you have root privileges
- Check if the interface supports MAC changing
- Try disabling NetworkManager's MAC randomization

Issue: Network doesn't reconnect after MAC change

Solution:
- Manually reconnect: nmcli device connect <interface>
- Check NetworkManager status: systemctl status NetworkManager
- Restart NetworkManager: sudo systemctl restart NetworkManager

Debug Mode

To see detailed error messages, check the log file:

cat ~/.mac_tool.log

🀝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Contribution Guidelines

  • Follow PEP 8 style guidelines
  • Add comments for complex logic
  • Test your changes thoroughly
  • Update documentation as needed

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ‘¨β€πŸ’» Author

RootX


⚠️ Disclaimer

IMPORTANT: This tool is intended for educational purposes, authorized security testing, and legitimate network administration only.

Legal Notice

  • Authorized Use Only: Only use this tool on networks and devices you own or have explicit permission to test
  • Compliance: Ensure compliance with all applicable laws and regulations in your jurisdiction
  • No Warranty: This software is provided "as is" without warranty of any kind
  • Liability: The author is not responsible for any misuse or damage caused by this tool

Ethical Use

By using this tool, you agree to:

  • Use it only for legal and ethical purposes
  • Obtain proper authorization before testing networks
  • Respect privacy and security of others
  • Comply with all applicable laws and regulations

Unauthorized access to computer networks is illegal and punishable by law.


πŸ™ Acknowledgments

  • Python community for excellent libraries
  • NetworkManager and arp-scan developers
  • Colorama and Tabulate library creators
  • Linux community for robust networking tools

πŸ“ž Support

If you encounter any issues or have questions:

  1. Check the Troubleshooting section
  2. Review existing Issues
  3. Open a new issue with:
    • Your OS and version
    • Python version
    • Steps to reproduce the problem
    • Error messages or logs

Made with ❀️ by RootX

If you found this project helpful, please give it a ⭐!

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages