Installer für auto execute a3x-Files

  • Hallo zusammen,

    nachdem in diesem Thread Anti "false-positive" Strategie mit PureBasic über die Problematik "false positive" von Antiviren Software diskutiert wurde, die bei compilierten AutoIt exe-Dateien entstehen, habe ich mich daran gesetzt einen kleinen Installer zu basteln, der auf einem PC, auf dem kein AutoIt installiert ist die Möglichkeit zu schaffen, a3x Dateien direkt startbar zu machen.

    Dies hat mehrere Vorteile:
    - keine "false-positive" Meldungen mehr (meistens ^^)
    die AutoIt3.exe wird bei Aktualisierung den Anti-Viren Software-Herstellern vorgelegt, in die Ausnahmeliste der Scanner aufgenommen
    und ist somit "unbelastet" von false positive Meldungen
    - kleines Script zur Weitergabe  
    das eigene Script ist deutlich kleiner, da es ohne den includierten Wrapper auskommt
    damit ist die Verteilung, Updates und Co. einfacher
    - binäres Script
    das Script ist als a3x-Datei encoded und kann mit "normalen" Mitteln nicht gelesen werden.
    (ein decompilieren ist hier nicht der Diskussionspunkt, da reverse engineering fast immer möglich ist)

    Das Script beinhaltet alle notwendigen Dateien und aktuell die AutoIt3.exe in der Version 3.3.16.1.

    Da das Script etwas länger ist aufgrund der eingefügten Dateien, stelle ich es hier nur als Anhang zur Verfügung.

    Wie immer sind Anregungen, Wünsche, Lob, Tadel und konstruktive Kritik absolut erwünscht. :klatschen:

    Wer Interesse hat, ich habe einen Thread erstellt im engl. Forum ==> Link


    PS: ich hab mal meine "Test.a3x" an VirusTotal gschickt mit dem Ergebnis, dass 0/72 Prüfungen auffällig waren. ^^ ==> Link

    Dateien

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    keine Werbung: Wenn sie ihre Texte in eine andere Sprache übersetzen möchten, kann ich nur deepl.com empfehlen. Ich bin mit den Übersetzungen sehr zufrieden.

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ausführbares Script ("as is"), dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Man möge mir verzeihen, wenn ich nicht perfekten und ideal lesbaren Code zur Verfügung stelle.
    Ich möchte Hilfe zur Selbsthilfe leisten und denke dass eine gewisse Transferleistung erwartet werden kann.

    4 Mal editiert, zuletzt von Schnuffel (26. Januar 2025 um 11:54)

  • Hi Schnuffel , hi zusammen 👋 ,

    da die "Off-Topic" Rubrik, in der ich gerade geantwortet habe, nicht so gut angezeigt (promoted) wird, schreibe ich hier zu dem Thema zumindest nochmal den Link dazu:

    SOLVE-SMART
    22. Januar 2025 um 22:23

    Geht um den Thread den du oben verlinkt hast 😇 .

    Viele Grüße
    Sven

  • naja,
    ich denke dass die Diskussion hier nicht weiter führt und somit beendet werden kann.
    Ich danke für eure Teilnahme, den Input den ich erhalten habe und werde meine Schlüsse daraus ziehen.

    Vielen Dank an alle Beteiligten

    - Thema kann geschlossen werden -

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    keine Werbung: Wenn sie ihre Texte in eine andere Sprache übersetzen möchten, kann ich nur deepl.com empfehlen. Ich bin mit den Übersetzungen sehr zufrieden.

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ausführbares Script ("as is"), dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Man möge mir verzeihen, wenn ich nicht perfekten und ideal lesbaren Code zur Verfügung stelle.
    Ich möchte Hilfe zur Selbsthilfe leisten und denke dass eine gewisse Transferleistung erwartet werden kann.

  • Danke dir Schnuffel , denn die Idee und Umsetzung bis hier hin war wirklich gut. Vielleicht ergibt sich mal noch was in der Richtung, man weiß ja nie.

    Viele Grüße
    Sven

  • Script in Post #1 aktualisiert und um Anregungen ergänzt.

    Wie immer sind Anregungen, Wünsche, Lob, Tadel, Fragen und konstruktive Kritik absolut erwünscht. :klatschen:

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    keine Werbung: Wenn sie ihre Texte in eine andere Sprache übersetzen möchten, kann ich nur deepl.com empfehlen. Ich bin mit den Übersetzungen sehr zufrieden.

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ausführbares Script ("as is"), dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Man möge mir verzeihen, wenn ich nicht perfekten und ideal lesbaren Code zur Verfügung stelle.
    Ich möchte Hilfe zur Selbsthilfe leisten und denke dass eine gewisse Transferleistung erwartet werden kann.

    4 Mal editiert, zuletzt von Schnuffel (26. Januar 2025 um 10:53)

  • Feine Sache Schnuffel 👌 . Ich schaue es mir auf jeden Fall mal an, sobald ich wieder etwas produktives schreibe (also für jemand oder für ein PROD System). Kommt in letzter Zeit zugegebenermaßen nicht so häufig vor, da ich eher mit go (golang) unterwegs bin, doch ich kann ja einfach mal etwas "zusammen hacken" 😅 , wovon ich weiß das es ein Virenscanner als mindestens verdächtig einstuft und die "normale" Variante, mit deiner Installer-Variante vergleichen. Das wird spannend, Danke.

    Viele Grüße
    Sven

  • Ich habe das Skript in #1 korrigiert und ersetzt.

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    keine Werbung: Wenn sie ihre Texte in eine andere Sprache übersetzen möchten, kann ich nur deepl.com empfehlen. Ich bin mit den Übersetzungen sehr zufrieden.

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ausführbares Script ("as is"), dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Man möge mir verzeihen, wenn ich nicht perfekten und ideal lesbaren Code zur Verfügung stelle.
    Ich möchte Hilfe zur Selbsthilfe leisten und denke dass eine gewisse Transferleistung erwartet werden kann.

  • Deine _RandomString() Funktion hat 'nen kleinen Bug Schnuffel .
    Am Ende sicherlich total egal, da nur ein $sTempFolder damit erstellt wird, doch wenn du wirklich genau 16 Zeichen haben möchtest dann müsstest du die Funktion etwas umstellen.

    Aktuelle Variante mit Output Beispiel

    Output:

    Code
    16: "brijnwgwzf4vput1"
    16: "7nm94844y2rv4b85"
    16: "fg69f840w8ucep6c"
    18: "vaf36awz543wtq36et"
    17: "f52zfqda236816f6e"
    16: "qdvnx0fjmacu2vs9"
    16: "d9f0akl3vs9cghe2"
    17: "1r36ll06m50alllux"
    ...
    ...
    Vorschlag mit Output Beispiel

    Output:

    Code
    16: "xem7bowp6qk6i8n6"
    16: "vgigtfr6shjykqk3"
    16: "h276mhljrhs11kov"
    16: "4pac6ilkrh0q0e1p"
    16: "dwkqa7wf4td6dtc2"
    16: "modjgivw1hwfexlq"
    16: "385i0ta2vb4h00xy"
    16: "nq5g4bniaau3poe8"
    ...
    ...

    Falls du die Funktion auch wo anders nutzt und dort kommt es darauf an, dann ist meine Empfehlung sie anzupassen. Wenn du aber sagst, ist egal, ist das auch total fein für mich. Wollte es nur angemerkt haben 😅 .

    Viele Grüße
    Sven

  • Hallo Schnuffel,

    schön dass Du die Herausforderung zu dem Thema aufgenommen hast und schön von Dir, dass Du Deine Arbeit mit uns teilst.

    Wie immer sind Anregungen, Wünsche, Lob, Tadel, Fragen und konstruktive Kritik absolut erwünscht. :klatschen:

    Ich finde es ebenso klasse von Dir, dass Du an der Sache dranbleibst.

    Noch eine Anregung:
    Würdest Du ggf. bei Gelegenheit auch in dem Paket von Post #1ein DeInstallerskript zur Verfügung stellen? Ich denke, das hätte aufgrund der Registry-Einträge, die ja bei der Installation geschrieben werden, einen echten Mehrwert.

    2 Mal editiert, zuletzt von bazii (25. Januar 2025 um 21:36)

  • bazii

    hatte ich auch schon dran gedacht.

    Liefere ich noch nach

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    keine Werbung: Wenn sie ihre Texte in eine andere Sprache übersetzen möchten, kann ich nur deepl.com empfehlen. Ich bin mit den Übersetzungen sehr zufrieden.

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ausführbares Script ("as is"), dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Man möge mir verzeihen, wenn ich nicht perfekten und ideal lesbaren Code zur Verfügung stelle.
    Ich möchte Hilfe zur Selbsthilfe leisten und denke dass eine gewisse Transferleistung erwartet werden kann.

  • SOLVE-SMART kannst du mir den bug erklären?

    Ich stehe da grad auf dem Schlauch ☺️

    Hab ich mich im Array verzählt?

    Sollte es 35 statt 36 im Array sein?

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    keine Werbung: Wenn sie ihre Texte in eine andere Sprache übersetzen möchten, kann ich nur deepl.com empfehlen. Ich bin mit den Übersetzungen sehr zufrieden.

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ausführbares Script ("as is"), dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Man möge mir verzeihen, wenn ich nicht perfekten und ideal lesbaren Code zur Verfügung stelle.
    Ich möchte Hilfe zur Selbsthilfe leisten und denke dass eine gewisse Transferleistung erwartet werden kann.

    Einmal editiert, zuletzt von Schnuffel (25. Januar 2025 um 22:20)

  • Ja in etwa. Du machst ja $aSignPool[] = [36, "0", "1", ... , dann steht im Index 0 des Arrays ($aSignPool[0]) 36.
    Diese Zahl, welche ja eigentlich nur die Anzahl deiner Zeichen ist, gibst du mit in die Random-Funktion.

    AutoIt
    $sReturn &= $aSignPool[Random(0, $aSignPool[0], 1)]

    Du kannst also "eigentlich" einfach Random von 1 beginnen lassen, anstatt von 0. Somit wird in der Schleife mit deinem ersten wirklichen Wert, was die "0" ist begonnen und nicht mit 36. Daher bekommst du manchmal auch 17 Zeichen zurück oder sogar 18.

    Hinweis: In meinem Vorschlagsbeispiel habe ich gar nicht erst mit dem Count an Stelle $aSignPool[0] gearbeitet. Daher ist diese Erklärung, Random(1, .....) eine weitere Variante 😅 den Fix zu machen.

    Ich hoffe das war verständlich, ansonsten frag gern nochmal, kein Problem.

    Viele Grüße
    Sven

  • ahh, okay habe ich verstanden.

    Fataler Fehler 0 anstatt 1 ( hi hi binary joke)

    Da ich nicht bei jeder Abfrage im Random ein Ubound zusätzlich machen möchte, werde ich das zusammenfassen.

    Danke für den Tipp

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    keine Werbung: Wenn sie ihre Texte in eine andere Sprache übersetzen möchten, kann ich nur deepl.com empfehlen. Ich bin mit den Übersetzungen sehr zufrieden.

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ausführbares Script ("as is"), dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Man möge mir verzeihen, wenn ich nicht perfekten und ideal lesbaren Code zur Verfügung stelle.
    Ich möchte Hilfe zur Selbsthilfe leisten und denke dass eine gewisse Transferleistung erwartet werden kann.

  • Sehr gut und gerne 🤝 . Habe meine Vorschlag oben auch noch ein klein wenig angepasst.

    AutoIt
    Func _RandomString($nQuantity)
    	Local Const $aSignPool = StringSplit("0123456789abcdefghijklmnopqrstuvwxyz", "", 2)
    	Local Const $iCount = UBound($aSignPool) -1
    	Local $sReturn
    	For $i = 1 To $nQuantity
    		$sReturn &= $aSignPool[Random(0, $iCount, 1)]
    	Next
    	Return $sReturn
    EndFunc   ;==>_RandomString

    So oder so, Hauptsache man bekommt damit dann genau die Anzahl an Random Characters zurück, die man erwartet 👍 .

    Bis die Tage mal, ich bin raus für heut'.

    Viele Grüße
    Sven

  • AutoIt
    Func uniqueNow($iLength = 16) ; should be unique enough for a temp folder
    	Return StringRight(TimerInit(), $iLength)
    EndFunc
    ConsoleWrite(uniqueNow() & @CRLF)

    An dem, was Sie getan haben, ist nichts auszusetzen.
    Das hier ist einfacher. Es ist nur für einen temporären Ordner, der in Kürze gelöscht wird. Andernfalls verwenden Sie den UTC-Zeitstempel, der ebenfalls eindeutig ist.
    Meine 2 Cent Weisheit

  • Script in Post #1 aktualisiert und um Anregungen ergänzt. Version 1.0.0.3

    Wie immer sind Anregungen, Wünsche, Lob, Tadel, Fragen und konstruktive Kritik absolut erwünscht. :klatschen:

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    keine Werbung: Wenn sie ihre Texte in eine andere Sprache übersetzen möchten, kann ich nur deepl.com empfehlen. Ich bin mit den Übersetzungen sehr zufrieden.

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ausführbares Script ("as is"), dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Man möge mir verzeihen, wenn ich nicht perfekten und ideal lesbaren Code zur Verfügung stelle.
    Ich möchte Hilfe zur Selbsthilfe leisten und denke dass eine gewisse Transferleistung erwartet werden kann.

  • Post #1 um einen Uninstaller ergänzt

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    keine Werbung: Wenn sie ihre Texte in eine andere Sprache übersetzen möchten, kann ich nur deepl.com empfehlen. Ich bin mit den Übersetzungen sehr zufrieden.

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ausführbares Script ("as is"), dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Man möge mir verzeihen, wenn ich nicht perfekten und ideal lesbaren Code zur Verfügung stelle.
    Ich möchte Hilfe zur Selbsthilfe leisten und denke dass eine gewisse Transferleistung erwartet werden kann.

  • Schnuffel

    Das ist ja mal eine sehr schöne Lösung. :rock::rock::rock:

    Ich schließe mich meinem Vorredner mit den Worten "Funktioniert prima. Vielen Dank!" an !

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr