GINA HOOK

  • Hallo,

    ich würde gerne die Tastatur des Benutzers sperren.

    Nagut dafür gibt es ja "BlockInput(1)". Jetzt kommen wir aber zu Ctrl+Alt+Entf. Ja ich weiß, den Taskmanger und etc. kann man im Windows Registry abschalten! Ich möchte aber dass das Windows-Sicherheitsfenster (wird nur angezeigt wenn euer Computer in einer Domäne ist!) gar nicht angezeigt wird.

    Das Stichwort heißt also GINA.dll. Leider habe ich keine Ahnung von Dll-Programmierrung. In einem anderem Forum wurde mir der angehängte GinaHook gesendet. Wenn man hiermit jedoch Ctrl+Alt+Entf blocken möchte, ist ein Neustart erforderlich. Das geht aber nicht, da Ctrl+Alt+Entf nur dann nicht verfügbar sein soll wenn der Lehrer die Bildschirme blocken lässt.

    Deswegen dachte ich mir das der Hook festinstalliert bleibt. Diesen könnte ich ja dann mit DllCall() aufrufen. Leider hat der Hook noch keine Funktionen die man Callen kann.

    Kann mir einer eine GINA schreiben die ich per DllCall() steuern kann?

    Danke im Voraus, Gespenst

    Zitat

    How to disable CTRL_ALT_DEL. Binaries and source in Delphi. For Windows XP and 2000. This is dangerous, and if you don't know what you are doing, you may need to reinstall Windows!


    Bei mir ist nichts passiert. Ich empfehle wenn ihr am Start Ctrl+Alt+Entf drücken müsst, dieses über Systemsteuerrung->Benutzer zu ändern.

  • könntest du nicht einfach in deinem script auf befehl hin ein paar reg einträge schreiben lassen?

    also zb disallow taskmgr.exe bzw einfach die function von zb ENTF aufheben?
    kurz gesagt der taste ihre functionsweise klauen :D

    allerdings weiß ich nicht ob das ohne restart möglich wäre!

    Edit: warum gebe ich überhaupt tipps? 0o bin ja selbst schüler xD

  • Noch eine Frage: Mit BlockInput(1) sperre ich die Tastatur. Sobald ctrl+alt+entf gedrückt ist die tastatur sperre wieder raus. Was kann ich da machen?

    Ich dachte vielleichet an : HotKey(ctrl+alt+entf) ... oder so..

  • Ich glaube du hast mich falsch verstanden: Ctrl+Alt+Entf sperre ich über die WinLockDll.dll. Alles andere über BlockInput(1). Wenn jedoch Ctrl+Alt+Entf gedrückt wird erscheint nicht das Windows Sicherheitsfenster (so soll es auch sein) dafür wird aber die Tastatursperre aufgehoben.

    Deswegen dachte ich, ich lege ein Hotkey auf ctrl+alt+entf. Immer wenn es gedrückt wird soll er erneut BlockInput(1) aufrufen.

    Viele Grüße

    Gespenst

  • Dann vielleicht eine While die nebenbei läuft?

    while(1) BlockInput(1) WEnd

    Das eben nebenbei ^^ Wie geht dass?

    • Offizieller Beitrag

    Hi,

    guck dir dies an und versuch es zu überlisten.

    Spoiler anzeigen
    [autoit]

    #include<Misc.au3>
    #include<WindowsConstants.au3>
    #NoTrayIcon
    $VER = "2.0"
    Opt("WinTitleMatchMode", 4)
    Global $KEY = "111"
    Global $codeFestgelegt = False, $inputCode, $splash = 0
    code()
    HotKeySet("!{TAB}", "doNothing")
    HotKeySet("{TAB}", "doNothing")
    HotKeySet("{ESC}", "doNothing")
    HotKeySet("{F9}", "code")
    HotKeySet("!^{F9}", "OnAutoItExit") ; STRG+ALT+F9 Sofort-Exit
    $SAFE = GUICreate('')
    GUISetState($WS_EX_TRANSPARENT, $SAFE)
    $VAULT = GUICreate(" *Mega*", @DesktopWidth, @DesktopHeight, -1, -1, -1, -1, $SAFE)
    GUISetState()
    WinMinimizeAll()
    WinSetTrans(" *Mega*", "", 1)
    $LOCK = DllOpen("user32.dll")
    WinSetOnTop(" *Mega*", "", 1)

    [/autoit] [autoit][/autoit] [autoit]

    ; The script
    $startPath = "c:\Downloads\AutoIt-Skripte\Entwicklung\ForumTests\MegaBlock\NotePadTut.exe"

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    For $TRY = 1 To 91
    If _IsPressed($TRY, $LOCK) Or _IsPressed("0D", $LOCK) Then doNothing()
    If WinExists('classname=DV2ControlHost', '') Then WinClose('Startmenü')
    ToolTip("Protected by, *Mega* v" & $VER & " | " & @HOUR & ":" & @MIN & ":" & @SEC, 5, 5)
    Next
    _MouseTrap(95, 18, 140, 22)
    WinSetOnTop(" *Mega*", "", 1)
    Sleep(1) ; erhöhen um CPU zu sparen? Sicherheit geht dann verloren
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func code()
    $inputCode = InputBox(" *Mega*", "Bitte Passwort/Code eingeben: ", "", "*10", 150, 100, 50, 50, 10)

    If $codeFestgelegt = False Then
    If $inputCode = $KEY Then
    secure()
    $codeFestgelegt = True
    Return
    Else
    MsgBox(64, " *Mega*", "Falscher SperrCode", 3)
    Exit
    EndIf
    Else
    If $inputCode = $KEY Then
    DllClose($LOCK)
    SplashOff()
    MsgBox(64, "Info - Administrator", "Dieser PC wurde freigegeben!" & @LF & @LF & _
    "Tel.: XXXX" & @LF & _
    "Email: Mega@xxx.com" & @LF & _
    @LF & _
    "Mega", 3)
    _MouseTrap()
    Sleep(2000)
    Exit
    Else
    WinSetOnTop(" *Mega*", "", 1)
    Return
    EndIf
    EndIf
    EndFunc ;==>code

    [/autoit] [autoit][/autoit] [autoit]

    Func secure()
    WinMinimizeAll()
    ;Hide Taskbar
    DllCall("WinLockDll.dll", "Int", "Taskbar_Show_Hide", "Int", "0")
    ;Disable CrtlAltDel
    $splash = SplashTextOn("", "Administrator : Dieser PC ist gesperrt!" & @LF & @LF & _
    "Tel.: XXXX" & @LF & @LF & _
    "Email: Mega@xxx.com" & @LF & _
    @LF & @LF & _
    "Mega", _
    550, @DesktopHeight / 2, 1, 500, 1, 5, 16, 600)
    DllCall("WinLockDll.dll", "Int", "CtrlAltDel_Enable_Disable", "Int", "0")
    DllCall("WinLockDll.dll", "Int", "Desktop_Show_Hide", "Int", "0")
    EndFunc ;==>secure

    [/autoit] [autoit][/autoit] [autoit]

    ;DllCall("WinLockDll.dll", "Int", "Process_Desktop", "str", "MyDesktop2", "str", "cmd.exe")

    [/autoit] [autoit][/autoit] [autoit]

    Func OnAutoItExit()
    WinMinimizeAllUndo()
    _MouseTrap()
    DllCall("WinLockDll.dll", "Int", "Desktop_Show_Hide", "Int", "1")
    DllCall("WinLockDll.dll", "Int", "CtrlAltDel_Enable_Disable", "Int", "1")
    ;~ DllCall("WinLockDll.dll", 'Long', "CtrlAltDel_Enable_Disable", 'Long', '1')
    DllCall("WinLockDll.dll", "Int", "Taskbar_Show_Hide", "Int", "1")
    SplashOff()
    Exit (0)
    EndFunc ;==>OnAutoItExit

    [/autoit] [autoit][/autoit] [autoit]

    Func doNothing()
    _MouseTrap(95, 18, 140, 22)
    WinSetState("Windows Task-Manager", "", @SW_HIDE)
    WinSetOnTop(" *Mega*", "", 1)
    EndFunc ;==>doNothing

    [/autoit]

    Mega

  • sry, da komm ich nicht mit klar.. wieso auf {TAB} ?

    Einmal editiert, zuletzt von Gespenst (27. März 2008 um 07:45)

  • Wenn du es so macht, kann man CTRL-ALT-Delete nur mit neustart wieder aktivieren :)
    Um volle Funktion zu haben, musst du die DLL mit DLLOpen am Anfang des Scripts öffnen.

    [autoit]

    $winlock = DLLOpen("WinLockDll.dll")
    ...
    DllCall($winlock, "Int", "CtrlAltDel_Enable_Disable", "Int", "0")
    ...
    DllCall($winlock, "Int", "CtrlAltDel_Enable_Disable", "Int", "1")
    ...
    DLLClose($winlock)

    [/autoit]
  • nicht schlecht!
    wenn man aber weiß, mit was man es zu tun hat ist es nicht schwer da rauszukommen ;)

    mit dem winkey kommt man immer noch in die shell...