elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Bath - Guardar en una variable un valor de una clave de registro
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Bath - Guardar en una variable un valor de una clave de registro  (Leído 8,288 veces)
nhaalclkiemr


Desconectado Desconectado

Mensajes: 1.678


Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92


Ver Perfil WWW
Bath - Guardar en una variable un valor de una clave de registro
« en: 22 Marzo 2007, 17:14 pm »

Bien, como no hay sección Bath en este foro lo pongo aki pork servirá para troyanos...

He encontrado por internet una manera de hacer "if exist" a una clave del registro usando los comandos "reg export","find" y "for" en ese orden. Primero exporta el registro a un archivo, en ese archivo busca si existe un valor, si existe establece con el "for" la variable 1 o 0 segun sea falso o verdadero k existe...

Pues bien...yo quiero hacer algo parecido, en vez de buscar si una clave existe o no, lo que quiero es poder guardar en una variable el valor de una clave del registro.
Supongo que se podrá hacer de manera parecida a lo anterior...por eso lo pongo...sin embargo yo no se usar bien el comando "for" por eso quería que me ayudarais...

En otro lado me dieron este bath:

Código:
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" temp.tmp
type temp.tmp | find "shell" > cadena_encontrada.tmp
for /f %%A IN (cadena_encontrada.tmp) DO set VARIABLE=%%A

Pero a mi no me funcionó, si alguien pudiera corregirlo o sabe como hacerlo lo agradecería mucho.

Gracias y un saludo ;) ;) ;) ;)


En línea

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%
sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Bath - Guardar en una variable un valor de una clave de registro
« Respuesta #1 en: 27 Marzo 2007, 02:35 am »

escribe en la consola..
REG /?

eso saca todos los argumentos que acepta REG.. sino
www.computerhope.com/reg.htm

Saludos!!


En línea

nhaalclkiemr


Desconectado Desconectado

Mensajes: 1.678


Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92


Ver Perfil WWW
Re: Bath - Guardar en una variable un valor de una clave de registro
« Respuesta #2 en: 30 Marzo 2007, 16:24 pm »

No me entiendes, ya se usar el reg. Lo que quiero es ex`prtar el registro a un archivo, despues busco una clave en concreto, y almaceno en una variable  el valor de esa clave

esto lo hago pork no existe ningun parametro para reg que te permita exportar el valor de una clave.

un saludo ;)
En línea

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%
sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Bath - Guardar en una variable un valor de una clave de registro
« Respuesta #3 en: 30 Marzo 2007, 23:10 pm »

claro que si existe.. no te conteste en ese mmento porque no tenia tiempo, pero si te fijas en los links que puse, hubieras visto.. xD

reg export HKLM\Software\Microsoft\Windows\CurrentVersion\Run "c:\ex.reg"

eso funciona en WIN XP SP1, SP2 Pro y Home
En línea

ne0x

Desconectado Desconectado

Mensajes: 270



Ver Perfil
Re: Bath - Guardar en una variable un valor de una clave de registro
« Respuesta #4 en: 31 Marzo 2007, 20:40 pm »

Na, que sigues sin entender...

Es cojer el valor de una cadena y guardarlo en una variable.
En línea

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Bath - Guardar en una variable un valor de una clave de registro
« Respuesta #5 en: 1 Abril 2007, 02:51 am »

tu sigues sin entender..
de ahi con un for lo sacas..
En línea

ne0x

Desconectado Desconectado

Mensajes: 270



Ver Perfil
Re: Bath - Guardar en una variable un valor de una clave de registro
« Respuesta #6 en: 1 Abril 2007, 12:00 pm »

Si, con el FOR saco la variable:

"nombre_de_cadena"="valor_cadena"

Hago un set variable=%variable:"=%

Y sale asi:

nombre_de_cadena=valor_cadena

Ahhh !! se me acaba de ocurrir un metodo para sacar solo lo que hay a la derecha del igual.

En un bucle cojemos y quitamos el primer caracter, si el caracter que hemos quitado es un "=" paramos, y si no quitamos el segundo caracter y hacemos lo mismo.

Entonces sacamos solo la parte que hay a la derecha del " = "
En línea

nhaalclkiemr


Desconectado Desconectado

Mensajes: 1.678


Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92


Ver Perfil WWW
Re: Bath - Guardar en una variable un valor de una clave de registro
« Respuesta #7 en: 2 Abril 2007, 21:09 pm »

A ver, la idea es esa:

Imaginaros que quiero guardar el valor de la clave "amd_dc_opt" que está en "HKLM\Software\Microsoft\Windows\CurrentVersion\Run". El valor es "C:\Archivos de programa\AMD\Dual-Core Optimizer\amd_dc_opt.exe"
Todo esto sin las comillas claro...

-Primero con reg export guardo en un archivo de texto plano las entradas por ejemplo de "HKLM\Software\Microsoft\Windows\CurrentVersion\Run"  Eso lo se hacer.

Código:
reg export "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" "temp.tmp"

-Ahora tengo un archivo así:

Código:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
"nod32kui"="\"C:\\Archivos de programa\\Eset\\nod32kui.exe\" /WAITSERVICE"
"Gainward"="C:\\Archivos de programa\\XpertVision\\TBPanel.exe /A"
"NvCplDaemon"="RUNDLL32.EXE C:\\WINDOWS\\system32\\NvCpl.dll,NvStartup"
"NvMediaCenter"="RUNDLL32.EXE C:\\WINDOWS\\system32\\NvMcTray.dll,NvTaskbarInit"
"amd_dc_opt"="C:\\Archivos de programa\\AMD\\Dual-Core Optimizer\\amd_dc_opt.exe"

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\OptionalComponents]

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\OptionalComponents\IMAIL]
"Installed"="1"

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\OptionalComponents\MAPI]
"Installed"="1"
"NoChange"="1"

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\OptionalComponents\MSFS]
"Installed"="1"


-Ahora con el FOR, el TYPE y el FIND busco la linea llamada "amd_dc_opt"

Código:
type temp.tmp | find "amd_dc_opt" > cadena_encontrada.tmp
for /f %%A IN (cadena_encontrada.tmp) DO set VARIABLE=%%A
del /S /F /Q /A:- temp.tmp


-Pues ahora tengo la linea :

Código:
"amd_dc_opt"="C:\\Archivos de programa\\AMD\\Dual-Core Optimizer\\amd_dc_opt.exe"

Eso lo tengo en un archivo "cadena_encontrada.tmp" y en una variable %%A

Ahora habría que hacer lo que dice ne0x...quedarse solo con el valor y quitar el "amd_dc_opt"=



Ahora los principales problemas son:

-Aunke consigamos quedarnos solo con el valor, los simbolos \ aparecen como \\

-Si hay algun espacio, la variable solo coje hasta el espacio, prové a poner comillas pero no se donde las tengo que poner...

Por ejemplo, en el ejemplo anterior que puse yo la linea teorica que es %%A es:

Código:
"amd_dc_opt"="C:\\Archivos de programa\\AMD\\Dual-Core Optimizer\\amd_dc_opt.exe"

pero en la realidad la variable será:

Código:
"amd_dc_opt"="C:\\Archivos



Bueno, espero que me podais ayudar, gracias y un saludo ;) ;)
En línea

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%
ne0x

Desconectado Desconectado

Mensajes: 270



Ver Perfil
Re: Bath - Guardar en una variable un valor de una clave de registro
« Respuesta #8 en: 3 Abril 2007, 00:10 am »

Y si ponemos "%%A" ??.
En línea

nhaalclkiemr


Desconectado Desconectado

Mensajes: 1.678


Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92


Ver Perfil WWW
Re: Bath - Guardar en una variable un valor de una clave de registro
« Respuesta #9 en: 4 Abril 2007, 16:00 pm »

Ya lo prové pero no funciona...

Si pones "%%A" despues de FOR /F así:

Código:
reg export "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" "temp.tmp"
type temp.tmp | find "amd_dc_opt" > cadena_encontrada.tmp
for /f "%%A" IN (cadena_encontrada.tmp) DO set a=%%A
del /S /F /Q /A:- temp.tmp

da un error:

Código:
No se esperaba IN en este momento.


Si pones "%%A" en SET a="%%A" asi:

Código:
reg export "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" "temp.tmp"
type temp.tmp | find "amd_dc_opt" > cadena_encontrada.tmp
for /f %%A IN (cadena_encontrada.tmp) DO set a="%%A"
del /S /F /Q /A:- temp.tmp

lo que va a pasar es que la salida en vez de ser asi:

Código:
"amd_dc_opt"="C:\\Archivos

va a ser así:

Código:
""amd_dc_opt"="C:\\Archivos"

Yo pienso que usando delims, tokens, etc... que se podría hacer, pero no se utilizar esos parámetros del FOR



Pues aun nos queda pendiente el tema ese de los espacios y tambien el tema de transformar las barras dobles \\ en una barra sola \

Weno, pues haber si alguien me puede ayudar...

Un saludo ;) ;)
En línea

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Guardar valor de las claves del Registro en .txt
Windows
WaAYa HaCK 3 5,761 Último mensaje 12 Junio 2011, 14:43 pm
por WaAYa HaCK
[C]Eliminar un valor de una clave en el registro de Windows.
Programación C/C++
avesudra 0 2,864 Último mensaje 13 Julio 2012, 00:30 am
por avesudra
copiar a windows bath
Scripting
asdexiva 2 1,947 Último mensaje 5 Noviembre 2012, 23:21 pm
por asdexiva
Guardar valor en un hidden para utilizar de nuevo
Desarrollo Web
the_sheriff_pino 4 4,827 Último mensaje 22 Abril 2013, 13:28 pm
por the_sheriff_pino
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines