Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: dimitrix en 30 Diciembre 2006, 19:57 pm



Título: Leer carpeta de regedit
Publicado por: dimitrix en 30 Diciembre 2006, 19:57 pm
Hola,  he podido modificar y borrar claves de registro, pero nunca he podido leerlas y que se pongan en un texbox, pero ahora necesito algo un poco más complicado.
Lo que necesito es que por ejemplo mire si existe la carpeta "HKEY_CURRENT_USER\Software\Algo" y si existe la carpeta algo que me salga en el texbox "si" y si no existe que salga "no"

Es para hacer un antivirus de un troyano invisible.

Muchas gracias.


Título: Re: Leer carpeta de regedit
Publicado por: <?BRoWLi?> en 30 Diciembre 2006, 21:43 pm
abre el archivo en modo random... y lee el registro k kieras...


Título: Re: Leer carpeta de regedit
Publicado por: dimitrix en 30 Diciembre 2006, 21:54 pm
sorry no te entiendo, me lo podrias poner, o explicar como si tuviese 3 año o menos.
Esque el random lo utilize una vez pero para hacer numeros aleajorios


Título: Re: Leer carpeta de regedit
Publicado por: <?BRoWLi?> en 30 Diciembre 2006, 22:06 pm
open registro for random as canal
 get (almoadilla no la encuentro xD)canal, numero del registro, variable de almacenamiento
text1 = variabledealmacenamiento
close canal

Te confundes.. random es un modo de lectura aleatoria... no es que de num aleatorios jeje... hice un tuto donde explico sobre este tipo de acceso, esta por el foro

suerte


Título: Re: Leer carpeta de regedit
Publicado por: dimitrix en 30 Diciembre 2006, 22:18 pm
ahora lo pruebo, ya te contare, gracias


Título: Re: Leer carpeta de regedit
Publicado por: dimitrix en 30 Diciembre 2006, 23:36 pm
Seria algo así

Private Sub Command1_Click()
Open registro For Random As canal
get #canal, numero del registro, variable de almacenamiento
Text1 = variabledealmacenamiento
Close canal

End Sub


en lo rejo que tengo que poner? con el ejemplo de HKEY_CURRENT_USER\Software\Algo como sería

Muchas gracias por todo y feliz navidad


Título: Re: Leer carpeta de regedit
Publicado por: NYlOn en 31 Diciembre 2006, 01:44 am
Espero que esta funcion te sirva:
Código:
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_CURRENT_CONFIG = &H80000005

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


Public Function RegComprobarClave(Key As String, Subkey As String) As Boolean
    Dim regRes As Long
    Key = LLave(Key)
    RegOpenKey Key, Subkey, regRes
    If regRes = 0 Then
        RegComprobarClave = False
    Else
        RegComprobarClave = True
    End If
    RegCloseKey regRes
End Function

Para usarla pone:
Código:
MsgBox RegComprobarClave(HKEY_LOCAL_MACHINE, "Software\Microsoft")

Si existe la clave Microsoft te devuelve TRUE.

Saludos.-


Título: Re: Leer carpeta de regedit
Publicado por: CeLaYa en 31 Diciembre 2006, 01:48 am
bueno pongo una respuesta y una pregunta.


respuesta para dimitrix1:
el código quedaría así:
Código:
Private Sub Command1_Click()
    Dim f As Long, s As String
    f = FreeFile
    Open registro For Random As f
    Get #f, 10, s
    Text1.Text = s
    Close f
end sub

Pregunta para BRoWLi:
¿Cual es el path y nombre del archivo que contiene los datos del registro?  :huh:


Título: Re: Leer carpeta de regedit
Publicado por: dimitrix en 31 Diciembre 2006, 10:07 am
Te retoco el codigo:

En un modulo
Citar
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_CURRENT_CONFIG = &H80000005

Citar
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


Public Function RegComprobarClave(Key As String, Subkey As String) As Boolean
    Dim regRes As Long
    RegOpenKey Key, Subkey, regRes
    If regRes = 0 Then
        RegComprobarClave = False
    Else
        RegComprobarClave = True
    End If
    RegCloseKey regRes
End Function
He eliminado la parte:
Citar
Key = LLave(Key)

Y en un botón:
Citar
MsgBox RegComprobarClave(HKEY_LOCAL_MACHINE, "Software\Microsoft")

Gracias va genial


Título: Re: Leer carpeta de regedit
Publicado por: NYlOn en 31 Diciembre 2006, 20:42 pm
Citar
He eliminado la parte:
Key = LLave(Key)

Me olvide de poner esa funcion :-X. Era para que uno pueda poner HKLM en vez de HKEY_LOCAL_MACHINE. La funcion lo que hacia, era 'traducir' el metodo abreviado.

Saludos.-


Título: Re: Leer carpeta de regedit
Publicado por: luispirata en 6 Enero 2007, 20:10 pm
Hola, también estoy desarrollando un proyecto en vb para leer el registro, estos tips me han servido para verificar una carpeta, pero me gustaría saber como extraigo el contenido de un archivo de la carpeta del tipo REG_SZ o REG_DWORD, para adquirir el friendlyname de un dispositivo PCI.

qUEDARE MUY AGRADECIDO POR SU COLABORACIÓN.