Foro de elhacker.net

Seguridad Informática => Hacking => Mensaje iniciado por: Lekim en 11 Marzo 2016, 20:01 pm



Título: programa para logoff o Startup
Publicado por: Lekim en 11 Marzo 2016, 20:01 pm
Hola

Necesito saber como se llaman los programas o qué términos usar para buscar en Internet, de esos programas que se ejecutan cuando se apaga el sistema o cuando se enciende y que pueden borrar o modificar archivos del sistema ya que no están usados ni protegidos, debidamente justo en ese momento. Términos en inglés o español.

Necesito poder ejecutar un bat o programa justo en ese instante y que el sistema no cierre sesión o apague el ordenador hasta que no termine el proceso del programa.  

Pero no consigo encontrar nada en Internet. cuando busco encuentro programas para apagar el ordenador, reiniciar y cosas así.

Se puede hacer desde  Gpedit, pero no está disponible en versiones Home de windows solo en profesionales creo.


La mayoría de troyanos, virus y hacks lo hacen (mis intenciones no van por ahí). Así como esos programas de Activación de windows y cosas así.

Yo programo con VB y Net y siempre he querido saber como hacerlo pero no tengo ni idea de como encontrar información al respecto.


Gracias.










Título: Re: programa para logoff o Startup
Publicado por: .:UND3R:. en 12 Marzo 2016, 06:22 am
busca por:

Código:
WM_QUERYENDSESSION

WM_POWERBROADCAST


Título: Re: programa para logoff o Startup
Publicado por: Lekim en 12 Marzo 2016, 11:00 am
busca por:

Código:
WM_QUERYENDSESSION

WM_POWERBROADCAST



Gracias, tu respuesta me ha llevado por un camino que desconocía. Según parece WM_QUERYENDSESSION envía un mensaje a windows (¿xp?, vista, 7, 8 .. ) que debe bloquear el cierre y mostrar un mensaje mostrando las aplicaciones que están por terminar.

Y WM_POWERBORADCAST informa a las aplicaciones de un cambio en el evento de energía, que ocurre por ejemplo cuando se reanuda una sesión o se inicia.

No veo todavía como puedo usarlo para lo que necesito  :xD. Pero encontré un ejemplo en C++ y lo pasé a .Net.

Código
  1. Public Class Form1
  2.  
  3.  
  4.    <System.Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True, CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _
  5.    Private Shared Function ShutdownBlockReasonCreate(ByVal hwnd As IntPtr, _
  6.                                                      <Runtime.InteropServices.MarshalAs(Runtime.InteropServices.UnmanagedType.LPWStr)> ByVal reason As String) As Boolean
  7.    End Function
  8.  
  9.    <System.Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True, CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _
  10.    Private Shared Function ShutdownBlockReasonDestroy(ByVal hwnd As IntPtr) As Boolean
  11.    End Function
  12.  
  13.  
  14.    Private Bloqueado As Boolean = False
  15.  
  16.    Protected Overrides Sub WndProc(ByRef aMessage As Message)
  17.        Const WM_QUERYENDSESSION As Integer = &H11
  18.  
  19.        If Bloqueado = True And aMessage.Msg = WM_QUERYENDSESSION Then
  20.            Return
  21.        End If
  22.        MyBase.WndProc(aMessage)
  23.    End Sub
  24.  
  25.    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  26.        If ShutdownBlockReasonCreate(Me.Handle, TextBox1.Text) Then
  27.            Bloqueado = True
  28.            MessageBox.Show("Shutdown blocking tuvo éxito")
  29.        Else
  30.            MessageBox.Show("Shutdown blocking fallido")
  31.        End If
  32.    End Sub
  33.    Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  34.        If ShutdownBlockReasonDestroy(Me.Handle) Then
  35.            Bloqueado = False
  36.            MessageBox.Show("Shutdown unblocking tuvo éxito")
  37.        Else
  38.            MessageBox.Show("Shutdown unblocking fallido")
  39.        End If
  40.    End Sub
  41.  
  42.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  43.  
  44.    End Sub
  45. End Class

Lo que hace es que si se pulsa el Button1,  se bloquea el cierre y aparece un mensaje notificando que mi aplicación no ha terminado la tarea cuando se cierra windows. Y el TextBox es para introducir el mensaje a mostrar vinculado a nuestra aplicación y que queremos que muestre en relación a la supuesta tarea que faltaría por terminar. Y el Button2 lo desbloquea.



S2s