[Linuxtrent] Re: Uscita da programma/script in python

  • From: Alex <magobin@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Fri, 17 Jul 2009 12:40:35 +0200

>>Sarebbe forse utile a qualcuno in futuro se tu riuscissi a riassumere
>>la soluzione che hai trovato, o qui, o su comp.lang.python... :)

Beh, il grosso del lavoro è stato lo scovare questa DLL(che tra
l'altro fa molto di più)...richiamarla con le ctypes è stato poi molto
semplice in verità...comunque riassumendo:

Il problema era  che in Windows post NT la sequenza SAS(Secure access
Sequence) non viene gestita dall'applicazione ma direttamente da
winlogon.exe che richiama una famosa dll che gestisce
l'autenticazione..la msgina.dll.

Leggendo poi nella pagina della dll che ho trovato (di cui posto il
link in fondo)  ci sarebbero diversi modi per disabilitare la SAS:

-Disabilitare il Task Manager(ma non risolveva il mio problema)

-Catturare i tasti premuti usando un driver per la tastiera

-scriversi la propria dll   gina

-Subclassare la finestra SAS del processo winlogon.

LUI ha usato quest'ultimo metodo.

Leggendo nelle prime righe mi aveva incuriosito la frase:

" ...move all the functions into a DLL so that any program developed
in a language capable of calling Windows standard libraries (DLLs) can
use them."

Letto questo ho fatto due più due e quindi mi sono letto un pò di doc
sulle CTYPES e, dato che nella pagina vi sono anche i sorgenti, mi
sono ricavato il metodo da richiamare. così:

import ctypes

from ctypes import windll

#Disabilita CTRL-ALT-DEL

windll.LoadLibrary("c:\WinLockDll.dll")

windll.WinLockDll.CtrlAltDel_Enable_Disable(0)


..come detto ci sono anche altri metodi per bloccare per esempio altre
sequenze tasti...il bello è che ci sono i sorgenti e, magari chi è
bravo in C può dare una bella letta al codice (per me è arabo per ora)

Ciao

Alex

Referenze:

http://www.codeproject.com/KB/winsdk/AntonioWinLock.aspx

Other related posts: