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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Apagado completo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Apagado completo  (Leído 2,725 veces)
Hwagm
Ex-Staff
*
Desconectado Desconectado

Mensajes: 7.539



Ver Perfil WWW
Apagado completo
« en: 9 Septiembre 2005, 19:45 pm »

He desarrollado varios programas para el hacking wireless en Visual Basic y el problema lo tengo:

Fuerzo un apagado del pc, pero este se queda en.

Código:
Ahora puede apagar su ordenador con seguridad

Como puedo evitar que se quede ahi y fuerze el apagado total.

Me pasa con varios programas, hay va una muestra.


Código:
Option Explicit

Private Type LUID
   LowPart As Long
   HighPart As Long
End Type

Private Type TOKEN_PRIVILEGES
    PrivilegeCount As Long
    LuidUDT As LUID
   Attributes As Long
End Type

Const TOKEN_ADJUST_PRIVILEGES = &H20
Const TOKEN_QUERY = &H8
Const SE_PRIVILEGE_ENABLED = &H2

Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4

Private Declare Function GetVersion Lib "kernel32" () As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle _
    As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
Private Declare Function LookupPrivilegeValue Lib "advapi32" Alias _
    "LookupPrivilegeValueA" (ByVal lpSystemName As String, _
    ByVal lpName As String, lpLuid As LUID) As Long
Private Declare Function AdjustTokenPrivileges Lib "advapi32" (ByVal _
    TokenHandle As Long, ByVal DisableAllPrivileges As Long, _
    NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, _
    PreviousState As Any, ReturnLength As Any) As Long
Private Declare Function ExitWindowsEx Lib "user32" (ByVal dwOptions As Long, _
    ByVal dwReserved As Long) As Long

  Sub ShutDownWindows()
    Dim hToken As Long
    Dim tp As TOKEN_PRIVILEGES
    Dim flags As Long
    Dim reboot, force As Boolean
    reboot = False
    force = True
   
    If GetVersion() >= 0 Then
        ' Open this process for adjusting its privileges
        OpenProcessToken GetCurrentProcess(), (TOKEN_ADJUST_PRIVILEGES Or _
            TOKEN_QUERY), hToken
       
        LookupPrivilegeValue "", "SeShutdownPrivilege", tp.LuidUDT
       
        tp.PrivilegeCount = 1
        tp.Attributes = SE_PRIVILEGE_ENABLED
       
        AdjustTokenPrivileges hToken, False, tp, 0, ByVal 0&, ByVal 0&
    End If
   
    flags = EWX_SHUTDOWN
    If reboot Then flags = flags Or EWX_REBOOT
    If force Then flags = flags Or EWX_FORCE
   
    ExitWindowsEx flags, &HFFFF
   
End Sub


Private Sub Command1_Click()
ShutDownWindows
End Sub



y ahi otra:



Código:
Option Explicit

Private Const PROCESS_QUERY_INFORMATION = &H400
Private Const STILL_ACTIVE = &H103
Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess&, ByVal bInheritHandle&, ByVal dwProcessId&) _
As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) _
As Long




Sub EsperarShell(sCmd As String)

Dim hShell As Long
Dim hProc As Long
Dim codExit As Long

' ejecutar comando
 hShell = Shell(Environ$("Comspec") & " /c " & sCmd, 2)

' esperar a que se complete el proceso
hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, hShell)

Do
GetExitCodeProcess hProc, codExit
DoEvents
Loop While codExit = STILL_ACTIVE



End Sub




Private Sub Command1_Click()
Dim a
a "shutdown -s -f -t 60 -m \\wireless -c"
EsperarShell (a)

End Sub



En línea


Hwagm
Ex-Staff
*
Desconectado Desconectado

Mensajes: 7.539



Ver Perfil WWW
Re: Apagado completo
« Respuesta #1 en: 9 Septiembre 2005, 20:26 pm »

Parece ser como me temia que era un problema del propio xp.

En cambio el reboot no aparece y lo hace correcto.

Código:
Solucionar problemas de apagado en Windows XP
Se a comprobado que en muchos equipos ATX, donde en anteriores versiones al Windows XP apagaban automáticamente el sistema, en Windows XP no lo hacen, mostrando el mensaje: "Ahora es seguro apagar el sistema" o incluso reiniciando en vez de apagarse.

Y este problema lo podemos solucionar mediante el registro de Windows. Para ello ejecutamos "regedit.exe" desde el menú "Inicio/Ejecutar".

Allí localizamos la siguiente clave: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon.

Una vez localizada dicha clave, comprobamos si el contenido de los valores alfanuméricos PowerDownAfterShudown y ShutdownWithoutLogon es "1", pues de lo contrario, tendremos que ponerlo con ese valor.

Otra cosa, recomiendada es: revisar en la clave HKEY_CURRENT_USER\Control Panel\Desktop si existe el valor alfanumérico PowerOffActive, cuyo contenido deberá ser "1".

Si esto aun sigue sin causar ningún cambio, lo intentaremos de otro modo:
Iniciamos la herramienta de administración del sistema, pulsando con botón derecho sobre el icono de Mi PC seleccionando "Administrar".
Una vez dentro del administrador de dispositivos, comprobamos que el apartado Ordenador, indique lo siguiente: "Equipo ACPI compatible" o "PC Estándar APM".

En este último caso, dentro del menú Ver, seleccionamos Mostrar dispositivos ocultos y nos aseguramos que el elemento "NT ATM / Legacy Interfaz mode" no tenga un marca de color rojo, pues de suceder esto tenemos que hacer lo siguiente:

Accedemos a sus Propiedades y Habilitar el dispositivo.

Ccomprobar que en las Propiedades de energía, dentro del Panel de control, en la pestaña APM se encuentre activada la opción "Habilitar la compatibilidad con la administración avanzada de energía".


Supongo que tendre que modificar el programa para que cambie antes de nada estas variables, se como hacerlo

De todas forma podeis darme alguna idea mas.



En línea


Slasher-K


Desconectado Desconectado

Mensajes: 1.477


Ver Perfil
Re: Apagado completo
« Respuesta #2 en: 10 Septiembre 2005, 06:38 am »

El reboot lo hace bien claro, pero la pc no se apagará si no tiene fuente ATX.

Saludos.
En línea



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*
Hwagm
Ex-Staff
*
Desconectado Desconectado

Mensajes: 7.539



Ver Perfil WWW
Re: Apagado completo
« Respuesta #3 en: 10 Septiembre 2005, 13:25 pm »

Que razón tienes, al final incluso probe con programación en c/c++ y mas de lo mismo.

Cierto el reboot lo hace bien, por eso entiendo que los virus en visual basic resetean el pc y no lo apagan.

Incluso he bajado algunos programas y siempre lo mismo.

Bueno gracias por confirmar, asi no perdere mas tiempo.
Ahora es saber si en esa situación, como se queda el SO, pero eso corresponde a otro subforo.

Mil gracias.
En línea


Hwagm
Ex-Staff
*
Desconectado Desconectado

Mensajes: 7.539



Ver Perfil WWW
Re: Apagado completo
« Respuesta #4 en: 10 Septiembre 2005, 15:20 pm »

Otra cosa y si puedes?

Hay otra función en visual basic despues de generar un objeto shell que es.

Código:
Private oShell As Shell32.Shell

oShell.ShutdownWindows
en esta nos aparece la misma ventana que cuando damos en el menu inicio de windows "Apagar equipo" y sale la pantalla "Suspender" "Apagar" "Reiniciar", es posible dar argumentos ha esa función

Bueno tambien probe lo de :

Código:
C:\WINDOWS\system32\rundll32.exe user,ExitWindows
En un icono en el escritorio y ejecutarlo desde VB.
 Solo funciono en win98. En xp daba error,
Código:
error al cargar el modulo user
Bueno perón, esto lo dejamos ya que pertenece al subforo de Sistema Operativos.


Lo dicho:

Permite argumentos.

Código:
Private oShell As Shell32.Shell

oShell.ShutdownWindows

Me parece que no verdad.
« Última modificación: 10 Septiembre 2005, 15:44 pm por Hwagm » En línea


Ertai
Colaborador
***
Desconectado Desconectado

Mensajes: 2.025


Ralph Wiggum


Ver Perfil
Re: Apagado completo
« Respuesta #5 en: 10 Septiembre 2005, 16:01 pm »

No, creo que solo se puede suspender.

Código:
oShell.Suspend

Lo de la primera duda suele pasar en ordenadores viejos, porque no contaban con la fuente de alimentación ATX.

Saludos,
Ertai
En línea

Si la felicidad se comprara, entonces el dinero sería noble.

Código:
void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}
Hwagm
Ex-Staff
*
Desconectado Desconectado

Mensajes: 7.539



Ver Perfil WWW
Re: Apagado completo
« Respuesta #6 en: 10 Septiembre 2005, 16:11 pm »

Gracias ahora solo me falta comprobar como reaccionan las tarjetas wireless en ambos casos, es decir con apagado con el logo de "ya puede apagar el pc con seguridad" o cuando ejecutemos
Código:
oShell.Suspend

Pero esto ya lo probaran los compañeros de Hacking wireless. Yo no puedo porque mis hermanos me han quitado los pc que tenia. (Bueno no los han quitado, se los he dejado)
 ;D

Muchas gracias, ahora ya tengo el camino abierto.
Incluso tengo una posiblidad más, aunque no toca aqui, y seria la de diseñar una pequeño circuito electronico para mediante Visual Basic manipular el puerto paraleo  y actuar sobre un rele/contactor de bajo consumo y este corte la alimentación.
Si ya hay tarjetas con salidas digitales, pero esto es mas satisfactorio.
Perdonarme de antemano si hablo de cosas que no tocan en este subforo.

Gracias por la orientación.

PD: De paso aprovecho (ya que no lo hice en su momento) de dejar un enlace para si a alguien le interesa bajarse el codigo fuente de un pequeño programa que hice para Hacking Wireless donde se puede hacer un estudio horario de los equipos wifi que se conectan en la misma red, dicho esto, decir que es valido tambien para todo tipo de redes.
Por ejemplo un administrador de red puede saber a que horas se conectan diferentes clientes, seguro que se puede modificar y hacer uno más completo,  por eso dejo puesto el codigo. Y seguro que los hay comerciales pero me pareció en su momento una herramienta muy útil.

Su enlace es:

http://hwagm.elhacker.net/programacion.htm

Perdonar por no haberlo puesto antes, y eso que me lo dijo Aironjack.




« Última modificación: 10 Septiembre 2005, 16:27 pm por Hwagm » En línea


Ertai
Colaborador
***
Desconectado Desconectado

Mensajes: 2.025


Ralph Wiggum


Ver Perfil
Re: Apagado completo
« Respuesta #7 en: 10 Septiembre 2005, 16:23 pm »

Citar
y actuar sobre un rele/contactor

Mejor sobre un microprocesador tipo ADuC 182, pero se tendria que programar en C, ademas no necesitan estar conectados al puerto paralelo, ya que pueden albergar programas y usar sus propios puertos paralelos.
En línea

Si la felicidad se comprara, entonces el dinero sería noble.

Código:
void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}
Hwagm
Ex-Staff
*
Desconectado Desconectado

Mensajes: 7.539



Ver Perfil WWW
Re: Apagado completo
« Respuesta #8 en: 14 Septiembre 2005, 19:42 pm »

Bueno de nuevo gracias. Solo añadir que ya acabe el programa.

Podeis descargarlo de aqui:


http://hwagm.elhacker.net/descargas/Nuevo/poweroff.zip

seguro que tiene errores ya que dispongo de poco tiempo.
Es valido para cualquier tipo de rdes.

Cuando pueda y lo haya corregido todo y comprobado con los compañeros de hacking wireless, ya pondre todo el codigo.

De momento solo el programa de instalacion.


http://hwagm.elhacker.net/descargas/Nuevo/poweroff.zip


Añadir que aunque no haga el apagado fisico y total, si realmete se pierde la asociacion via IP y lo mejor de todo la autentificación por via wireless (lo mismo para cableadas, espero), por lo cual no agotaremos el ancho de bada de nuestro equipo victima.
« Última modificación: 14 Septiembre 2005, 19:43 pm por Hwagm » En línea


Hwagm
Ex-Staff
*
Desconectado Desconectado

Mensajes: 7.539



Ver Perfil WWW
Re: Apagado completo
« Respuesta #9 en: 15 Septiembre 2005, 00:34 am »

Ya he colocado todo el proyecto. Por si a alguno le sirve.
Lo he estado comprobando esta tarde y parece que esta bastante depurado, pero nunca se sabe
Si lo quereis o lo necesitais hay lo dejo:


http://hwagm.elhacker.net/programacion.htm

se llama poweroff
« Última modificación: 15 Septiembre 2005, 01:44 am por Hwagm » En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
sitio web no sale completo
Desarrollo Web
kakashi20 0 1,606 Último mensaje 23 Septiembre 2014, 04:56 am
por kakashi20
Vector EDK - Source completo
Análisis y Diseño de Malware
r32 0 6,061 Último mensaje 12 Octubre 2020, 02:24 am
por r32
Desautentificación canal completo
Hacking Wireless
amhz 6 13,791 Último mensaje 2 Octubre 2022, 23:38 pm
por Tachikomaia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines