• Hallöle, ich dachte mein 200 Post darf etwas besonderes sein (also ein Script) Ich habe den Mac Changer vor ner halben Ewigkeit mal mit DjDominik zusammen gemacht, und hoffe, das er ihn nicht schonmal hier gezeigt hat^^

    Funktion: wie schon der Name sagt, kann er die MAC-Adresse ändern und hat eine Recovery Funktion

    Spoiler anzeigen
    [autoit]


    ;~ Copyright: Jonathan Möwe
    #RequireAdmin
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=D:\ICQ-Work\funfun\Gui.kxf
    $Gui = GUICreate("MacCHANGE", 297, 176, 192, 124)
    GUICtrlCreateGroup("MAC-Adresse Ändern", 8, 72, 281, 57)
    GUICtrlCreateLabel("Neue Adresse (zB.) :", 16, 96, 101, 17)
    $NewMACBox = GUICtrlCreateInput("", 120, 96, 161, 21)
    GUICtrlSetLimit(-1, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlCreateGroup("Deine MAC", 8, 8, 281, 57)
    $MacBox = GUICtrlCreateInput("", 54, 29, 225, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
    GUICtrlCreateLabel("MAC :", 16, 32, 33, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $ChangeButton = GUICtrlCreateButton("MAC Ändern", 8, 136, 75, 25, $WS_GROUP)
    $RecoverButton = GUICtrlCreateButton("Recover der MAC", 88, 136, 123, 25, $WS_GROUP)
    $ExitButton = GUICtrlCreateButton("Beenden", 216, 136, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetData($MacBox, _GetMacFromIP(@IPAddress1))

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $ChangeButton
    $sMAC = GUICtrlRead($NewMACBox)
    If StringLen($sMAC) < 17 Then
    MsgBox(16, "MacChange", "MAC-Adresse muss mindestens 17 Zeichen haben.!")
    ContinueLoop
    EndIf
    If StringInStr($sMAC, ":", 1, 5) = 0 Then
    MsgBox(16, "MacChange", "MAC-Adresse muss mindestens 5 Doppelpunkte (:) Haben.!")
    ContinueLoop
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    _ChangeMAC($sMAC)
    Case $ExitButton
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Case $RecoverButton

    [/autoit] [autoit][/autoit] [autoit]

    $sRecovermac = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\", "RECOVERMAC")

    [/autoit] [autoit][/autoit] [autoit]

    ProgressOn("MacChange", "Adresse wird Wiederhergestellt!", "Bitte Warten")
    Local $sBuffer = "000"
    For $iSchritte = 0 To 10 Step 1
    If $iSchritte = 10 Then $sBuffer = "00"
    RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & $sBuffer & $iSchritte, "NetworkAddress", "REG_SZ", $sRecovermac)

    [/autoit] [autoit][/autoit] [autoit]

    ProgressSet($iSchritte * 10)
    Sleep(250)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(500)
    ProgressOff()
    MsgBox(64, "MacChange", "Bitte PC Neustarten!")
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _ChangeMAC($sNewMAC)
    Local $sRealMAC = StringReplace($sNewMAC, ":", "")
    Local $sBuffer = "000"
    ProgressOn("MacChange", "Adresse wird Geflasht!", "Bitte Warten")

    [/autoit] [autoit][/autoit] [autoit]

    For $iSchritte = 0 To 10 Step 1
    If $iSchritte = 10 Then $sBuffer = "00"
    RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & _
    $sBuffer & $iSchritte, "NetworkAddress", "REG_SZ", $sRealMAC)

    [/autoit] [autoit][/autoit] [autoit]

    ProgressSet($iSchritte * 10)
    Sleep(250)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\", "RECOVERMAC", "REG_SZ", $sRealMAC)

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(500)
    ProgressOff()
    MsgBox(64, "MacChange", "Bitte PC Neustarten!")
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_ChangeMAC

    [/autoit] [autoit][/autoit] [autoit]

    Func _GetMACFromIP($sIP)
    Local $MAC, $MACSize
    Local $i, $s, $r, $iIP
    $MAC = DllStructCreate("byte[6]")
    $MACSize = DllStructCreate("int")
    DllStructSetData($MACSize, 1, 6)
    $r = DllCall("Ws2_32.dll", "int", "inet_addr", "str", $sIP)
    $iIP = $r[0]
    $r = DllCall("iphlpapi.dll", "int", "SendARP", "int", $iIP, "int", 0, "ptr", DllStructGetPtr($MAC), "ptr", DllStructGetPtr($MACSize))
    $s = ""
    For $i = 0 To 5
    If $i Then $s = $s & ":"
    $s = $s & Hex(DllStructGetData($MAC, 1, $i + 1), 2)
    Next
    Return $s
    EndFunc ;==>_GetMACFromIP

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Ich wüsste nicht warum ich meine MAC-Adresse ändern sollte.
    Aus welchen Gründen sollte man denn so eine Software benutzen ?

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • Ich kenn mich leider nicht mit W-LAN aus, da ich sowas nicht nutze.
    Jedoch wüsste ich nicht, wie oder warum in 'nem W-LAN die MAC Adresse gesperrt werden könnte.

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • Mac-Adresse ist sowas wie ne HardwareID, damit man deinen PC indentifizieren kann. Bei Wlan-Routern gibts nen sogenanten Mac-Filter, da kann man einstellen, welche Mac-Adresse zugelassen ist. D.h. es kann nur dieser Rechner mit der Mac-Adresse via Wlan verbinden.

  • Äm also mit fällt KEIN GUTER Grund ein seine MAC-Adress zu fälschen wenn man nicht was böses vorhat.
    Wenn deine MAC auf dem Router gesperrt ist hat das bestimmt einen Sinn und sonst kann dir da ein Netzwerkadmin helfen wen du das net selber bist.

    MfG
    Der_Doc

  • geiles tool!
    Aber:
    -Schade das man kein random durchführen kan bzw kein auswahlmöglichkeit der netzwerkkarte vorhanden ist!
    -Wiso muss man jedesmal pc neustarten!
    -Kan man nicht einfach die netzwerkkarten deactivieren und activieren lasen mit dem tool!
    Trotzdem respect :thumbup: !

  • geiles tool!
    Aber:
    -Schade das man kein random durchführen kan bzw kein auswahlmöglichkeit der netzwerkkarte vorhanden ist!
    -Wiso muss man jedesmal pc neustarten!
    -Kan man nicht einfach die netzwerkkarten deactivieren und activieren lasen mit dem tool!
    Trotzdem respect !


    Du kannst dir je einen random reinmachen^^
    dann ncoh: jedes mal pc neustarten ist weniger arbeit (für mich)

  • Die Netzwerkkarte könnt ihr über das MS-Tool devcon neustarten:

    [autoit]


    Func _Refresh($ID) ;führt Devcon mit der übergebenen ID aus
    $ID = "@" & $ID
    RunWait(@ScriptDir & "\devcon\i386\devcon.exe" & ' disable ' & $ID, "", @SW_HIDE) ; deaktivieren
    Sleep(2000) ;2 Sekunden warten (kann man bei der Netzwerkkarte auch weglassen)
    RunWait(@ScriptDir & "\devcon\i386\devcon.exe" & ' enable ' & $ID, "", @SW_HIDE) ; aktivieren
    EndFunc ;==>_Refresh

    [/autoit]
  • Abend,

    Funktioniert dein Script auch unter Win 7 (64 Bit) ?

    Weil bei mir existiert zwar der Schlüssel NetworkAddress , aber der ist leer.
    Und so wie ich dein Script intepretiere wird einfach der Schlüssel NetworkAddress erstellt mit der neuen MAC-Adresse drin :)

    LG,Fabian