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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Ayuda con mi programa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con mi programa  (Leído 1,686 veces)
LukaCrosszeria

Desconectado Desconectado

Mensajes: 78


Lets go baby~


Ver Perfil
Ayuda con mi programa
« en: 19 Mayo 2014, 18:52 pm »

Saludos!

Tengo una duda, como puedo agregar/eliminar una variable de sistema permanentemente? He leido guias y lo he logrado, pero automaticamente en el reinicio se elimina. Quisiera que se quedaran permanentemente este es el codigo que tengo:


Código:

Public Class Form1
    Public Declare Function SetEnvironmentVariable Lib "kernel32.dll" Alias "SetEnvironmentVariableA" (ByVal _
     lpName As String, ByVal lpValue As String) As Long
    Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        SetEnvironmentVariable("Test", "1234")
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Shell("shutdown -r -f -t 0") 'Reinicia el equipo en Win XP
    End Sub
End Class



Saludos!


En línea

kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.445


S3C M4NI4C


Ver Perfil
Re: Ayuda con mi programa
« Respuesta #1 en: 19 Mayo 2014, 20:58 pm »

Buenas LukaCrosszeria,

tú código es totalmente funcional sólo para modificar variables del sistema temporalmente, nada queda guardado en el registro. Para ello deberías replantear tu código y adaptarlo para que escriba en el registro.

La siguiente información la he extraído de la msdn donde tienes la documentación completa de como trabajar con Environment Variables:

Citar
...
...
Calling SetEnvironmentVariable has no effect on the system environment variables. To programmatically add or modify system environment variables, add them to the HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment registry key
...
...

Link -> http://msdn.microsoft.com/en-us/library/windows/desktop/ms682653%28v=vs.85%29.aspx

Saludos!


En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

LukaCrosszeria

Desconectado Desconectado

Mensajes: 78


Lets go baby~


Ver Perfil
Re: Ayuda con mi programa
« Respuesta #2 en: 20 Mayo 2014, 00:03 am »

Saludos!


Hice lo que pude, intente agregar al registro el valor directamente pero me da un error.

Este es el codigo:


Código:
Imports System.IO
Imports System.Security.Principal
Public Class Form1
    Public Declare Function SetEnvironmentVariable Lib "kernel32.dll" Alias "SetEnvironmentVariableA" (ByVal _
     lpName As String, ByVal lpValue As String) As Long
    Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        My.Computer.Registry.LocalMachine.OpenSubKey("SYSTEM\CurrentControlSet\Control\Session Manager\Environment").SetValue("Test", "1234", Microsoft.Win32.RegistryValueKind.String)

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Shell("shutdown -r -f -t 0") 'Reinicia el equipo en Win XP
    End Sub

    Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click

    End Sub
End Class
En línea

kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.445


S3C M4NI4C


Ver Perfil
Re: Ayuda con mi programa
« Respuesta #3 en: 20 Mayo 2014, 00:42 am »

Para escribir en la rama del registro (HKLM) del sistema necesitas de privilegios de administrador ya que las políticas ahí expuestas son comunes a todos los usuarios, por lo que win$ lleva un control riguroso sobre las modificaciones. Por lo demás todo se ve fino, aunque no lo probé.

Aun así aqui puedes echarle un vistazo a la documentación de la msdn sobre las Registry Keys: http://msdn.microsoft.com/es-es/library/2kk9bxk9%28v=vs.110%29.aspx

Saludos!
En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

LukaCrosszeria

Desconectado Desconectado

Mensajes: 78


Lets go baby~


Ver Perfil
Re: Ayuda con mi programa
« Respuesta #4 en: 20 Mayo 2014, 06:25 am »

En tal caso, como le daria permisos a mi programa para que pudiera registrar las llaves de entradas en el registro de Environments  Variables?
En línea

kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.445


S3C M4NI4C


Ver Perfil
Re: Ayuda con mi programa
« Respuesta #5 en: 20 Mayo 2014, 15:20 pm »

Buenas de nuevo,

se me ocurren dos maneras, la primera es manual y sería ejecutando el programa en modo administrador para otogarle los máximos privilegios del usuario.

La otra es mediante el manifiesto de la aplicación .NET, los manifiestos son archivos que describen propiedades (así como los de metadatos) y una de esas propiedades define el nivel de privilegios requerido por la aplicación, esto último lo podras leer aquí: http://msdn.microsoft.com/es-es/library/bb384691.aspx

Saludos!
En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

LukaCrosszeria

Desconectado Desconectado

Mensajes: 78


Lets go baby~


Ver Perfil
Re: Ayuda con mi programa
« Respuesta #6 en: 20 Mayo 2014, 17:24 pm »

Este es el error que me da:


En línea

kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.445


S3C M4NI4C


Ver Perfil
Re: Ayuda con mi programa
« Respuesta #7 en: 20 Mayo 2014, 17:36 pm »

Anteriormente te dije que era la falta de privilegios, realmente necesitas permisos de lectura sobre esa rama del registro, aquí te dejo la descripción de la excepción segun la MSDN pero es algo sobre lo que ya te he advertido, nada nuevo:

Citar
UnauthorizedAccessException   

The RegistryKey is read-only, and cannot be written to; for example, the key has not been opened with write access.

Esto está extraído del segundo enlace que puse...

...
Aun así aqui puedes echarle un vistazo a la documentación de la msdn sobre las Registry Keys: http://msdn.microsoft.com/es-es/library/2kk9bxk9%28v=vs.110%29.aspx
...

Saludos!
En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON PROGRAMA
Diseño Gráfico
Luisango 1 1,550 Último mensaje 17 Abril 2005, 13:25 pm
por Sub_Cero
ayuda con mi programa
Programación Visual Basic
nitrox 2 1,725 Último mensaje 31 Julio 2005, 00:48 am
por Slasher-K
ayuda programa!!
Programación C/C++
rodrigo_103 4 2,370 Último mensaje 16 Septiembre 2012, 21:58 pm
por rodrigo_103
[Ayuda] ¿Cómo ejecutar otro programa desde mi programa de C#?
.NET (C#, VB.NET, ASP)
Zodiak98 1 2,610 Último mensaje 8 Diciembre 2013, 01:51 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines