Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: javifergavilan en 19 Septiembre 2021, 18:10 pm



Título: Crear un Script para cambiar un Registro
Publicado por: javifergavilan en 19 Septiembre 2021, 18:10 pm
Hola Buenos dias a Todos:

Necesito Crear un Script con código para poder cambiar los valores de un Registro.

El Resgistro que quiero cambiar es :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\SubSystems\Windows

su valor es :

%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,768 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=sxssrv,4 ProfileControl=Off MaxRequestThreads=16

Quiero cambiar "Windows SharedSection=1024,20480,768" por "Windows SharedSection=1024,20480,2048"

Entrando con Regedit se hacerlo pero no con código en un Script.

Necesito que maquina ejecute mas procesos y por eso necesito cambiar ese valor para que me funcione una aplicación

Si alguien puede ayudarme lo agradezco.

Gracias.


Título: Re: Crear un Script para cambiar un Registro
Publicado por: EdePC en 19 Septiembre 2021, 18:59 pm
Saludos,

Puedes usar los Tokens que permite For /F, es decir, cortar en trozos la salida de un comando mediante un caracter (en este caso el la Coma y el Espacio) y luego solo tomar los trozos que uno necesite:

Código
  1. @Echo Off
  2. For /F "tokens=3,4,5,6,8,* delims=, " %%a In (
  3.  'Reg Query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems" /V Windows'
  4. ) Do (
  5.  Echo %%a %%b %%c,%%d,2048 %%e %%f
  6. )

Lo cual devuelve:

Citar
%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,2048 Windows=On SubSystemType=Windows
ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=sxssrv,4 ProfileControl=Off MaxRequestThrea
ds=16

---
Teniendo en cuenta que los Tokens completos serían

+-------------------------------------------------------------+--------------------+
| 1                                                           | 2                  |
+-------------------------------------------------------------+--------------------+
| HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session | Manager\SubSystems |
+-------------------------------------------------------------+--------------------+
| Windows                                                     | REG_EXPAND_SZ      |
+-------------------------------------------------------------+--------------------+

+---------------------------------+--------------------------+--------------------+
| 3                               | 4                        | 5                  |
+---------------------------------+--------------------------+--------------------+
|                                 |                          |                    |
+---------------------------------+--------------------------+--------------------+
| %SystemRoot%\system32\csrss.exe | ObjectDirectory=\Windows | SharedSection=1024 |
+---------------------------------+--------------------------+--------------------+

+-------+-----+------------+
| 6     | 7   | 8          |
+-------+-----+------------+
|       |     |            |
+-------+-----+------------+
| 20480 | 768 | Windows=On |
+-------+-----+------------+

+-------------------------------------------------------------------------------------------------------
| *                                                                                                                                    
+-------------------------------------------------------------------------------------------------------
|                                                                                                                                      
+-------------------------------------------------------------------------------------------------------
| SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=sxssrv,4 ProfileControl=Off MaxRequestThreads=16
+-------------------------------------------------------------------------------------------------------


La primera línea se pierde (obvia) porque no tiene el token 3

Para que haga la modificación en el Registro debes cambiar el Echo por un Reg Add así:

Código
  1. @Echo Off
  2. For /F "tokens=3,4,5,6,8,* delims=, " %%a In (
  3.  'Reg Query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems" /V Windows'
  4. ) Do (
  5.  Echo %%a %%b %%c,%%d,2048 %%e %%f
  6.  Reg Add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems" /V Windows /T REG_EXPAND_SZ /D "%%a %%b %%c,%%d,2048 %%e %%f" /F
  7. )

También recuerda que como se está modificando un valor de HKLM será necesario ejecutar el Script con permisos de Administrador


Título: Re: Crear un Script para cambiar un Registro
Publicado por: javifergavilan en 19 Septiembre 2021, 19:27 pm
Muchisimas Gracias...

Me va perfecto, siempre que le des permisos de administrador.

un saludo.