macchanger-gtk-1.1/0000755000175100017510000000000011134262222012315 5ustar agmagmmacchanger-gtk-1.1/ChangeLog0000644000175100017510000000036411134262142014073 0ustar agmagm2008-12-29- Alejandro Garrido Mota * Released 1.1: Improve interface * Fixed problem with GtkAboutDialog close button. 2005-12-12 Alejandro Garrido Mota * Released 1.0: Initial version macchanger-gtk-1.1/README0000644000175100017510000000034111030247430013172 0ustar agmagm MACCHANGER-GTK ¿How use? If you want use this program then you must execute macchanger-gtk file. For make this exist two ways: $ ./macchanger-gtk or: $ perl macchanger-gtk This program was develop in Perl using Gtk2 macchanger-gtk-1.1/AUTHORS0000644000175100017510000000010111134262222013355 0ustar agmagmAlejandro Garrido Mota macchanger-gtk-1.1/macchanger-gtk0000755000175100017510000001603411134260224015122 0ustar agmagm#!/usr/bin/perl use strict; use Gtk2 -init; use Gtk2::GladeXML; use UI::Dialog; use UI::Dialog::Backend::Zenity; use Cwd qw(realpath); unless($> == 0){ my $fullpath = realpath($0); system("/usr/bin/gksu -u root \"$fullpath\""); die("You must be root for use macchanger-gtk\n"); } my($programa, $ventanas_dialogs, $ventana_principal, $ventana_informacion, $ventana_acerca, $combobox_newmac_style, $entrada_specific_mac, $etiqueta_specific_mac, $combobox_iface, $etiqueta_vieja_mac, $etiqueta_nueva_mac, $lista, $vista_texto, $vista_texto1, $etiqueta_mac, $entrada_combobox_iface); if(-e 'glade/macchanger-gtk.glade' ){ $programa = Gtk2::GladeXML->new('glade/macchanger-gtk.glade'); }else{ $programa = Gtk2::GladeXML->new('/usr/share/macchanger-gtk/macchanger-gtk.glade'); } $ventanas_dialogs = new UI::Dialog::Backend::Zenity(title => "Gbackground", height => 45, width => 50, listheight => 5, order => [ 'zenity', 'xdialog', 'gdialog'] ); &cargar_widgets; &interfaces_disponibles; $programa->signal_autoconnect_from_package('main'); $ventana_principal->show_all(); &esconder; Gtk2->main; sub cargar_widgets { $ventana_principal = $programa->get_widget('ventana_principal'); $entrada_specific_mac = $programa->get_widget('entrada_specific_mac'); $etiqueta_specific_mac = $programa->get_widget('etiqueta_specific_mac'); $combobox_newmac_style = $programa->get_widget('combobox_newmac_style'); $ventana_acerca = $programa->get_widget('ventana_acerca'); $combobox_iface = $programa->get_widget('combobox_iface'); $ventana_informacion = $programa->get_widget('ventana_informacion'); $etiqueta_vieja_mac = $programa->get_widget('etiqueta_vieja_mac'); $etiqueta_nueva_mac = $programa->get_widget('etiqueta_nueva_mac'); $entrada_combobox_iface = $programa->get_widget('entrada_combobox_iface'); $etiqueta_mac = $programa->get_widget('etiqueta_mac'); $lista = $programa->get_widget('lista_de_vendedores'); $vista_texto = $programa->get_widget('vista_texto'); $vista_texto1 = $programa->get_widget('vista_texto1'); } sub mac { my $interfaz = $entrada_combobox_iface->get_text(); if(@_[0] eq "solo_mac"){ open(ARCHIVO, "/sys/class/net/$interfaz/address"); my $mac_actual; while(){ $mac_actual = $_; } close(ARCHIVO); return $mac_actual; } open(ARCHIVO, "/sys/class/net/$interfaz/address"); while(){ $etiqueta_mac->set_markup("Now your MAC in $interfaz is: $_"); } close(ARCHIVO); } sub on_boton_cambiar_mac_clicked { my $interfaz = &captura_de_informacion; if($interfaz eq 'lo' || $interfaz eq 'sit0'){ $ventanas_dialogs->error(title => "Error, interface unsopported", text => 'This interface don\'t support change the MAC Address'); return $ventana_principal->show_all; } my $activo = $combobox_newmac_style->get_active(); return 0 if $interfaz == 1; my($resultado, @posible_error); chomp($resultado = `/usr/bin/macchanger --endding $interfaz`) if($activo == 0); chomp($resultado = `/usr/bin/macchanger --another $interfaz`) if($activo == 1); chomp($resultado = `/usr/bin/macchanger -A $interfaz`) if($activo == 2); chomp($resultado = `/usr/bin/macchanger --random $interfaz`) if($activo == 3); if($activo == 4){ my $nueva_mac = $entrada_specific_mac->get_text(); if($nueva_mac eq ''){ $ventanas_dialogs->error(title => "Error, not MAC Address", text => 'Please write a MAC Address that yo want change'); return $ventana_principal->show_all; } if($nueva_mac =~ /^\w\w:\w\w:\w\w:\w\w:\w\w:\w\w$/){ chomp($resultado = `/usr/bin/macchanger --mac $nueva_mac $interfaz`); }else{ $ventanas_dialogs->error(title => "Error, MAC Address incorrect", text => 'The MAC Address is incorrect please write a correct MAC Address'); return $ventana_principal->show_all; } } if($resultado eq /set device name: No such device/){ $ventanas_dialogs->error(title => "Error, don\'t exist network interface", text => 'Please give a correct network interface because it don\'t exist or is up. The interface must be down'); } elsif($resultado eq /.*interface up or not permission.*/){ $ventanas_dialogs->error(title => "Error, Operation not permitted", text => 'Error, probably you don\'t have permission. Are you root?'); } else{ my @mac = split('\n', $resultado); $etiqueta_vieja_mac->set_markup("@mac[0]"); $etiqueta_nueva_mac->set_markup(" @mac[1]"); &mac; $ventana_informacion->show_all; } } sub interfaces_disponibles { my @archivos = ; my @interfaces; foreach my $archivo (@archivos) { my @basurita = split(/\//, $archivo); next if ($basurita[4] eq "lo" || $basurita[4] eq "sit0"); push (@interfaces, @basurita[4]); } foreach (@interfaces) { $combobox_iface->append_text("$_"); } } sub captura_de_informacion { my $interfaz = $entrada_combobox_iface->get_text(); return $interfaz if($interfaz); $ventanas_dialogs->error(title => "Error, not network interface", text => 'Please give the network interface that you want change the MAC address'); return 1; } sub esconder { $entrada_specific_mac->hide(); $etiqueta_specific_mac->hide(); } sub on_combobox_newmac_style_changed { my $activo = $combobox_newmac_style->get_active(); if($activo == 4){ $entrada_specific_mac->show_all(); $etiqueta_specific_mac->show_all(); } else{ $entrada_specific_mac->hide(); $etiqueta_specific_mac->hide(); } } sub on_boton_mac_actual_clicked { my $mac = &mac('solo_mac'); my $interfaz = $entrada_combobox_iface->get_text(); if ($interfaz eq ""){ $ventanas_dialogs->error(title => "Error, not network interface", text => 'Please give the network interface that you show the MAC address'); } else { $ventanas_dialogs->msgbox(title => "Actual MAC of $interfaz", text => "The actual MAC of $interfaz inface is: $mac"); } } sub on_boton_lista_clicked { my $buffer = Gtk2::TextBuffer->new; open(LISTA, '/usr/share/macchanger/OUI.list'); while(){ $buffer->insert_at_cursor("$_"); } close(LISTA); $vista_texto->set_buffer($buffer); $buffer = Gtk2::TextBuffer->new; open(LISTA, '/usr/share/macchanger/wireless.list'); while(){ $buffer->insert_at_cursor("$_"); } close(LISTA); $vista_texto1->set_buffer($buffer); $lista->show_all; } sub on_ventana_acerca_close { $ventana_acerca->hide; } sub on_ventana_acerca_delete_event { my $w = shift; $w->hide; 1; } sub on_lista_de_vendedores_delete_event { my $w = shift; $w->hide; 1; } sub on_ventana_acerca_response {$ventana_acerca->hide;} sub on_boton_aceptar_lista_vendedores_clicked {$lista->hide();} sub on_boton_abrir_lista_vendedores_clicked {$lista->show_all;} sub on_boton_salir_clicked {Gtk2->main_quit} sub on_ventana_principal_delete_event {Gtk2->main_quit} sub on_boton_salir_menu_activate {Gtk2->main_quit} sub on_boton_acercade_menu_activate {$ventana_acerca->show_all();} sub on_boton_aceptar_ventana_informacion_clicked {$ventana_informacion->hide();} macchanger-gtk-1.1/LICENSE0000644000175100017510000000163111134262211013321 0ustar agmagmMACCHANGER-GTK program. macchanger-GTK is a GTK+ interface for GNU/MACchanger. Copyright (C) 2006, Alejandro Garrido Mota www.mogaal.com/macchanger-gtk This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Alejandro Garrido Mota, VE www.mogaal.com macchanger-gtk-1.1/glade/0000755000175100017510000000000011030247430013370 5ustar agmagmmacchanger-gtk-1.1/glade/macchanger-gtk.glade0000644000175100017510000007630411132553355017264 0ustar agmagm 413 264 GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK MACchanger-GTK False True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK _Archivo True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-quit True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Ay_uda True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-about True True False True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 200 31 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK GDK_EXTENSION_EVENTS_ALL Another (same kind) Another (any kind) Endding Random Another MAC (specific) 87 16 69 24 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Options 9 20 76 36 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Network interface 10 54 108 27 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 105 58 149 32 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-ok True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Change MAC 1 123 144 131 37 GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Insert in a box the specific mac 12 99 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 146 102 127 46 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-dialog-info True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK See current MAC 1 223 49 286 29 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 24 178 1 35 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-dialog-question True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Known vendedor 1 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-quit True 0 1 False 2 395 GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 5 Acerca de MACchanger-GTK+ False GTK_WIN_POS_CENTER_ON_PARENT GDK_WINDOW_TYPE_HINT_DIALOG False MACChanger-gtk 1.2 Copyright 2006 - Alejandro Garrido Mota Font-end of macchanger program. Macchanger is a Linux utility for viewing/manipulating the MAC address for network interfaces. http://mogaal.com/macchanger-gtk macchanger-gtk front-end. macchanger(Developed by Alvaro Lopez) is a Linux utility for viewing/manipulating the MAC address for network interfaces. Copyright (C) 2006, Alejandro Garrido Mota www.mogaal.com/ macchanger-gtk This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Alejandro Garrido Mota, VE <garridomota@gmail.com> <mogaal@chaslug.org.ve> www.mogaal.com Alejandro Garrido Mota <mogaal@debian.org.ve> True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 2 True GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK GTK_BUTTONBOX_END False GTK_PACK_END -1 472 138 GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 37 66 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-dialog-info 6 2 10 7 359 25 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True 74 24 365 31 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True 77 56 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-ok True 0 1 380 423 GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Know vendedor True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 16 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK List known vendors False True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK GTK_POLICY_AUTOMATIC GTK_POLICY_AUTOMATIC True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK False False 1 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 16 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK List known vendors False True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK GTK_POLICY_AUTOMATIC GTK_POLICY_AUTOMATIC 1 1 34 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-ok True 0 False 2