Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Source Codes
Autor
Nachricht
ZiG
Überflieger
Überflieger

Anmeldedatum: 16.04.2008
Beiträge: 421

Reg Login
Verfasst am: 18.06.2009, 12:00

Autor: big earl

Also das ist ein kleiner Login, der seine Einstellungen in der Reg speichert

Pro
- Man hat keine Dateien aus denen das PW ausgelesen werden kann
- Ich find, man kann besser Abfragen

Kontra
- Längerer Code ( auch nicht so wirklich )
- Falls man für das Schreiben in der Reg keine Rechte hat geht das natürlich nicht

Also fangen wir mal an

Als erstes brauchen wir ein Modul
Den könnt ihr so Kopieren, braucht ihr nicht zu verstehen
Hab ich auch gemacht
( Die die solche codes lernen sind dann auch nur Freaks )

Code:
'wird in der Form benötigt:<br />Public SubKey$<br />Public Eintrag$<br />Public Key%<br /><br /><br />'Fehler oder nicht<br />Const ERROR_SUCCESS = 0<br /><br />'Hauptschlüssel<br />Const MainKey = &H80000000<br />Public Const HKEY_CLASSES_ROOT = 0<br />Public Const HKEY_CURRENT_USER = 1<br />Public Const HKEY_LOCAL_MACHINE = 2<br />Public Const HKEY_USERS = 3<br />Public Const HKEY_PERFORMANCE_DATA = 4 '(nur NT)<br />Public Const HKEY_CURRENT_CONFIG = 5<br />Public Const HKEY_DYN_DATA = 6<br /><br /><br />'Zugriffcodes<br />Const KEY_ALL_ACCESS = &H3F<br /><br />Public Const KEY_QUERY_VALUE = &H1<br />Const KEY_SET_VALUE = &H2<br />Const KEY_CREATE_SUB_KEY = &H4<br />Const KEY_ENUMERATE_SUB_KEYS = &H8<br /><br />'Optionen beim Anlegen<br />Const REG_OPTION_NON_VOLATILE = 0<br /><br />'Datentypen<br />Const REG_NONE = 0<br />Const REG_SZ = 1<br />Const REG_EXPAND_SZ = 2<br />Const REG_BINARY = 3<br />Const REG_DWORD = 4<br />Const REG_DWORD_LITTLE_ENDIAN = 4<br />Const REG_DWORD_BIG_ENDIAN = 5<br />Const REG_LINK = 6<br />Const REG_MULTI_SZ = 7<br />Const REG_RESOURCE_LIST = 8<br />Const REG_FULL_RESOURCE_DESCRIPTOR = 9<br />Const REG_RESOURCE_REQUIREMENTS_LIST = 10<br /><br /><br />'Strukturen<br />Type Time<br />   LowTime As Long<br />   HighTime As Long<br />End Type<br /><br /><br />'Sicherheitsstruktur nur zur Deklaration der Funktionen<br />Type SECURITY_ATTRIBUTES<br />   Length As Long<br />   Descriptor As Long<br />   InheritHandle As Boolean<br />End Type<br /><br />'Prototypen aus ADVAPI32<br />Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal sSubKey As String, ByVal lReserved As Long, ByVal lSecurity As Long, hKeyReturn As Long) As Long<br />Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long<br /><br />Declare Function RegQueryValue Lib "advapi32" Alias "RegQueryValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpValue As String, lpcbValue As Long) As Long<br />Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal sValue As String, lReserved As Long, lTyp&, ByVal sData As String, lcbData As Long) As Long<br />Declare Function RegQueryValueExString Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long<br />Declare Function RegQueryValueExLong Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Long, lpcbData As Long) As Long<br />Declare Function RegQueryValueExNULL Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As Long, lpcbData As Long) As Long<br /><br />Declare Function RegEnumKey Lib "advapi32" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpname As String, ByVal cbName As Long) As Long<br />Declare Function RegEnumKeyEx Lib "advapi32" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal SubKeyIndex As Long, ByVal SubKeyName As String, SubKeyNameSize As Long, Reserved As Long, ByVal Class As String, ClassSize As Long, FileTime As Time) As Long<br /><br />Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal Name As String, ByVal Reserved As Long, ByVal DataType As Long, ByVal Data As String, ByVal Length As Long) As Long<br /><br />Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal SubKey As String, ByVal Reserved As Long, ByVal Class As String, ByVal Options As Long, ByVal Access As Long, Security As SECURITY_ATTRIBUTES, hKeyNew As Long, Disposition As Long) As Long<br />Declare Function RegDeleteValue Lib "advapi32" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal Key As String) As Long<br />Declare Function RegDeleteKey Lib "advapi32" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long<br /><br /><br />Sub RegCreate(MainKey%, ByVal Key$)<br />    b$ = ""<br />    Do While InStr(Key$, "")<br />        c$ = zeichennext$(Key$, "")<br />        RegCreateKey MainKey%, b$, c$<br />        If Len(b$) Then b$ = b$ + ""<br />        b$ = b$ + c$<br />    Loop<br />    RegCreateKey MainKey%, b$, Key$<br />End Sub<br /><br />Sub RegSetValue(KeyIndex%, SubKey As String, Name As String, lTyp&, Wert As String, lByte&)<br />'KeyIndex=0: HKEY_CLASSES_ROOT<br />'         1: HKEY_CURRENT_USER<br />'         2: HKEY_LOCAL_MACHINE<br />'         3: HKEY_USERS<br />'         4: HKEY_PERFORMANCE_DATA (nur NT)<br />'         5: HKEY_CURRENT_CONFIG<br />'         6: HKEY_DYN_DATA<br /><br />    lhKey& = MainKey + KeyIndex<br />    lResult& = RegOpenKeyEx(lhKey&, SubKey, 0, KEY_SET_VALUE, lhKeyOpen&)<br />    If lResult& <> ERROR_SUCCESS Then Exit Sub<br />    lResult& = RegSetValueEx(lhKeyOpen&, Name, 0, lTyp&, Wert, lByte&)<br />    'If lResult& <> ERROR_SUCCESS Then (Fehler...)<br />    RegCloseKey lhKeyOpen&<br />End Sub<br /><br />Sub Reg_DeleteValue(KeyIndex%, Key$, sch$)<br />    lhKey& = MainKey + KeyIndex%<br />    lResult& = RegOpenKeyEx(lhKey&, Key, 0, KEY_SET_VALUE, lhKeyOpen&)<br />    If lResult& <> ERROR_SUCCESS Then Exit Sub<br />    lResult& = RegDeleteValue(lhKeyOpen&, sch$)<br />    'If lResult& <> ERROR_SUCCESS Then (Fehler...)<br />    RegCloseKey lhKeyOpen&<br />End Sub<br /><br />Sub Reg_DeleteKey(KeyIndex%, Key$)<br />    lhKey& = MainKey + KeyIndex%<br />    lResult& = RegDeleteKey(lhKey&, Key$)<br />    'If lResult& <> ERROR_SUCCESS Then (Fehler...)<br />End Sub<br /><br />Function Reg_Exist_Key(KeyIndex%, SubKey As String) As Boolean<br />    lhKey& = MainKey + KeyIndex<br />    Reg_Exist_Key = False<br />    l& = RegOpenKeyEx(lhKey&, SubKey, 0, KEY_ALL_ACCESS, lhKeyOpen&)<br />    'Schlüssel existiert nicht<br />    If l& <> ERROR_SUCCESS Then Exit Function<br />    Reg_Exist_Key = True<br />End Function<br /><br />Function Reg_Exist_Value(KeyIndex%, SubKey As String, Name As String) As Boolean<br />    lhKey& = MainKey + KeyIndex<br />    Reg_Exist_Value = False<br />    l& = RegOpenKeyEx(lhKey&, SubKey, 0, KEY_ALL_ACCESS, lhKeyOpen&)<br />    'Schlüssel existiert nicht<br />    If l& <> ERROR_SUCCESS Then Exit Function<br />    'Wert existiert nicht<br />    l& = RegQueryValueExNULL(lhKeyOpen&, Name, 0&, lTyp&, 0&, cch&)<br />    If l& <> ERROR_SUCCESS Then Exit Function<br />    Reg_Exist_Value = True<br />End Function<br /><br />Function Reg_GetValue_Typ(KeyIndex%, SubKey As String, Name As String) As String<br />    lhKey& = MainKey + KeyIndex<br />    Reg_GetValue_Typ = ""<br />    l& = RegOpenKeyEx(lhKey&, SubKey, 0, KEY_ALL_ACCESS, lhKeyOpen&)<br />    If l& <> ERROR_SUCCESS Then Exit Function<br />    <br />    l& = RegQueryValueExNULL(lhKeyOpen&, Name, 0&, lTyp&, 0&, cch&)<br />    If l& <> ERROR_SUCCESS Then Exit Function<br />    Select Case lTyp&<br />    Case REG_SZ<br />        Reg_GetValue_Typ = "STRING"<br />    Case REG_DWORD<br />        Reg_GetValue_Typ = "DWORD"<br />    Case REG_BINARY<br />        Reg_GetValue_Typ = "BINARY"<br />    Case Else<br />        Reg_GetValue_Typ = "???"<br />    End Select<br />End Function<br /><br />Function Reg_GetValue(KeyIndex%, SubKey As String, Name As String) As String<br />    lhKey& = MainKey + KeyIndex<br />    Reg_GetValue = ""<br /><br />    l& = RegOpenKeyEx(lhKey&, SubKey, 0, KEY_ALL_ACCESS, lhKeyOpen&): If l& <> ERROR_SUCCESS Then Exit Function<br />    l& = RegQueryValueExNULL(lhKeyOpen&, Name, 0&, lTyp&, 0&, cch&): If l& <> ERROR_SUCCESS Then Exit Function<br /><br />    Select Case lTyp&<br />    Case REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ:<br />        sValue$ = String(cch& + 1, 0)<br />        l& = RegQueryValueExString(lhKeyOpen&, Name, 0&, lTyp&, sValue$, cch&): If l& <> ERROR_SUCCESS Then Exit Function<br />        Reg_GetValue = zeichennext$(Left$(sValue$, cch&), Chr$(0))<br />    Case REG_DWORD<br />        l& = RegQueryValueExLong(lhKeyOpen&, Name, 0&, lTyp&, lValue&, cch&): If l& <> ERROR_SUCCESS Then Exit Function<br />        Reg_GetValue = Trim$(Str$(lValue&))<br />    Case REG_BINARY<br />        sValue$ = String(cch& + 1, 0)<br />        l& = RegQueryValueExString(lhKeyOpen&, Name, 0&, lTyp&, sValue$, cch&): If l& <> ERROR_SUCCESS Then Exit Function<br />        Reg_GetValue = Left$(sValue$, cch&)<br />        For iTempInt = 1 To Len(Reg_GetValue)<br />            s = Asc(Mid$(Reg_GetValue, iTempInt, 1))<br />            'Binärwerte bringen Probleme,<br />            'sollte so aber funktionieren !<br />            temp = ""<br />            If s = 26 Then temp = "1A "<br />            If s = 58 Then temp = "3A "<br />            If s = 74 Then temp = "4A "<br />            If s = 90 Then temp = "5A "<br />            If s = 106 Then temp = "6A "<br />            If s = 122 Then temp = "7A "<br />            If s = 138 Then temp = "8A "<br />            If s = 154 Then temp = "9A "<br />            If temp = "" Then<br />                sBinaryString = sBinaryString & Format(Hex(Asc(Mid$(Reg_GetValue, iTempInt, 1))), "00") & " "<br />            Else<br />                sBinaryString = sBinaryString & temp<br />            End If<br />        Next iTempInt<br />        Reg_GetValue = sBinaryString<br />    End Select<br />    RegCloseKey lhKeyOpen&<br />End Function<br /><br /><br />Function zeichennext$(a$, ch$)<br />    ai% = InStr(a$, ch$)<br />    If ai% = 0 Then<br />        zeichennext$ = a$: a$ = ""<br />    Else<br />        zeichennext$ = Left$(a$, ai% - 1): a$ = Mid$(a$, ai% + Len(ch$))<br />    End If<br />End Function<br /><br />Sub RegCreateKey(KeyIndex As Integer, SubKey As String, NewSubKey As String)<br />    Dim Security As SECURITY_ATTRIBUTES<br />    lhKey& = MainKey + KeyIndex<br /><br />    lResult& = RegOpenKeyEx(lhKey&, SubKey, 0, KEY_CREATE_SUB_KEY, lhKeyOpen&)<br />    If lResult& <> ERROR_SUCCESS Then Exit Sub<br /><br />    lResult& = RegCreateKeyEx(lhKeyOpen&, NewSubKey, 0, "", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, Security, lhKeyNew&, lDisposition&)<br />    If lResult& = ERROR_SUCCESS Then<br />        'If lDisposition& = REG_CREATED_NEW_KEY Then<br />            '   ...Schlüssel wurde angelegt<br />        'Else<br />            '   ...Schlüssel existiert bereits<br />        'End If<br />        RegCloseKey lhKeyNew&<br />    Else<br />        'Fehler...<br />    End If<br />    RegCloseKey lhKeyOpen&<br />End Sub<br /><br />Sub Reg_SetBinary(MainKey%, Key$, sch$, wrt$)<br />    RegCreate MainKey%, Key$<br />    RegSetValue MainKey%, Key$, sch$, REG_BINARY, wrt$, Len(wrt$)<br />End Sub<br /><br />Sub Reg_SetDWord(MainKey%, Key$, sch$, ByVal wrt&)<br />    RegCreate MainKey%, Key$<br />    w$ = ""<br />    For n% = 1 To Len(wrt&)<br />        w$ = w$ + Chr$(wrt& Mod 256)<br />        wrt& = Int(wrt& / 256)<br />    Next<br />    RegSetValue MainKey%, Key$, sch$, REG_DWORD, w$, Len(wrt&)<br />End Sub<br /><br />Sub Reg_SetString(MainKey%, Key$, sch$, wrt$)<br />    RegCreate MainKey%, Key$<br />    RegSetValue MainKey%, Key$, sch$, REG_SZ, wrt$, Len(wrt$)<br />End Sub


Dann kommen die Befehle

Folgende befehle sind hier wichtig

Eintragen:
Code:
Reg_SetString HKEY_CURRENT_USER, SubKey, "Sektion", "Eintrag"


Auslesen:
Code:
Reg_GetValue(HKEY_CURRENT_USER, SubKey, "Sektion")


Beim auslesen wird das ausgelesen, was beim eintragen unter der Sektion stand

Dann brauchen wir noch den Reg Pfad
Code:
SubKey = "SoftwareMicrosoftWindowsCurrentVersionPoliciesSystem"


hab hier mal nen Standart genommen, aber ihr könnt natürlich jeden anderen nehmen

Also das als ganzes Programm habt ihr hier
Hab die erklärungen dort auch nochmal drinne

http://rapidshare.com/files/75647559/Reg_Login.rar

Der code darf frei verwendet werden

Und ich weis diese Methode ist schon älter, aber man kann sie noch gut gebrauchen

greetz big earl
_________________
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Source Codes

Tags: dword

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Wichtig: Filebrowser z.B. für ein RAT 2116 13.01.2008, 11:14
Keine neuen Beiträge msgbox mit symbol _&_ z.B. yesno oder systemmodal 1077 26.09.2008, 23:16
Keine neuen Beiträge Abändern eines Ordnernamens (z.B. C:\Programme = Programme) 1194 23.04.2008, 15:33
Keine neuen Beiträge "Zurück-Funktion" mit Listview und z.B. DirView 733 17.04.2008, 13:30
Keine neuen Beiträge Fenster auslesen z.b von icq oder msn wer online kommt 1222 11.02.2008, 16:46
 



[ Time: 0.1374s ][ Queries: 81 (0.0172s) ][ GZIP on - Debug on ]