Faydanılan Github proje linki:
https://github.com/dogukaneren/Mac-Changer
Amaç: İlgili interface’teki mac adresinin değiştirilmesi için .deb paketi oluşturma. Buradan yola çıkarak debian tabanlı yerli ve milli işletim sistemimiz Pardus içinde güzel deb paketleri oluşturulabilir.
mac_degistir.py (python dosya içeriği)
import subprocess
import random
import sys
def generate_random_mac():
mac = [0x00, 0x16, 0x3e, random.randint(0x00, 0x7f), random.randint(0x00, 0xff), random.randint(0x00, 0xff)]
return ‘:’.join(f”{x:02x}” for x in mac)
def change_mac(interface, new_mac):
try:
subprocess.call([‘sudo’, ‘ifconfig’, interface, ‘down’])
subprocess.call([‘sudo’, ‘ifconfig’, interface, ‘hw’, ‘ether’, new_mac])
subprocess.call([‘sudo’, ‘ifconfig’, interface, ‘up’])
print(f”MAC address of {interface} changed to {new_mac}”)
except Exception as e:
print(f”An error occurred: {str(e)}”)
if __name__ == “__main__”:
if len(sys.argv) != 2:
print(“Usage: python3 mac-changer.py <interface>”)
sys.exit(1)
interface = sys.argv[1]
random_mac = generate_random_mac()
change_mac(interface, random_mac)
mac_degistir.sh (shell script dosya içeriği)
#!/bin/bash
old_mac_file=”.old-mac”
if [ “$EUID” -ne 0 ]; then
echo “Please run this script as root (sudo).”
exit 1
fi
generate_random_mac() {
printf “02:%02X:%02X:%02X:%02X:%02X\n” $((RANDOM % 256)) $((RANDOM % 256)) $((RANDOM % 256)) $((RANDOM % 256)) $((RANDOM % 256))
}
while getopts “i:m:” opt; do
case “$opt” in
i) interface=”$OPTARG”;;
m) new_mac=”$OPTARG”;;
\?) echo “Usage: $0 -i <interface_name> [-m <new_mac>]”
exit 1;;
esac
done
if [ -z “$interface” ]; then
echo “Usage: $0 -i <interface_name> [-m <new_mac>]”
exit 1
fi
if ! ip link show dev “$interface” &> /dev/null; then
echo “Error: Interface ‘$interface’ does not exist.”
exit 1
fi
if [ -z “$new_mac” ]; then
new_mac=$(generate_random_mac)
fi
ip link set dev “$interface” down
old_mac=$(ip link show dev “$interface” | awk ‘/ether/ {print $2}’)
echo “$old_mac” > “$old_mac_file”
ip link set dev “$interface” address “$new_mac” up
if [ “$?” -eq 0 ]; then
echo “Changed MAC address of ‘$interface’ to ‘$new_mac’.”
else
echo “Error: Failed to change MAC address of ‘$interface’.”
fi
exit 0
Deb paketi için dosyanın oluşturulması:
mkdir MC
mkdir MC/DEBIAN
touch MC/DEBIAN/control
Script için dosyanın oluşturulması: mkdir -p MC/usr/bin chmod +x
mac_degistir.sh
mv mac_degistir.sh MC/usr/bin/mac_degistir
Deb paketi için kontrol dosyasının oluşturulması ve içeriği:
pico MC/DEBIAN/control
Package: mac-degistir Version: 1.0 Architecture: all Maintainer: h4ck3r <your-mail> Description: MAC addresses changing on Linux Depends: iproute2 Paketin oluşturulması:
dpkg-deb --build mac-degistir
Paketin kurulması:
dpkg -i mac-degistir.deb
İlgili interface'te mac aderinin değiştirilmesi (ip a veya ifconfig ile interfaceler listelenir):
mac-degistir -i enp0s31f6 (bendeki kablolu interface adı
= enp0s31f6 olduğu için)
mac-changer -i <interface-name> -m "AA:BB:CC:11:22:33"
Umarım faydalı olur :)