Launcher für script

  • Hallo Leute ;)

    Bin mal wieder mit einer Frage, die mir unter den Fingernägeln brennt da.
    Und zwar möchte ich ein Script bzw. Zukünftig mehrere Scripts mit einem Launcher versehen, der sicherstellt, dass die Version des Scripts freigeschaltet ist bzw. dass der Testzeitraum nicht abgelaufen ist. Ist alles in ordnung soll das Hauptscript gestartet werden. Falls nicht, dann sollte ein Hinweisfenster geöffnet werden.

    Die allgemeine Frage bezieht sich also auf folgendes: Wie schaffe ich es, dass das Hauptscript NICHT ohne den Launcher gestartet werden kann?

  • klar ist es relativ sinnfrei einen launcher zu schreiben, doch kann man ihn dann bei jedem script verwenden; man muss nur einige kleinigkeiten ändern.

    wie genau meinst du das mit dem verschlüsseln?

    • Offizieller Beitrag

    Ok, mal ein Beispiel:
    Nehmen wir an, Du hast Dein Hauptscript compiliert und das Programm hat jetzt den Namen "DeinProgramm.exe".
    Dann nimmst Du dieses Script:

    [autoit]


    $sFilename = 'C:\Pfad\DeinProgramm.exe'
    $hFile = FileOpen($sFilename, 16)
    If $hFile = -1 Then Exit
    $sFile = FileRead($hFile)
    FileClose($hFile)
    $sFile = _StringEncrypt(1, $sFile, 'Passwort')
    $hFile = FileOpen('C:\Pfad\DeinProgramm.enc', 2 + 16)
    If $hFile = -1 Then Exit
    FileWrite($hFile, $sFile)
    FileClose($hFile)

    [/autoit]


    und erstellst damit die Datei "DeinProgramm.enc". Diese Datei gibst Du dann zusammen mit dem Launcher weiter.
    Im Launcher entschlüsselst Du das Hauptscript in ein temporäres Verzeichnis und startest es. Der Launcher wartet dann solange, bis das Hauptscript wieder beendet wird und löscht die temporäre Datei anschließend:

    [autoit]


    $sFilename = 'C:\Pfad\DeinProgramm.enc'
    $hFile = FileOpen($sFilename, 16)
    If $hFile = -1 Then Exit
    $sFile = FileRead($hFile)
    FileClose($hFile)
    $sFile = _StringEncrypt(0, $sFile, 'Passwort')
    $hFile = FileOpen(@TempDir & '\DeinProgramm.exe', 2 + 16)
    If $hFile = -1 Then Exit
    FileWrite($hFile, $sFile)
    FileClose($hFile)
    ShellExecute(@TempDir & '\DeinProgramm.exe')
    WinWait('Titel von Deinem Programm')
    WinWaitClose('Titel von Deinem Programm')
    FileDelete(@TempDir & '\DeinProgramm.exe')

    [/autoit]
  • ich habe sowas ähnliches gemacht (mit seriel)
    aus der einer generierten id ( die sich aus aus zei teilen zusammensetzt wird eine ID generiert)

    Diese Muss man bei mir auf der HP eingeben und daraus generiert ein PHP script eine Seriel .. bei mir ist die zb nur 20 min gültig danach verfällt diese wieder

    wenn man den alguritmus kennt kann man den natürlich knacken

    [autoit]


    $GenID = RegRead("HKLM\SYSTEM\Setup\Pid\", "Pid") & DriveGetSerial(@HomeDrive)

    [/autoit]


    das ist zb die GenID bei mir bleibt soweit auch immer gleich

    wie du sie nun verarbeitest musste dir selber überlgen und wie du den KeyGen baust das es zusammen passt

    mfg