Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Pitoniso en 14 Noviembre 2006, 01:57 am



Título: Agregar un Archivo .Reg al Registro de Windows, Como hago???
Publicado por: Pitoniso en 14 Noviembre 2006, 01:57 am
Bueno denme la luz pq no tengo idea alguna...

Saludos...


Título: Re: Agregar un Archivo .Reg al Registro de Windows, Como hago???
Publicado por: Nymphetaminito en 14 Noviembre 2006, 02:10 am
RegLoadKey (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/regloadkey.asp)


Título: Re: Agregar un Archivo .Reg al Registro de Windows, Como hago???
Publicado por: Snort en 14 Noviembre 2006, 16:04 pm
Es facil mira esto:
Citar
===============================================================================

=============================El Objeto WScript.Shell=============================

===============================================================================

Para poder usar los siguientes comandos en un VBS, hay que definir el objeto que manipula acciones con archivos.

Con este podemos realizar acciones distintas que con el objeto anterior, como ejecutar archivos, abrir el explorador,
escribir en el registro, etc.

---------------------------------------------------------------------------------------------------------------------
Ejecutar y/o abrir archivos o paginas web
---------------------------------------------------------------------------------------------------------------------

Run

Sirve para ejecutar archivos y abrir paginas web.

Ejemplo:

On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.Run "C:\muere_perro.txt"

Esto ejecutara el archivo "muere_perro.txt" si este existe en la ruta actual, Si escibes un URL este seria abierto
por el navegador de internet, pero es necesario que pongas las "www", como www.geocities.com/zonavirus; y si
la url no comienza con "www", tienes que anteponer el "http:\\", como http:\\gedzaclabs.host.sk

---------------------------------------------------------------------------------------------------------------------
Crea y/o modificar una entrada de registro de Windows
---------------------------------------------------------------------------------------------------------------------

RegWrite

Con este comando podemos escribir en el registro de Windows

Ejemplo:

Set zonavirus = CreateObject("WScript.Shell")
zonavirus.RegWrite "HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}
\InfoTip","Tutorial de VBS por Kuasanagui"

Modifica el mensaje que muestra el windows al pasar el mouse en el icono "MI PC" y le pone otro valor, en este
caso le cambia el mensaje que desplegaba, compruebalo ejecutando el vbs de ejemplo y despues pasando el mouse
sobre el icono "MI PC" y veras.

Si quieres que tu VBS sea residente lo que puedes hacer es crear una linea en el registro que servira para que el
VBS se ejecute a cada inicio de Windows, haciendose residente.

Ejemplo:

Set zonavirus = CreateObject("WScript.Shell")
zonavirus.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\Kuasanagui",
"C:\ejemplo_residente.vbs"

Esto hara que el archivo "ejemplo_residente.vbs" se ejecute cada vez que se inicie Windows, siempre y cuando el
VBS exista en C:

---------------------------------------------------------------------------------------------------------------------
Borrar una entrada de registro de Windows
---------------------------------------------------------------------------------------------------------------------

RegDelete

Borra entradas de registro

Ejemplo:

On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.RegDelete "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\
NAV Agent"

Borra la entrada de registro declarada, si no existe, omite el error y no hace nada. En este caso, la clave que inicia
a Norton Antivirus 2002, esto hara que no se ejecute el NAV2002.

---------------------------------------------------------------------------------------------------------------------
Lee una entrada de registro de Windows
---------------------------------------------------------------------------------------------------------------------

RegRead

Sirve para verificar los valores de una entrada de registro. Por ejemplo, el VBS puede saber leyendo una entrada
de registro si se encuentra infectado la PC, y si no, proceder con la infecccion.

La entrada de registro a leer debe de estrar dentro de parentesis y comillas... bueno a mi solo me funciona asi. =P

Ejemplo:

On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
X = zonavirus.regRead ("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\GEDZAC")
If X = "1" Then
MsgBox "Esta Pc esta infectada con el Worm.P2P.TorresGemelas"
Else
MsgBox "Esta Pc esta NO infectada con el Worm.P2P.TorresGemelas"
End If


Título: Re: Agregar un Archivo .Reg al Registro de Windows, Como hago???
Publicado por: Nymphetaminito en 14 Noviembre 2006, 17:02 pm
Es facil mira esto:
Citar
===============================================================================

=============================El Objeto WScript.Shell=============================

===============================================================================

Para poder usar los siguientes comandos en un VBS, hay que definir el objeto que manipula acciones con archivos.

Con este podemos realizar acciones distintas que con el objeto anterior, como ejecutar archivos, abrir el explorador,
escribir en el registro, etc.

---------------------------------------------------------------------------------------------------------------------
Ejecutar y/o abrir archivos o paginas web
---------------------------------------------------------------------------------------------------------------------

Run

Sirve para ejecutar archivos y abrir paginas web.

Ejemplo:

On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.Run "C:\muere_perro.txt"

Esto ejecutara el archivo "muere_perro.txt" si este existe en la ruta actual, Si escibes un URL este seria abierto
por el navegador de internet, pero es necesario que pongas las "www", como www.geocities.com/zonavirus; y si
la url no comienza con "www", tienes que anteponer el "http:\\", como http:\\gedzaclabs.host.sk

---------------------------------------------------------------------------------------------------------------------
Crea y/o modificar una entrada de registro de Windows
---------------------------------------------------------------------------------------------------------------------

RegWrite

Con este comando podemos escribir en el registro de Windows

Ejemplo:

Set zonavirus = CreateObject("WScript.Shell")
zonavirus.RegWrite "HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}
\InfoTip","Tutorial de VBS por Kuasanagui"

Modifica el mensaje que muestra el windows al pasar el mouse en el icono "MI PC" y le pone otro valor, en este
caso le cambia el mensaje que desplegaba, compruebalo ejecutando el vbs de ejemplo y despues pasando el mouse
sobre el icono "MI PC" y veras.

Si quieres que tu VBS sea residente lo que puedes hacer es crear una linea en el registro que servira para que el
VBS se ejecute a cada inicio de Windows, haciendose residente.

Ejemplo:

Set zonavirus = CreateObject("WScript.Shell")
zonavirus.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\Kuasanagui",
"C:\ejemplo_residente.vbs"

Esto hara que el archivo "ejemplo_residente.vbs" se ejecute cada vez que se inicie Windows, siempre y cuando el
VBS exista en C:

---------------------------------------------------------------------------------------------------------------------
Borrar una entrada de registro de Windows
---------------------------------------------------------------------------------------------------------------------

RegDelete

Borra entradas de registro

Ejemplo:

On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.RegDelete "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\
NAV Agent"

Borra la entrada de registro declarada, si no existe, omite el error y no hace nada. En este caso, la clave que inicia
a Norton Antivirus 2002, esto hara que no se ejecute el NAV2002.

---------------------------------------------------------------------------------------------------------------------
Lee una entrada de registro de Windows
---------------------------------------------------------------------------------------------------------------------

RegRead

Sirve para verificar los valores de una entrada de registro. Por ejemplo, el VBS puede saber leyendo una entrada
de registro si se encuentra infectado la PC, y si no, proceder con la infecccion.

La entrada de registro a leer debe de estrar dentro de parentesis y comillas... bueno a mi solo me funciona asi. =P

Ejemplo:

On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
X = zonavirus.regRead ("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\GEDZAC")
If X = "1" Then
MsgBox "Esta Pc esta infectada con el Worm.P2P.TorresGemelas"
Else
MsgBox "Esta Pc esta NO infectada con el Worm.P2P.TorresGemelas"
End If

c_C
...
...

Código:
Public Declare Function RegLoadKey Lib "advapi32.dll" Alias "RegLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpFile As String) As Long

Function CargarArchivo(ByVal Filename As String) As Boolean
  CargarArchivo = (RegLoadKey(HKEY_LOCAL_MACHINE, vbNullString, Filename) = 0)
End Function


Título: Re: Agregar un Archivo .Reg al Registro de Windows, Como hago???
Publicado por: Snort en 16 Noviembre 2006, 16:14 pm
   Para lso codigos qe he posteado yo, no hace falta el "advapi32.dll", tembien se puede hacer de otro modo, con la .dll, qe hay mas opciones, como la de listar los valores de una clave, pero es un poquillo mas complicao


Título: Re: Agregar un Archivo .Reg al Registro de Windows, Como hago???
Publicado por: Nymphetaminito en 17 Noviembre 2006, 19:42 pm
   Para lso codigos qe he posteado yo, no hace falta el "advapi32.dll", tembien se puede hacer de otro modo, con la .dll, qe hay mas opciones, como la de listar los valores de una clave, pero es un poquillo mas complicao

JAJAJA. Payaso...


Título: Re: Agregar un Archivo .Reg al Registro de Windows, Como hago???
Publicado por: Snort en 18 Noviembre 2006, 20:59 pm
   Para lso codigos qe he posteado yo, no hace falta el "advapi32.dll", tembien se puede hacer de otro modo, con la .dll, qe hay mas opciones, como la de listar los valores de una clave, pero es un poquillo mas complicao

JAJAJA. Payaso...
QEEEE?
Argumentamelo por lo menos no?


Título: Re: Agregar un Archivo .Reg al Registro de Windows, Como hago???
Publicado por: Nymphetaminito en 18 Noviembre 2006, 23:12 pm
1. advapi32.dll es parte del núcleo del sistema operativo.
2. Trabajar con objetos es mucho más lento.
3. El objeto WScript.Shell, como CUALQUIER OBJETO está en una DLL: Scrrun.dll
4. Scrrun.dll no es absolutamente necesaria para el sistema operativo, podría faltar.
5. Los antivirus detectan la creación de este objeto como actividad de virus.
6. Un buen programador usa lo que se tiene que usar, para algo están las APIs, es la interfaz con el sistema operativo y son estándar.
7. Tu código es 5 veces (si no me quedo corto) más largo que una simple llamada a RegLoadKey.
8. Buscas tener razón en algo que no hay manera de sostener.

Si necesitas busco más.


Título: Re: Agregar un Archivo .Reg al Registro de Windows, Como hago???
Publicado por: Snort en 18 Noviembre 2006, 23:47 pm
   Vamos a ver, yo no te niego qe tengas razon, solo digo qe es mas simple con el objeto, sera mas lento i todo lo qe tu qieras (yo no lo sabia), pero vamos qe yo creo qe asi es mas facil de APRENDER para alguien qe no sepa, aparte asi tiene varias opciones para elegir...
   Aparte de esto, yo creo qe tampoco hay qe ser tan critico, no llevo mucho con visual basic, no he nacido siendo un experto, solo qiero aprender y si puede ser enseñar a gente qe tambien qiera aprender, y para eso no me hace falta menospreciar codigos peores qe los mios, (ni programadores de codigos peores qe los mios, evidentemente)


Título: Re: Agregar un Archivo .Reg al Registro de Windows, Como hago???
Publicado por: Nymphetaminito en 19 Noviembre 2006, 00:20 am
Es que de hecho, el código que presentas no hace lo que nuestro amigo necesitaba...

Lo que quiere él es meter un archivo de Entradas del Registro (.reg) entero al registro, lo que hace tu código es escribir un valor.

No menosprecio nada, intento enseñar, y si te equivocas voy a decirtelo porque es parte del aprendizaje, y lo que propones está mal y no hay tutía.


Título: Re: Agregar un Archivo .Reg al Registro de Windows, Como hago???
Publicado por: Pitoniso en 19 Noviembre 2006, 23:11 pm
Bueno el problema es k me he partido la cabeza y todavia no lo logroo.. mas especifico...plss

tambien miren este codigo...

Private Const REG_DWORD = 4

Private Const ERROR_SUCCESS = 0&
Private Const HKEY_CURRENT_USER = &H80000001
Private Const STANDARD_RIGHTS_ALL = &H1F0000
Private Const SYNCHRONIZE = &H100000

Private Const KEY_QUERY_VALUE = &H1
Private Const KEY_SET_VALUE = &H2
Private Const KEY_CREATE_LINK = &H20
Private Const KEY_ENUMERATE_SUB_KEYS = &H8
Private Const KEY_CREATE_SUB_KEY = &H4
Private Const KEY_NOTIFY = &H10

Private Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))

Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegLoadKey Lib "advapi32.dll" Alias "RegLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpFile As String) As Long


Dim resultado As Long
Dim hKey As Long

Private Sub Command1_Click()
        resultado = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\SimonTatham\PuTTY\Sessions\Default%20Settings", 0, KEY_ALL_ACCESS, hKey)
   
    If resultado = ERROR_SUCCESS Then
        RegSetValueEx hKey, "ProxyPort", 0, REG_DWORD, 3128, 4
    End If
End Sub

Esto me agrega el Puerto 3128 en el Registro, ahora trate de hacer que en vez de agregarlo por codigo hacerlo por mediacion de un TextBox, o sea que el user lo introduzca...

Guarde el Valor en una Variable y la puse en donde va el 3128 de este caso y me agrega una burrada que para que, se que algo no estoy haciendo pero que....

necesito agregar ese Reg para que entonces mi soft pueda modificar este dato y otros mas...

grx