Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0044: Von Windows zwischengespeicherte Paßwörter auslesen

 von 

Beschreibung 

Verschiedene windowsspezifische Paßwörter, wie die der DFÜ-Verbindungen oder des Internet-Explorers können vom Anwender zwischengespeichert, und vom VB-Programmierer ausgelesen werden. Das läuft relativ unkompliziert:

Schwierigkeitsgrad:

Schwierigkeitsgrad 2

Verwendete API-Aufrufe:

WNetEnumCachedPasswords

Download:

Download des Beispielprojektes [2,55 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Listen-Steuerelement "List1"

Option Explicit

Private Sub Form_Load()
  Call Paßwörter
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'--------- Anfang Modul "Module1" alias Module1.bas ---------

Option Explicit

Declare Function WNetEnumCachedPasswords Lib "mpr.dll" _
        (ByVal s As String, ByVal i As Integer, ByVal b _
        As Byte, ByVal proc As Long, ByVal l As Long) As Long

Type PAßWORT_TYPE
  Eintrag As Integer
  Quelle As Integer
  Paßwort As Integer
  i As Byte
  nT As Byte
  Feld(1 To 1024) As Byte
End Type

Public Function CallBack(Ret As PAßWORT_TYPE, ByVal l&) As Integer
  Dim X%, AA$, Quelle$, Paßwort$

    For X = 1 To Ret.Quelle
      If Ret.Feld(X) <> 0 Then
        Quelle = Quelle & Chr$(Ret.Feld(X))
      Else
        Quelle = Quelle & " "
      End If
    Next X

    For X = Ret.Quelle + 1 To (Ret.Quelle + Ret.Paßwort)
      If Ret.Feld(X) <> 0 Then
        Paßwort = Paßwort & Chr$(Ret.Feld(X))
      Else
        Paßwort = Paßwort & " "
      End If
    Next X

    Form1.List1.AddItem " Q: " & Quelle & " P: " & Paßwort
    CallBack = True
    
End Function

Public Sub Paßwörter()
  Call WNetEnumCachedPasswords("", 0&, &HFF, AddressOf CallBack, 0&)
End Sub
'---------- Ende Modul "Module1" alias Module1.bas ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 11 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Joh. Hermann Schwering am 12.12.2008 um 14:09

Laufzeitfehler 453

DLL Einsprungpunkt WNetEnumCachedPasswords
in mpr.dll nicht gefunden

mpr.dll ist vorhanden

Kommentar von Ali am 21.10.2005 um 18:54

Ich habe auch ein Programm installiert dass diese Nachricht gibt wie kann ich das Problem lösen?
Benutze Windows XP Home Edition SP2 und hab auch auf SP1 versucht , ging aber trotzdem nicht.
Könnten Sie mir vielleicht behilflich sein?
Wäre sehr nett


Danke

Kommentar von Philipp am 27.11.2003 um 16:45

Fals es noch jemanden interessiert so wie es aussieht gibt es den dll_Einsprungspunkt WNetEnumCachedPasswords in der mpl.dll nicht!

Kommentar von Philipp am 27.12.2002 um 13:55

Die Funktion WNetEnumCachedPasswords gibt es einfach in Windows NT und damit 2000 und XP nicht! Deshalb funktioniert dieser Tipp auch nur unter Win 9x; wäre ja auch irgendwie blöd, wenn man in dem "sicheren Netzwerkbetriebssystem" Win2k einfach so die gespeicherten Passwörter auslesen könnte ;-)
Warum das in ME nicht klappt - keine Ahnung. Vielleicht hat MS da diese Funktion einfach gesperrt, oder die Passwörter werden irgendwie anders gespeichert und die Funktion findet deshalb nix.

Kommentar von Heiko am 27.08.2002 um 09:13

Bei mir funktioniert, wie bei den anderen auch der Tip nicht unter WIN2K.
Fehler:
dll Einsprungspunkt nicht gefunden: WNetEnumCachedPasswords
Habe schon mit den Admin Rechten gspielt, aber Null Erfolg. Gibt es einen Tipp?

Kommentar von IVHP am 07.08.2002 um 20:10

Unter WinNT 4.0 und XP setzt man normalerweise einige regkeys so, dass man passwörter nicht cached. in ME und XP sind so evtl. sogar defaultmässig so eingestellt. macht ja auch Sinn. das ändert aber nichts ab man admin rechte hat oder nicht, das hätte nur mit dem direkten auslesen aus der registry zu tun (nichts mit gecachten passwörtern),, da man unter NT4.0 die regzweige einzeln user nicht les/schreibbar setzen kann

Kommentar von van-tomas am 26.12.2001 um 02:10

hab in nem hack-forum gelesen, dass das auslesen der passwoerter unter win2k und winxp NICHT funzen. denke das hat mit admin-rechten usw zu tun.
check: www.van-tomas.net

Kommentar von Christian Brenner am 27.09.2001 um 14:57

Ich habe auch Win2k und VB6! Bei mir funktioniert der Tip auch nicht! Was kann ich dagegen tun?!?
Fehler:
dll Einsprungspunkt nicht gefunden: WNetEnumCachedPasswords

Kommentar von martin am 15.05.2001 um 13:10

thank

Kommentar von Michael Rotmanov am 27.01.2001 um 13:47

Bei WinME funktioniert dieser Tip nicht. Alles verläuft ohne Fehler, es werden lediglich keine Einträge in die Listbox gestellt.

Kommentar von Christian Studt am 24.12.2000 um 13:55

Bei mir funktioniert dieser Tipp nicht (Win2k), obwohl er anscheinend funktionieren sollte.
- dll Einsprungspunkt nicht gefunden: WNetEnumCachedPasswords