Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Hendrix en 8 Marzo 2006, 23:37 pm



Título: Meter llaves del registro dentro de un .txt
Publicado por: Hendrix en 8 Marzo 2006, 23:37 pm
Weno, imaginemos que tenemos esta llave:

HKLM\Software\Microsoft\Windows

y keremos meter todas las llaves de esta ruta dentro de un .txt (los nombres de las llaves, lo que hay dentro no)....

Komo se aria??? es posible en VB???

Weno, espero que me puedan resolvere sta duda...

Salu2

Hendrix



Título: Re: Meter llaves del registro dentro de un .txt
Publicado por: Pseudoroot en 9 Marzo 2006, 13:01 pm
leyendo las llaves con alguna especie de bucle.  :P


Título: Re: Meter llaves del registro dentro de un .txt
Publicado por: Kizar en 9 Marzo 2006, 15:05 pm
Source_ Api Guide

Código:
Const ERROR_NO_MORE_ITEMS = 259&
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_LOCAL_MACHINE = &H80000002
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As Any) As Long
Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Private Sub Form_Load()
    'KPD-Team 2001
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim hKey As Long, Cnt As Long, sName As String, sData As String, Ret As Long, RetData As Long
    Const BUFFER_SIZE As Long = 255
    'Set the forms graphics mode to persistent
    Me.AutoRedraw = True
    Me.Print "RegEnumKeyEx"
    Ret = BUFFER_SIZE
    'Open the registry key
    If RegOpenKey(HKEY_LOCAL_MACHINE, "Hardware", hKey) = 0 Then
        'Create a buffer
        sName = Space(BUFFER_SIZE)
        'Enumerate the keys
        While RegEnumKeyEx(hKey, Cnt, sName, Ret, ByVal 0&, vbNullString, ByVal 0&, ByVal 0&) <> ERROR_NO_MORE_ITEMS
            'Show the enumerated key
            Me.Print "  " + Left$(sName, Ret)
            'prepare for the next key
            Cnt = Cnt + 1
            sName = Space(BUFFER_SIZE)
            Ret = BUFFER_SIZE
        Wend
        'close the registry key
        RegCloseKey hKey
    Else
        Me.Print "  Error while calling RegOpenKey"
    End If
    Me.Print vbCrLf + "RegEnumValue"
    Cnt = 0
    'Open a registry key
    If RegOpenKey(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion", hKey) = 0 Then
        'initialize
        sName = Space(BUFFER_SIZE)
        sData = Space(BUFFER_SIZE)
        Ret = BUFFER_SIZE
        RetData = BUFFER_SIZE
        'enumerate the values
        While RegEnumValue(hKey, Cnt, sName, Ret, 0, ByVal 0&, ByVal sData, RetData) <> ERROR_NO_MORE_ITEMS
            'show data
            If RetData > 0 Then Me.Print "  " + Left$(sName, Ret) + "=" + Left$(sData, RetData - 1)
            'prepare for next value
            Cnt = Cnt + 1
            sName = Space(BUFFER_SIZE)
            sData = Space(BUFFER_SIZE)
            Ret = BUFFER_SIZE
            RetData = BUFFER_SIZE
        Wend
        'Close the registry key
        RegCloseKey hKey
    Else
        Me.Print "  Error while calling RegOpenKey"
    End If
End Sub

Esto te lista todas las claves y valores que har dentro de una ruta de registo.

Salu2


Título: Re: Meter llaves del registro dentro de un .txt
Publicado por: Hendrix en 9 Marzo 2006, 15:29 pm
Muchas gracias Kizar!!!!! ;) ;) ;) pero komo se haria para ver el kontenido de la clave HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion????

Y komo meto todo esto en un .txt??? porke veo que lo "imprime" en la pantalla bastantes veces.....

Weno, muchas gracias por la info

Salu2

Hendrix



Título: Re: Meter llaves del registro dentro de un .txt
Publicado por: Hendrix en 9 Marzo 2006, 15:35 pm
Weno, ahora ya se komo sacar las llaves, pero ahora lo que intento hacer es meter todas esas llaves en un listbox...

Lo que ago es esto:

If RegOpenKey(HKEY_LOCAL_MACHINE, "Software\Microsoft", hKey) = 0 Then
        'Create a buffer
        sName = Space(BUFFER_SIZE)
        'Enumerate the keys
        While RegEnumKeyEx(hKey, Cnt, sName, Ret, ByVal 0&, vbNullString, ByVal 0&, ByVal 0&) <> ERROR_NO_MORE_ITEMS
            'Show the enumerated key
            List1.AddItem = Left$(sName, Ret)
            'prepare for the next key
            Cnt = Cnt + 1
            sName = Space(BUFFER_SIZE)
            Ret = BUFFER_SIZE

Pero me marka error....

A que se debe???

Weno, Muchas gracias por responder!!!!

Salu2

Hendrix



Título: Re: Meter llaves del registro dentro de un .txt
Publicado por: Kizar en 9 Marzo 2006, 16:01 pm
Código:
List1.AddItem Left$(sName, Ret)

Salu2  ;)


Título: Re: Meter llaves del registro dentro de un .txt
Publicado por: Hendrix en 9 Marzo 2006, 16:08 pm
 :o :o :o :o madre mia que fallo....jajajajaja xD xD

Weno, otra vez, muchas gracias Kizar  ;) ;)

Salu2



Título: Re: Meter llaves del registro dentro de un .txt
Publicado por: Kizar en 9 Marzo 2006, 16:15 pm
Pa eso estamos


Título: Re: Meter llaves del registro dentro de un .txt
Publicado por: .Slasher-K. en 9 Marzo 2006, 20:21 pm
RegSaveKey (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/regsavekey.asp)