Jump to content

Recommended Posts

Posted

Great tool!

I've played a bit with your code and here is my version:

  • Displays a message when there is no password needed to connect to a WLAN
  • Translates the NetSh output from OEM to ANSI to prevent problems with other languages (tested my version with German)
  • Moved the constants to variables for easier translation
  • Brushed up the code a bit 
; *** Start added by AutoIt3Wrapper ***
#include <AutoItConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
; *** End added by AutoIt3Wrapper ***
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Add_Constants=n
#AutoIt3Wrapper_Run_Au3Stripper=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <createQRw.au3>
#include <Array.au3>

#Region ### START Koda GUI section ###
GUICreate("Wifi Password Tool", 615, 437, 470, 208)
Global $hGUIList = GUICtrlCreateList("", 8, 40, 193, 370)
Global $hGUIInput = GUICtrlCreateInput("", 288, 40, 321, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY, $WS_HSCROLL))
GUICtrlCreateLabel("Password :", 224, 44, 56, 17)
GUICtrlCreateLabel("SSID's", 8, 16, 36, 17)
GUICtrlCreateGroup("QR Code", 304, 144, 193, 169)
Global $hGUIQR = GUICtrlCreatePic("", 352, 184, 100, 100)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Global $aSSIDs, $sQRData, $aKeyData, $hDLL, $nMsg
Global $bFirstRun = True
Global Const $sProfile = "Profil für alle Benutzer"    ; "All User Profile"
Global Const $sSecurityKey = "Sicherheitsschlüssel" ; "Security Key"
Global Const $sSecurityKeyValue = "Vorhanden"       ; Security Key set
Global Const $sSecurityKeyMsg = "Kein Sicherheitsschlüssel vorhanden" ; No Security Key set
Global Const $sKeyContent = "Schlüsselinhalt"      ; "Key Content"
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            DLLClose($hDLL)
            Exit
        Case $hGUIList
            $aKeyData = GetKeyFromSSID(GUICtrlRead($hGUIList))
            $sQRData = 'WIFI:S:' & $aKeyData[0] & ';T:WPA;P:' & $aKeyData[1] & ';;'
            _createQRw_($sQRData, $hGUIQR)
            GUICtrlSetData($hGUIInput, $aKeyData[1])
    EndSwitch
    If $bFirstRun Then
        $bFirstRun = False
        $hDLL = DllOpen("user32.dll")
        $aSSIDs = _GetSSIDs()
        GUICtrlSetData($hGUIList, _ArrayToString($aSSIDs))
    EndIf
WEnd

Func _GetSSIDs()
    Local $iPID = Run(@ComSpec & " /c " & 'netsh wlan show profile', @ScriptDir, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD)
    ProcessWaitClose($iPID)
    Local $sOutput = StdoutRead($iPID)
    ; Translate from OEM to ANSI.
    ; https://www.autoitscript.com/forum/topic/28678-dos-formatted-string/?do=findComment&comment=281231
    Local $aOutput = DllCall($hDLL, 'Int', 'OemToChar', 'str', $sOutput, 'str', '')
    $aOutput = StringSplit($aOutput[2], @CRLF)
    Local $iItems = 0, $aTemp
    Local $aSSIDs[$aOutput[0]]
    For $i = 1 To $aOutput[0]
        If StringInStr($aOutput[$i], $sProfile) Then
            $aTemp = StringSplit($aOutput[$i], ":")
            $aSSIDs[$iItems] = StringStripWS($aTemp[2], 1)
            $iItems += 1
        EndIf
    Next
    ReDim $aSSIDs[$iItems]
    Return $aSSIDs
EndFunc   ;==>_GetSSIDs

Func GetKeyFromSSID($sSSID)
    Local $aKey[2] = [$sSSID]
    Local $iPID = Run(@ComSpec & " /c " & 'netsh wlan show profile name="' & $sSSID & '" key=clear', @ScriptDir, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD)
    ProcessWaitClose($iPID)
    Local $sOutput = StdoutRead($iPID)
    ; Translate from OEM to ANSI.
    ; https://www.autoitscript.com/forum/topic/28678-dos-formatted-string/?do=findComment&comment=281231
    Local $aOutput = DllCall($hDLL, 'Int', 'OemToChar', 'str', $sOutput, 'str', '')
    $aOutput = StringSplit($aOutput[2], @CRLF)
    Local $aTemp
    For $i = 1 To $aOutput[0]
        If StringInStr($aOutput[$i], $sSecurityKey) Then
            $aTemp = StringSplit($aOutput[$i], ":")
            If StringStripWS($aTemp[2], 8) <> $sSecurityKeyValue Then
                $aKey[1] = $sSecurityKeyMsg
                ExitLoop
            EndIf
        EndIf
        If StringInStr($aOutput[$i], $sKeyContent) Then
            $aTemp = StringSplit($aOutput[$i], ":")
            $aKey[1] = StringStripWS($aTemp[2], 8)
            ExitLoop
        EndIf
    Next
    Return $aKey
EndFunc   ;==>GetKeyFromSSID

 

My UDFs and Tutorials:

  Reveal hidden contents

 

Posted
  • Delete button has been added
  • Refresh button has been added
  • Password and QR code get cleared when a new SSID has been selected until all data has been extracted and the QR code has been created
; *** Start added by AutoIt3Wrapper ***
#include <AutoItConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
; *** End added by AutoIt3Wrapper ***
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Add_Constants=n
#AutoIt3Wrapper_Run_Au3Stripper=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <createQRw.au3>
#include <Array.au3>

Global Const $sToolName = "Wifi Password Tool"
Global Const $sProfile = "Profil für alle Benutzer"    ; "All User Profile"
Global Const $sSecurityKey = "Sicherheitsschlüssel" ; "Security Key"
Global Const $sSecurityKeyValue = "Vorhanden"         ; Security Key set
Global Const $sSecurityKeyMsg = "Kein Sicherheitsschlüssel vorhanden" ; No Security Key set
Global Const $sKeyContent = "Schlüsselinhalt"         ; "Key Content"
Global Const $sDeleteEntry = "Do you really want to delete the selected SSID: "

#Region ### START Koda GUI section ###
GUICreate($sToolName, 615, 437, 470, 208)
Global $hGUIList = GUICtrlCreateList("", 8, 40, 193, 370)
Global $hGUIInput = GUICtrlCreateInput("", 288, 40, 321, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY, $WS_HSCROLL))
GUICtrlCreateLabel("Password :", 224, 44, 56, 17)
GUICtrlCreateLabel("SSID's", 8, 16, 36, 17)
Global $hGroup = GUICtrlCreateGroup("QR Code", 304, 144, 193, 169)
Global $hGUIQR = GUICtrlCreatePic("", 352, 184, 100, 100)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $hDelete = GUICtrlCreateButton("Delete", 224, 380, 80, 30)
Global $hExit = GUICtrlCreateButton("Exit", 529, 380, 80, 30)
Global $hRefresh = GUICtrlCreateButton("Refresh", 314, 380, 80, 30)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Global $sSSID, $aSSIDs, $sQRData, $aKeyData, $hDLL, $nMsg
Global $bFirstRun = True

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE, $hExit
            DllClose($hDLL)
            Exit
        Case $hGUIList
            $sSSID = GUICtrlRead($hGUIList)
            GUICtrlSetData($hGroup, "QR Code")
            GUICtrlSetData($hGUIInput, "")
            GUICtrlSetState($hGUIQR, $GUI_HIDE)
            $aKeyData = GetKeyFromSSID($sSSID)
            $sQRData = 'WIFI:S:' & $aKeyData[0] & ';T:WPA;P:' & $aKeyData[1] & ';;'
            _createQRw_($sQRData, $hGUIQR)
            GUICtrlSetData($hGroup, "QR Code for SSID: " & $sSSID)
            GUICtrlSetData($hGUIInput, $aKeyData[1])
            GUICtrlSetState($hGUIQR, $GUI_SHOW)
        Case $hDelete
            If _DeleteEntry(GUICtrlRead($hGUIList)) = 1 Then $bFirstRun = True ; Recreate the Listbox
        Case $hRefresh
            $bFirstRun = True ; Recreate the Listbox
    EndSwitch
    If $bFirstRun Then
        $bFirstRun = False
        $hDLL = DllOpen("user32.dll")
        $aSSIDs = _GetSSIDs()
        GUICtrlSetData($hGUIList, "")
        GUICtrlSetData($hGUIList, _ArrayToString($aSSIDs))
    EndIf
WEnd

Func _GetSSIDs()
    Local $iPID = Run(@ComSpec & " /c " & 'netsh wlan show profile', @ScriptDir, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD)
    ProcessWaitClose($iPID)
    Local $sOutput = StdoutRead($iPID)
    ; Translate from OEM to ANSI.
    ; https://www.autoitscript.com/forum/topic/28678-dos-formatted-string/?do=findComment&comment=281231
    Local $aOutput = DllCall($hDLL, 'Int', 'OemToChar', 'str', $sOutput, 'str', '')
    $aOutput = StringSplit($aOutput[2], @CRLF)
    Local $iItems = 0, $aTemp
    Local $aSSIDs[$aOutput[0]]
    For $i = 1 To $aOutput[0]
        If StringInStr($aOutput[$i], $sProfile) Then
            $aTemp = StringSplit($aOutput[$i], ":")
            $aSSIDs[$iItems] = StringStripWS($aTemp[2], 1)
            $iItems += 1
        EndIf
    Next
    ReDim $aSSIDs[$iItems]
    Return $aSSIDs
EndFunc   ;==>_GetSSIDs

Func GetKeyFromSSID($sSSID)
    Local $aKey[2] = [$sSSID]
    Local $iPID = Run(@ComSpec & " /c " & 'netsh wlan show profile name="' & $sSSID & '" key=clear', @ScriptDir, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD)
    ProcessWaitClose($iPID)
    Local $sOutput = StdoutRead($iPID)
    ; Translate from OEM to ANSI.
    ; https://www.autoitscript.com/forum/topic/28678-dos-formatted-string/?do=findComment&comment=281231
    Local $aOutput = DllCall($hDLL, 'Int', 'OemToChar', 'str', $sOutput, 'str', '')
    $aOutput = StringSplit($aOutput[2], @CRLF)
    Local $aTemp
    For $i = 1 To $aOutput[0]
        If StringInStr($aOutput[$i], $sSecurityKey) Then
            $aTemp = StringSplit($aOutput[$i], ":")
            If StringStripWS($aTemp[2], 8) <> $sSecurityKeyValue Then
                $aKey[1] = $sSecurityKeyMsg
                ExitLoop
            EndIf
        EndIf
        If StringInStr($aOutput[$i], $sKeyContent) Then
            $aTemp = StringSplit($aOutput[$i], ":")
            $aKey[1] = StringStripWS($aTemp[2], 8)
            ExitLoop
        EndIf
    Next
    Return $aKey
EndFunc   ;==>GetKeyFromSSID

Func _DeleteEntry($sSSID)
    If MsgBox(BitOR($MB_ICONQUESTION, $MB_OKCANCEL), $sToolName, $sDeleteEntry & $sSSID) = $IDCANCEL Then Return 0
    Local $iPID = Run(@ComSpec & " /c " & 'netsh wlan delete profile name="' & $sSSID & '"', @ScriptDir, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD)
    ProcessWaitClose($iPID)
    Local $sOutput = StdoutRead($iPID)
    ; Translate from OEM to ANSI.
    ; https://www.autoitscript.com/forum/topic/28678-dos-formatted-string/?do=findComment&comment=281231
    Local $aOutput = DllCall($hDLL, 'Int', 'OemToChar', 'str', $sOutput, 'str', '')
    $aOutput = StringSplit($aOutput[2], @CRLF)
    Return 1
EndFunc   ;==>_DeleteEntry

 

 

My UDFs and Tutorials:

  Reveal hidden contents

 

Posted

Here we have a Babylonian confusion of languages.
The Water solution only works with German locale.
The Hunter070 solution only works with English locale.

This is because the netsh output is parsed with locale constants.

e.g. 
Global Const $sProfile = "All User Profile"  
Global Const $sProfile = "Profil für alle Benutzer"    

A language-independent version would be desirable.

 

App: Au3toCmd              UDF: _SingleScript()                             

Posted

I do not know of a way to change the language for CMD.

Another idea would be to run a command like "print /?" then examine the returned text to determine the language.
The needed text constants could then be read from an ini file.

What do you think?

My UDFs and Tutorials:

  Reveal hidden contents

 

Posted (edited)

All infos can be found in registry language independent. But I don't have a PC here with wifi adapter for testing.

This could be a registry key to start: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces

 

The Wifi passwords are stored  under C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces\[Interface Guid]. The encrypted keys are stored in .xml file.

 

 

Edit: I think this is far too complicated, so @OSLang is easiest way to go for now.

Edited by funkey

Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs, and the Universe
trying to produce bigger and better idiots.
So far, the Universe is winning.

Posted (edited)

Can you try this in command line (in elevated cmd)

md c:\Windows\Temp\wifi
cd /d c:\Windows\Temp\wifi
netsh wlan export profile key=clear

so you will have one xml file per SSID, in c:\windows\temp\wifi. You can now parse each XML file to get the informations you need. Not sure it contains the key...

 

Edited by jguinch
Posted (edited)

Simply read out the information regardless of the language.

Here is a hopefully language-independent solution:

#include <Array.au3>
#include <string.au3>
Global $hDLL = DllOpen("user32.dll")
$aSSIDs = _GetSSIDs()
For $i = 0 To UBound($aSSIDs) - 1
    $key = _GetKeyFromSSID($aSSIDs[$i])
    ConsoleWrite(@TAB & $aSSIDs[$i] & @TAB & @TAB & $key & @CRLF)
Next

Func _GetSSIDs()
    Local $iPID = Run(@ComSpec & " /c " & 'netsh wlan show profile', @ScriptDir, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD)
    ProcessWaitClose($iPID)
    Local $sOutput = StdoutRead($iPID)
    Local $aOutput = DllCall($hDLL, 'Int', 'OemToChar', 'str', $sOutput, 'str', '')
    $aOutput = _StringExplode($aOutput[2], "-" & @CRLF)
    $sOutput = $aOutput[UBound($aOutput) - 1]
    Local $aSSIDs = _StringBetween($sOutput, " : ", @CRLF)
    Return $aSSIDs
EndFunc   ;==>_GetSSIDs

Func _GetKeyFromSSID($sSSID) ;returns "1" if key is not present
    Local $iPID = Run(@ComSpec & " /c " & 'netsh wlan show profile name="' & $sSSID & '" key=clear', @ScriptDir, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD)
    ProcessWaitClose($iPID)
    Local $sOutput = StdoutRead($iPID)
    Local $aOutput = DllCall($hDLL, 'Int', 'OemToChar', 'str', $sOutput, 'str', '')
    $aOutput = _StringBetween($aOutput[2], " : ", @CRLF)
    Return $aOutput[UBound($aOutput) - 6]
EndFunc   ;==>_GetKeyFromSSID

Can the foreign language users please confirm that it works in their language.
German OK
English No
French ?
others ?

Edited by Exit

App: Au3toCmd              UDF: _SingleScript()                             

Posted (edited)

I really like this tool!

 

@Exit In English, I have a similar output "Unrestricted". For me, the offset is 7 instead of 6.

Return $aOutput[UBound($aOutput) - 7]

Here is my solution. How does this work on German version?

#include <Array.au3>
#include <string.au3>
Global $hDLL = DllOpen("user32.dll")
$aSSIDs = _GetSSIDs()
For $i = 0 To UBound($aSSIDs) - 1
    $key = _GetKeyFromSSID($aSSIDs[$i])
    ConsoleWrite(@TAB & $aSSIDs[$i] & @TAB & @TAB & $key & @CRLF)
Next

Func _GetSSIDs()
    Local $iPID = Run(@ComSpec & " /c " & 'netsh wlan show profile', @ScriptDir, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD)
    ProcessWaitClose($iPID)
    Local $sOutput = StdoutRead($iPID)
    Local $aOutput = DllCall($hDLL, 'Int', 'OemToChar', 'str', $sOutput, 'str', '')
    $aOutput = _StringExplode($aOutput[2], "-" & @CRLF)
    $sOutput = $aOutput[UBound($aOutput) - 1]
    Local $aSSIDs = _StringBetween($sOutput, " : ", @CRLF)
    Return $aSSIDs
EndFunc   ;==>_GetSSIDs

Func _GetKeyFromSSID($sSSID) ;returns "1" if key is not present
    Local $iPID = Run(@ComSpec & " /c " & 'netsh wlan show profile name="' & $sSSID & '" key=clear', @ScriptDir, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD)
    ProcessWaitClose($iPID)
    Local $sOutput = StdoutRead($iPID)
    Local $aOutput = DllCall($hDLL, 'Int', 'OemToChar', 'str', $sOutput, 'str', '')
    $aOutput = StringSplit($aOutput[2], @CRLF & "-", $STR_ENTIRESPLIT + $STR_NOCOUNT)
    $aOutput = _StringBetween($aOutput[3], " : ", @CRLF)
    Return $aOutput[UBound($aOutput) - 1]
EndFunc   ;==>_GetKeyFromSSID

 

For reference, here is my English netsh output

  Reveal hidden contents

 

BTW, there are still some nuances to work out, like this scenario.

  Reveal hidden contents

 

Edited by kurtykurtyboy
Posted (edited)

Can anyone verify this works?

Func _GetSSIDs()
    Local $iPID = Run(@ComSpec & " /c " & 'chcp 437 & netsh wlan show profile', @ScriptDir, @SW_SHOW, $STDOUT_CHILD + $STDERR_CHILD)
    ProcessWaitClose($iPID)
    Local $sOutput = StdoutRead($iPID)
    ; Translate from OEM to ANSI.
    ; https://www.autoitscript.com/forum/topic/28678-dos-formatted-string/?do=findComment&comment=281231
    Local $aOutput = DllCall($hDLL, 'Int', 'OemToChar', 'str', $sOutput, 'str', '')
    $aOutput = StringSplit($aOutput[2], @CRLF)
    Local $iItems = 0, $aTemp
    Local $aSSIDs[$aOutput[0]]
    For $i = 1 To $aOutput[0]
        If StringInStr($aOutput[$i], $sProfile) Then
            $aTemp = StringSplit($aOutput[$i], ":")
            $aSSIDs[$iItems] = StringStripWS($aTemp[2], 1)
            $iItems += 1
        EndIf
    Next
    ReDim $aSSIDs[$iItems]
    Return $aSSIDs
EndFunc   ;==>_GetSSIDs

Func GetKeyFromSSID($sSSID) ;returns "!" if key is not present
    Local $aKey[4]
    $aKey[2] = $sSSID
    Local $iPID = Run(@ComSpec & " /c " & 'chcp 437 & netsh wlan show profile name="' & $sSSID & '" key=clear', @ScriptDir, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD)
    ProcessWaitClose($iPID)
    Local $sOutput = StdoutRead($iPID)
    ; Translate from OEM to ANSI.
    ; https://www.autoitscript.com/forum/topic/28678-dos-formatted-string/?do=findComment&comment=281231
    Local $aOutput = DllCall($hDLL, 'Int', 'OemToChar', 'str', $sOutput, 'str', '')
    $aOutput = StringSplit($aOutput[2], @CRLF)
    Local $aTemp
    For $i = 1 To $aOutput[0]
        If StringInStr($aOutput[$i], $sSecurityKey) Then
            $aTemp = StringSplit($aOutput[$i], ":")
            $aKey[3] = StringStripWS($aTemp[2], 8) ;security key value
            If StringStripWS($aTemp[2], 8) <> $sSecurityKeyValue Then
                $aKey[1] = "!"
                ExitLoop
            EndIf
        EndIf
        If StringInStr($aOutput[$i], $sKeyContent) Then
            $aTemp = StringSplit($aOutput[$i], ":")
            $aKey[1] = StringStripWS($aTemp[2], 8)
            ExitLoop
        EndIf
    Next
    Return $aKey
EndFunc   ;==>GetKeyFromSSID

 

chcp changes the language of command prompt

Edited by Hunter070
Posted (edited)

@Hunter070That works for me (English). But I don't think changing the code page will change the language of the netsh output.. I tried changing it to Russian for fun and the output looked exactly the same.
 

Here is another roundabout solution. It exports the profile to an xml file then grabs the password and deletes the file. But this all depends on if other languages use the same file tags <keyMaterial> or some other translated string. Could someone test?

* I also changed the SSID grabber to use a regular expression since it seems more straightforward to me, but I know others don't like it, so 🤷‍♂️.

#include <AutoItConstants.au3>
#include <StringConstants.au3>
Global $hDLL = DllOpen("user32.dll")
$aSSIDs = _GetSSIDs()
For $i = 0 To UBound($aSSIDs) - 1
    $key = _GetKeyFromSSID($aSSIDs[$i])
    ConsoleWrite(@TAB & $aSSIDs[$i] & @TAB & @TAB & $key & @CRLF)
Next

Func _GetSSIDs()
    Local $iPID = Run(@ComSpec & " /c " & 'netsh wlan show profile', @ScriptDir, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD)
    ProcessWaitClose($iPID)
    Local $sOutput = StdoutRead($iPID)
    Local $aOutput = DllCall($hDLL, 'Int', 'OemToChar', 'str', $sOutput, 'str', '')
    Local $aSSIDs = StringRegExp($aOutput[2], '(?m)\s+:\s+(.*?)$', $STR_REGEXPARRAYGLOBALMATCH)
    Return $aSSIDs
EndFunc   ;==>_GetSSIDs

Func _GetKeyFromSSID($sSSID) ;returns "1" if key is not present

    ;export to xml file
    Local $iPID = Run(@ComSpec & " /c " & 'netsh wlan export profile name="' & $sSSID & '" folder="' & @ScriptDir & '" key=clear', @ScriptDir, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD)
    ProcessWaitClose($iPID)
    Local $sOutput = StdoutRead($iPID)
    Local $aOutput = DllCall($hDLL, 'Int', 'OemToChar', 'str', $sOutput, 'str', '')

    ;get filename of the file that was exported
    $aRegExp = StringRegExp($aOutput[2], '"((?:""|[^"])*)"', $STR_REGEXPARRAYGLOBALMATCH  )
    $sFilename = $aRegExp[1]

    ;load the file and parse out the password
    $sFileData = FileRead($sFilename)
    FileDelete($sFilename)
    $aPassword = StringRegExp($sFileData, '(?m)<keyMaterial>(.*?)</keyMaterial>', $STR_REGEXPARRAYGLOBALMATCH )

    ;if error, then no password was found
    If @error Then
        Return ""
    Else
        Return $aPassword[0]
    EndIf

EndFunc   ;==>_GetKeyFromSSID


edit: I just saw @jguinch had already made the suggestion to export and read the profiles... here I was thinking I had this genius idea!

Edited by kurtykurtyboy
Posted
  On 6/25/2022 at 6:20 AM, Exit said:

Waiting for results in other languages.

Expand  

@kurtykurtyboy's latest script works on Italian system, you get a password in binary format. To get the password in clear text, add #RequireAdmin at the beginning of the script

 

image.jpeg.9f1a974c98e9f77d824b358729b089b0.jpeg Chimp

small minds discuss people average minds discuss events great minds discuss ideas.... and use AutoIt....

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...