Teile des Scripts auslagern auf Webserver

  • Hey,
    Ich wollte mal fragen, da ich vorhabe ein Programm von mir in Zukunft gegen eine gewisse Gebühr zu vertreiben, ob es denn möglich ist (evtl. vlt. ein kleines Bsp?) das man gewissen Funktionen/Teile des Programms auf einen Webserver auslagert und diese dann wenn das Script läuft reinlädt?

    xChucky

  • Möglich ist das. Du könntest beispielsweise kompilierte exe-Dateien auf deinen Server packen und diese dann über die Funktion InetGet() herunterladen. Über run() oder ShellExecute() kannst du diese Dateien dann von deinem Hauptscript aus starten.

    Wenn du Dateien per Include laden willst, dann wäre es sinnvoll, wenn du dir ein extra Loader bastelst. Über diesen können dann deine Kunden die jeweiligen Module herunterladen und gleichzeitig müsste natürlich die includes des Hauptprogramms aktualisiert werden. Dazu müsstest du die includes deiner Script-Datei bearbeiten und anschließend wieder neu kompilieren. Leider weiß ich nicht genau, wie man einen Script per Script kompilieren kann. Schau dafür einfach nochmal bei google oder hier im Forum nach. Vielleicht findest du da etwas.

    Sicherlich wünschst du dir auch eine gewisse Sicherheit, dass nicht jeder auf den Download-Server zugreifen kann. Dies könntest du am einfachsten über htaccess realisieren. Dann gibst du einfach bei InetGet() die url so in etwa an: http://user:pass@deineAdresse.com/download/modul_1.zip

    Ich hoffe dir hilft das schon ein wenig weiter.
    Wenn du noch Fragen hast, dann schieß einfach los.

  • Danke das hat mir schon ne Menge geholfen.

    Eine Frage bleibt noch: Kann ich direkt Funktionen auslagern? Das ich diese praktisch in Plaintext o.ä, runterlade und includiere um sie dann verwenden zu können? Hat den Sinn das wenn jemand es decompilieren könnte, das ihm das nichts bringt da wichtiger Code für das Programm online ausgelagert ist.

  • Ist möglich, eine erweitere Version von Execute() wäre dazu wahrscheinlich der Schlüssel.

    Allerdings solltest du vielleicht lieber auf eine andere Sprache umsteigen, wenn du Sicherheit haben willst. Die wirst du zwar sowieso nie zu 100% erreichen, aber immerhin besser als mit AutoIt. Was nützt es dir, wenn Teile deines Codes im Internet "versteckt" sind, wenn jeder diese einfach downloaden und so das Skript selbst zusammensetzen kann?

  • Das einzige was mir dazu einfallen würde währe das unrühmliche

    [autoit]


    Execute()

    [/autoit]

    jedoch würde ein potentieller Angreifer auch ganz leicht herausfinden wie er den zusatz Code bekommt wenn er die haupt File decompieled hat.
    wenn du dementsprechenden Schutz suchst kann man leider mit purem Autoit nicht viel machen, ich hab zwar im englischen Forum etwas von ner Script verschlüsselungs UDF gelesen nur ausprobiert habe ich sie jedoch nicht und Execute würde dann auch nicht mehr funktionieren.

  • Also wie oben schon erwähnt musst du immer eine Datei mit dem Quelltext auf den User-PC zwischenspeichern und dann kompilieren.
    Außer du stellst den User gleich die Fertig kompilierten Dateien zur Verfügung.
    Wie James bereits erwähnt, würde ich dir auch dazu raten dein Programm in einer anderen Programmiersprache zu schreiben. Möglich wären c# oder vb#. Wobei c# sehr nah an die Scriptsprache von AutoiT ran kommt.

    Wäre vielleicht auch ganz sinnvoll, wenn du mit Keys arbeitest. Dazu findest du sicherlich eine Menge bei google.

  • howdy...

    es geht.. nur wie meine vorredner schon erwähnten.. sicherheit wird ein contra sein

    du kannst theoretisch autoit code direkt mit

    [autoit]

    $webseitenInhalt = BinaryToString(InetRead("http://blablubb.com/bla.php?lizenzkey=blablablablubb"))

    [/autoit]


    holen und dann ausführen lassen.. ich gebe dir hier mal ein beispiel wie du es bewerkstelligen könntest:
    [Link entfernt]

    du musst allerdings bedenken das der code unverschlüsselt super einfach per z.b. wireshark abzufangen ist

    mfg
    sgtigram

    Edit Oscar: Keine Links zu Botseiten, bitte!

    Einmal editiert, zuletzt von Oscar (18. November 2013 um 19:55)