¡Llame al experto en mecanografía, llame al experto en informática! ¡Ayúdame a escribir el siguiente contenido! Forzar el cierre del código fuente
AdjustToken proc
LOCAL hdlProcessHandle:DWORD
LOCAL hdlTokenHandle:DWORD
LOCAL tmpLuid:LUIDCUST
LOCAL tkp:TOKEN_PRIVS
LOCAL tkpNewButIgnored:TOKEN_PRIVS
LOCAL lBufferNeeded:DWORD
LOCAL tBuff[32]:BYTE
LOCAL ptBuff: Llamar GetCurrentProcess; obtiene el identificador del proceso actual
mov hdlProcessHandle, eax; guárdelo en hdlProcessHandle
lea eax, tBuff Almacene la dirección del búfer temporal en eax; > mov ptBuff, eax; Establecer puntero de búfer temporal
mov BYTE PTR [eax], 0; Inicializar búfer
invocar OpenProcessToken,hdlProcessHandle,40,ADDR hdlTokenHandle
invocar LookupPrivilegeValue,ptBuff, SADD("SeShutdownPrivilege"), ADDR tmpLuid
lea eax, tmpLuid; ingrese la dirección de tmpLuid en eax
ingrese el contenido de tmpLuid en eax<; /p>
; Ingrese la dirección de tmpLuid en eax
Ingrese el contenido de tmpLuid en ecx: edx
mov ecx, (LUIDCUST PTR [eax]).usedpart
mov edx, (LUIDCUST PTR [eax]).ignorehigh32bitpart
lea eax, tkp; ponga la dirección de tkp en eax
mov (TOKEN_PRIVS PTR [eax] ]). p>
mov (TOKEN_PRIVS PTR [eax]).attributes, 2
invocar AdjustTokenPrivileges,hdlTokenHandle,0,ADDR tkp,\
SizeOf tkpNewButIgnored,ADDR tkpNewButIgnored,ADDR lBufferNeeded
ret
AdjustToken endp
LogoutNOW proc
invoca ExitWindowsEx,EWX_LOGOFF,0; cerrar sesión en la máquina
ret
Cerrar sesión AHORA endp
Apagar AHORA proc
invocar SalirWindowsEx,EWX_SHUTDOWN + EWX_FORCE + EWX_POWEROFF,NULL cerrar;
Apague la máquina
ret
ShutdownNOW endp
RestartNOW proc
invoke ExitWindowsEx,EWX_REBOOT,0 ; >
ret
Reiniciar AHORA endp
Cópialo e ingresa tú mismo