comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[VB.NET | C#] ProcessCritical

  • 0 Respuestas
  • 1331 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fudmario

  • *
  • Cramel
  • *
  • Mensajes: 193
  • Actividad:
    0%
  • Reputación 11
    • Ver Perfil
    • fudmario - GitHub
  • Skype: fudmario
« en: Diciembre 04, 2016, 05:05:15 pm »
Un ejemplo sencillo para proteger el proceso y generar el BSOD.



Código: vb.net
  1.         <DllImport("NTdll.dll", EntryPoint:="RtlSetProcessIsCritical", SetLastError:=True)>
  2.         Public Shared Sub SetCurrentProcessIsCritical(
  3.                       <MarshalAs(UnmanagedType.Bool)> ByVal isCritical As Boolean,
  4.                       <MarshalAs(UnmanagedType.Bool)> ByRef refWasCritical As Boolean,
  5.                       <MarshalAs(UnmanagedType.Bool)> ByVal needSystemCriticalBreaks As Boolean)
  6.         End Sub
  7.                
  8.                 Private Sub SetProcessCritical()
  9.                         Dim refWasCritical As Boolean
  10.                         System.Diagnostics.Process.EnterDebugMode()
  11.                         SetCurrentProcessIsCritical(True, refWasCritical, False)
  12.                 End Sub
  13.                 Private Sub UnSetProcessCritical()
  14.                         Dim refWasCritical As Boolean
  15.                         SetCurrentProcessIsCritical(False, refWasCritical, False)
  16.                 End Sub
  17.  

Código: C#
  1.         [DllImport("NTdll.dll", EntryPoint = "RtlSetProcessIsCritical", SetLastError = true)]
  2.         public static extern void SetCurrentProcessIsCritical(
  3.             [MarshalAs(UnmanagedType.Bool)]bool isCritical,
  4.             [MarshalAs(UnmanagedType.Bool)]ref bool refWasCritical,
  5.             [MarshalAs(UnmanagedType.Bool)]bool needSystemCriticalBreaks);
  6.  
  7.         private void SetProcessCritical()
  8.         {
  9.             bool refWasCritical = false;
  10.             System.Diagnostics.Process.EnterDebugMode();
  11.             SetCurrentProcessIsCritical(true, ref refWasCritical, false);
  12.              
  13.         }
  14.  
  15.         private void UnSetProcessCritical()
  16.         {
  17.             bool refWasCritical = false;
  18.             SetCurrentProcessIsCritical(false, ref refWasCritical, false);
  19.              
  20.         }
  21.  


 

¿Te gustó el post? COMPARTILO!