Dekompilieren für Eigenbedarf nicht mehr möglich? Alternative?

  • Hallo Freunde,

    ich habe eine kurze Frage.
    Da ich öfter Scripte schreibe, nehme ich zum Bugfixing oft das Exe2Aut Decompiler-Tool für meine eigenen Scripte.

    Wenn die kompilierte Exe-Datei einen Fehler wirft (z.B. Error in Zeile 8103) habe ich früher die exe-Datei in den Decompiler geworfen und dann nach der Zeile gesucht, da ja hier dann auch die Includes usw. mit aufgeführt sind.
    Seit ich die Autoit Version 3.3.10.2 installiert habe, kann ich die exe-Dateien aber nicht mehr mit dem Tool dekompilieren (Error).

    Gibt es eine andere Möglichkeit, sich den kompletten Code (inklusive Includes usw.) anzeigen zu lassen, bei der dann auch die Zeilenangabe im Errorcode nachvollziehbar ist?

    Danke schonmal + Grüße
    Patrick

    Einmal editiert, zuletzt von zawn (23. Januar 2014 um 11:46)

  • wieso verwendest du nicht einfach die Original-Scripte? wenn es deine eigenen sind dürfte das doch gar kein problem sein oder? oder löschst du diese immer?

    Zitat

    "Some people feel the rain, others just get wet." - Bob Marley

  • Also ich bezweifle, dass das dein eigenes Programm ist, sonst hättest du den Code bestimmt selbst noch irgendwo gespeichert. Besonders wenn das betreffende Programm >8000 Zeilen hat, alles andere wäre ganz schön leichtsinnig und ich würd mich Ohrfeigen würde mir sowas passieren.

    Es ist ganz einfach: das Dekompilieren verletzt die Rechte eines Programmierers. Wenn ein Coder will, dass sich jemand den SC ansehen kann, dann gibt er ihn auch raus, dekompilieren verletzt in jedem Fall die Rechte, deshalb wurde diese Option auch nicht mehr weiterentwickelt.
    Ich weiss es ist nicht unmöglich (wie, will ich aber gar nicht wissen), allerdings wird dir da das wohl auch unsere Forenregeln verletzen würde hier niemand helfen können, wollen und vorallem dürfen.

    Bild1: Ich beim debuggen

  • NightmarePhoenix, ein >8000 Programm erreichst du mit weniger als 5 Zeilen...

    [autoit]

    #include <GUIConstants.au3>
    #include <WinAPIProc.au3
    ;...

    [/autoit]


    Des Weiteren verletzt es nicht die Rechte des Programmierers sondern es verstößt gegen die AutoIt-Lizenz.

    Ehm...doch :huh: geistiges Eigentum und so (auch wenn das nicht unbedingt der richtige Grund sein muss) :?:

    Was auch immer spielt ja eg. keine Rolle, es ist nicht erlaubt.

    Bild1: Ich beim debuggen

  • Um die korrekte Fehlerzeile zu eruieren genügt es Obfuscator (Option StripOnly) auszuführen und die Ergebnisdatei aufzuheben.

  • Wenn es nicht meine Scripte wären, würde ich doch nach einem anderen Decompiler fragen und nicht nach einer Alternative um den kompletten Code (inclusive Includes) zu sehen.

    Damit mir das nun auch jeder glaubt, hier der Error um den es geht.

    [Blockierte Grafik: http://s7.directupload.net/images/140123/yngkbc2c.png]

    Spoiler anzeigen
    [autoit]

    ;Includes
    #include <OutlookEX.au3>
    #include <File.au3>
    #include <Misc.au3>

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

    ;Tray-Menü ausblenden
    Opt("TrayMenuMode", 1)

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

    ;Nur eine Instanz von PDF-Print erlauben
    _Singleton("PDF Print", 0)

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

    ;Globale Variablen deklarieren
    Global $inbox = "Postfach - Invoice\Posteingang"
    Global $PSTname = "done"
    Global $recipient1 = "xxxxxxxx@email.de"
    Global $recipient2 = "xxxxxxxx@email.de"
    Global $recipient3 = "xxxxxxxx@email.de"
    Global $recipient4 = "xxxxxxxx@email.de"

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

    ;Running in ini auf 0 setzen
    IniWrite(@ScriptDir & "\PDF Print.ini", "Settings", "Running", "0")

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

    ;Netzlaufwerk Z entfernen
    DriveMapDel("Z:")
    ;Netzlaufwerk Z mappen
    $error = DriveMapAdd("Z:", "\\server\share$\XCH_Invoice", 1)

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

    ;wenn Netzlaufwerk Z nicht verfügbar
    If $error <> 1 Then
    ;Messagebox mit Fehlerinformation anzeigen
    MsgBox(0, "Fehler", "Z-Laufwerk nicht verfügbar.")
    ;Programm beenden
    Exit
    EndIf

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

    ;Endlosschleife
    While 1

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

    ;Outlook-Handle erzeugen
    Global $oOutlook = _OL_Open()

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

    ;Prüfen, ob mehr als 1024MB Speicher auf Z: (\\server\share$\XCH_Invoice) frei und ob das Laufwerk verfügbar ist
    If DriveSpaceFree("Z:") > 1024 And DriveStatus("Z:") = "READY" Then

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

    ;Alle Mails aus dem Posteingang einlesen
    Global $aOL_Item = _OL_ItemFind($oOutlook, $inbox, $olMail, "", "", "", "EntryID")

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

    ;wenn Mails vorhanden
    If $aOL_Item[0][0] <> 0 Then

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

    ;Running in ini auf 1 setzen
    IniWrite(@ScriptDir & "\PDF Print.ini", "Settings", "Running", "1")

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

    ;Attachments auslesen
    For $i = 1 To UBound($aOL_Item) - 1
    $attachments = _OL_ItemAttachmentGet($oOutlook, $aOL_Item[$i][0], Default)
    ;Attachments in spool-Verzeichnis speichern
    For $j = 1 To UBound($attachments) - 1
    ;Zeitstempel setzen
    $timestamp = @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC & @MSEC
    _OL_ItemAttachmentSave($oOutlook, $aOL_Item[$i][0], Default, $j, @ScriptDir & "\spool" & $timestamp & "_" & $attachments[$j][1])
    Sleep(50)
    Next

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

    ;500ms warten
    Sleep(500)

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

    ;Sicherheit, dass die Mail verschoben wurde

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

    ;Zählvariable auf 0 setzen
    $zaehl = 0
    ;Fehlervariable auf 0 setzen
    $return = 0

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

    ;Solange Fehler besteht
    While $return = 0
    ;Outlookhandle schließen
    _OL_Close($oOutlook)
    ;1 Sekunde warten
    Sleep(1000)
    ;Outlookhandle erstellen
    Global $oOutlook = _OL_Open()
    ;2 Sekunden warten
    Sleep(1000)
    ;E-Mail in done-PST verschieben
    $return = _OL_ItemMove($oOutlook, $aOL_Item[$i][0], Default, $PSTname)
    MsgBox(0, "Verschiebe E-Mail...", "Verschiebe E-Mail in done-Ordner..." & @CR & @CR & "Error: " & @error & @CR & @CR & "Extended: " & @extended, 2)
    ;Zählvariable um 1 erhöhen
    $zaehl = $zaehl + 1

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

    ;wenn mehr als 10 mal Fehler
    If $zaehl > 10 Then
    ;outlook.exe beenden
    ProcessClose("outlook.exe")
    ;warten bis outlook.exe beendet ist
    ProcessWaitClose("outlook.exe")
    ;5 sekunden warten
    Sleep(5000)
    EndIf

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

    WEnd

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

    Next

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

    Else
    ;Running in ini auf 0 setzen
    IniWrite(@ScriptDir & "\PDF Print.ini", "Settings", "Running", "0")

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

    EndIf

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

    ;500ms warten
    Sleep(500)

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

    ;Alle Dateien im Spool-Verzeichnis in Array lesen
    $allfiles = _FileListToArray(@ScriptDir & "\spool")

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

    For $i = 1 To UBound($allfiles) - 1
    ;Wenn Datei nicht pdf,tif oder tiff
    If StringRight($allfiles[$i], 4) <> ".pdf" And StringRight($allfiles[$i], 4) <> ".tif" And StringRight($allfiles[$i], 5) <> ".tiff" Then
    ;Datei nach not_printed verschieben und Zeitstempel in Dateinamen setzen
    FileMove(@ScriptDir & "\spool" & $allfiles[$i], "Z:\not_printed" & $allfiles[$i], 1)
    ;wenn Dateigröße über 10kb
    If FileGetSize("Z:\not_printed" & $allfiles[$i]) > 10240 Then
    ;E-Mail an Fr. xxxx schicken mit Pfad zur Datei
    _OL_Wrapper_SendMail($oOutlook, $recipient1, "", "", "Invoice - Mail mit falschem Anhang", "Sie haben im Invoice-Postfach eine Nachricht mit einem falschen Anhang (kein PDF) erhalten: \\server\share$\XCH_Invoice$\XCH_Invoice\not_printed" & StringTrimLeft($allfiles[$i], 18), "")
    ;500ms warten
    Sleep(500)
    ;E-Mail an Fr. xxxxx schicken mit Pfad zur Datei
    _OL_Wrapper_SendMail($oOutlook, $recipient2, "", "", "Invoice - Mail mit falschem Anhang", "Sie haben im Invoice-Postfach eine Nachricht mit einem falschen Anhang (kein PDF) erhalten: \\server\share$\XCH_Invoice\not_printed" & $allfiles[$i], "")
    ;500ms warten
    Sleep(500)
    EndIf
    EndIf
    Next

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

    ;restliche Files im Spool-Verzeichnis in Array lesen (nur noch pdf,tif und tiff
    $printfiles = _FileListToArray(@ScriptDir & "\spool")

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

    For $i = 1 To UBound($printfiles) - 1
    ;Variable mit Pfad zum bin-Verzeichnis
    $path = @ScriptDir & "\bin"
    ;Input-File definieren
    $input_file = @ScriptDir & "\spool" & $printfiles[$i]
    ;Output-File definieren und umbenennen
    $output_file = @ScriptDir & "\spool\temp_" & $printfiles[$i]
    ;Wasserzeichen definiseren
    $watermark = @MDAY & "/" & @MON & "/" & @YEAR & " " & @HOUR & ":" & @MIN

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

    ;Imagemagicks Convert.exe aufrufen, Datei in Graustufen umwandeln, Wasserzeichen einfügen und normalisieren (Kontrast verbessern)
    RunWait($path & '\im\convert.exe -compress jpeg -quality 100 -density 300 -colorspace gray -normalize -font Helvetica-Bold -pointsize 14 -fill white -stroke black -gravity North -strokewidth 3 -draw "text 50,50 ' & Chr(39) & $watermark & Chr(39) & '" "' & $input_file & '" "' & $output_file & '"', "", @SW_HIDE)

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

    ;Input-File löschen
    FileDelete($input_file)

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

    ;Datei nach Umwandlung wieder zurückbenennen
    FileMove($output_file, $input_file, 1)

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

    ;mit Poppler-Toolkit PDF-Größe verringern
    RunWait($path & '\poppler\pdftocairo.exe -pdf -r 300 -noshrink -origpagesizes "' & @ScriptDir & '\spool\' & $printfiles[$i] & '" "' & @ScriptDir & '\spool\temp_pop.pdf"', "", @SW_HIDE)

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

    ;Input-File löschen
    FileDelete(@ScriptDir & "\spool" & $printfiles[$i])

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

    ;Datei nach Umwandlung wieder zurückbenennen
    FileMove(@ScriptDir & "\spool\temp_pop.pdf", @ScriptDir & "\spool" & $printfiles[$i], 1)

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

    ;wenn Dateigröße der generierten pdf-Datei über 4KB
    If FileGetSize(@ScriptDir & "\spool" & $printfiles[$i]) > 10240 Then
    ;Sumatra-PDF aufrufen und Datei auf Standard-Drucker ausdrucken
    RunWait($path & '\SumatraPDF.exe -print-to-default -exit-on-print "' & @ScriptDir & '\spool\' & $printfiles[$i] & '"', "", @SW_HIDE)

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

    ;500ms warten
    Sleep(500)

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

    ;Datei in printed-Verzeichnis verschieben
    FileMove(@ScriptDir & "\spool" & $printfiles[$i], "Z:\printed" & $printfiles[$i], 1)

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

    ;wenn Dateigröße der generierten pdf-Datei über 4KB
    Else
    ;E-Mail an Hr. xxxxx
    _OL_Wrapper_SendMail($oOutlook, $recipient3, "", "", "Invoice - PDF-Druckproblem", "Sie haben im Invoice-Postfach eine Nachricht mit einem PDF-Anhang erhalten, der nicht gedruckt werden konnte: " & StringTrimLeft($printfiles[$i], 18), "")
    Sleep(500)

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

    ;Datei in error-Verzeichnis verschieben
    FileMove(@ScriptDir & "\spool" & $printfiles[$i], "Z:\error" & $printfiles[$i], 1)
    EndIf

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

    ;500ms warten
    Sleep(500)
    Next

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

    ;Wenn weniger als 1024MB auf Z: frei
    ElseIf DriveSpaceFree("Z:") < 1024 Then

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

    ;E-Mail an xxxxxx schicken
    _OL_Wrapper_SendMail($oOutlook, $recipient3, "", "", "Backuptool-Share fast voll!", "\\server\share$\ nur noch 1GB frei! Bitte sofort Speicher frei machen!", "")
    ;500ms warten
    Sleep(500)
    ;E-Mail an xxxxxx schicken
    _OL_Wrapper_SendMail($oOutlook, $recipient4, "", "", "Backuptool-Share fast voll!", "\\server\share$ nur noch 1GB frei! Bitte sofort Speicher frei machen!", "")

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

    ;Wenn Z-Laufwerk nicht verfügbar
    ElseIf DriveStatus("Z:") <> "READY" Then

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

    ;15 Sekunden Messagebox anzeigen und fragen ob Programm beendet werden soll
    $errorbox = MsgBox(0, "Fehler", "Z-Laufwerk nicht verfügbar." & @CR & @CR & "Tool wird in 15 Sekunden neu gestartet." & @CR & @CR & "Tool beenden?", 15)
    ;Wenn OK gedrückt wurde, Programm beenden
    If $errorbox = 1 Then Exit

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

    EndIf

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

    ;Outlook-Handle schließen
    _OL_Close($oOutlook)

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

    ;5 Sekunden warten
    Sleep(5000)

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

    ;Ende der Endlosschleife
    WEnd

    [/autoit]

    Das Tool wartet, bis eine neue Mail im Postfach ankommt. Läd dann alle Anhänge in einen Ordner. Verschiebt alle nicht-pdfs oder nicht-tiffs.
    Dann fügt es automatisch eine Wasserzeichen (Datumsstempel) ein und druckt die Rechnung aus. So viel dazu.

    Das Script ist mit Kommentaren und Leerzeilen 220 Zeilen lang.
    Errormeldung zeigt aber Zeile 8326.

    Meine Frage war nun, wie ich herausfinde, welche Zeile im Script es nun wirklich ist...

    Schon schön, wie immer gleich alle abgehen, wenn das Wort "Decompiler" fällt...
    Ich bin mir schon bewusst, dass es illegal ist, damit Programme zu decompilieren, die nicht mein eigenes geistiges Eigentum sind...
    Danke Homelike Jester für die sehr hilfreiche Aufklärung.

    Dankeschön trotzdem für die Antworten (vor allem water). Auch für die super Outlook UDF :)
    Grüße!

    3 Mal editiert, zuletzt von zawn (23. Januar 2014 um 11:19)

    • Offizieller Beitrag

    zawn:
    Mal zum besseren Verständnis für dich, warum alle beim Thema Dekompilieren "abgehen":
    Es ist doch völlig uninteressant und spielt nicht die geringste Rolle wessen Skript du dekompilieren willst. Der Knackpunkt ist, dass das Skript mit "Aut2exe.exe" in eine ausführbare Datei kompiliert wurde. An dieser Datei hast du keinerlei Rechte und erklärst dich bei Nutzung derselben mit den Lizenzbedingungen des Eigentümers einverstanden. Und diese besagen klipp und klar: No Decompiling!
    Das heisst ebenso sonnenklar, dass auch das Dekompilieren eigener Skripte einen Lizenzverstoß darstellt.
    Wenn hier also jemand einen Grund hätte etwas angepisst zu reagieren, so wären wir das, weil es immer noch und wieder Leute gibt, denen das Wort Lizenz total am Arsch vorbeigeht!

  • Zur allgemeinen Kenntnisnahme - das Dekompilieren von mit AutoIt kompilierten Programmen wird nicht mehr im EULA untersagt. Was natürlich nicht bedeutet, das wir diesen Vorgang jetzt unterstützen.

    Zitat

    The definition of SOFTWARE PRODUCT does not includes any files generated by the SOFTWARE PRODUCT, such as compiled script files in the form of standalone executables.
    [...]
    Reverse engineering. You may not reverse engineer or disassemble the SOFTWARE PRODUCT.

    Quelle: http://www.autoitscript.com/autoit3/docs/license.htm

  • NightmarePhoenix, ein >8000 Programm erreichst du mit weniger als 5 Zeilen...


    Wieso immer ich? Ich hab doch garnix gemacht ;( :rofl:
    Ich weiß ja das das mit den >8000 Zeilen nicht wirklich schwer zu erreichen ist nach dem Compilen. Hab auch einfach mal ein fehlerhaftes Script kompiliert nur um zu sehen in wieweit sich die fehlermeldung ändert. Da sieht man ja das da sehr viele Zeilen zusammen kommen können.

    Zitat

    "Some people feel the rain, others just get wet." - Bob Marley

  • BugFix : Ich möchte mir von dir hier ungern unterstellen lassen, dass mir das Wort Lizenz "total am Arsch vorbeigeht".
    Ich glaube nicht, dass es völlig uninteressant ist wessen Script hier dekompiliert wird, da es hier um geistiges Eigentum geht und nicht nur um die EULA von AutoIT.

    Ich will hier jetzt keine Grundsatzdiskussion heraufbeschwören, aber ich dachte, dass das im Rahmen der Fehlersuche bei meinen eigenen Programmen vertretbar gewesen wäre, da es sich bei dem Script ja um mein eigenes geistiges Eigentum handelt.

    Danke an i2c für die Aufklärung.

    Es ging mir im Großen und Ganzen um eine Möglichkeit herauszufinden wie ich denn diese Fehlerzeile finde, wenn mein Code in der Rohform doch nur 220 Zeilen hat.
    Diese Frage wurde beantwortet.

    Dankeschön!

    2 Mal editiert, zuletzt von zawn (24. Januar 2014 um 08:50)

  • Hallo,
    zuerst einmal, ich will nichts dekompilieren.

    Aber da ich auch öfters Probleme mit irgendwelchen Fehlermeldungen habe, die seltsamerweise erst beim Ausführen der exe auftreten, habe ich da mal eine Frage.

    Wenn beim Auführen der exe, so eine Fehlermeldung auftaucht, wie kann ich daraus die Fehlerquelle erkennen ?

    Leider steht da ja nichts von Zeilennummer, include ö.ä.

    Ich weiß mittlerweile nur eins, wenn da eine höhere Zeilennummer erscheint als mein Script überhaupt Zeilen hat, so liegt das Problem meistens in einer der verwendeten Include-Datei.
    Nur wenn die viele Funktionen beinhaltet, ist suchen angesagt.

    Irgendwann, meistens nur durch Glück findet man dann eventuell auch die richtige Stelle.
    Und dann ist das meisten so, dass da irgend so ein ... eine Variable nicht deklariert hat.

    Gibt es da irgendeine legale Möglichkeit mehr aus so einer Fehlermeldung zu ersehen ?
    Z.B. Fehler in Zeilennummer 128 in Datei File.au3 o.ä.

    Und vor allem, warum erscheint so ein Fehler erst beim Ausführen der exe und nicht schon beim Ausführen des Scripts in z.B. SciTE ?

    MfG
    BigRox

  • BigRox:

    Du hast jetzt quasi genau das Gleiche nochmal gefragt, wie ich oben.
    Beim Kompilieren treten diese Fehler wohl nicht auf, da der Fehler nicht im Hauptablauf des Programms zu finden ist, sondern in irgendwelchen Funktionen, die eben nur unter bestimmten Bedingungen ausgeführt werden.

    Was dir i2c mit dem Link sagen will, ist dass water deine (und damit auch meine) Frage oben schon beantwortet hat.

    Du klickst rechts auf deine au3-Datei. Dann wählst du "Compile with Options". Dann in den Reiter "Obfuscator". Hier "Run Obfuscator before compilation" anhaken. Dann in das Feld "Obfuscator Parameters" folgendes schreiben "/striponly" (ohne Anführungszeichen).
    Dann klickst du unten auf "Compile Script". Du solltest nun im Scriptverzeichnis ein File finden, das "DeinScript_Obfuscated.au3" heisst.

    Wenn du dieses File anschaust, solltest du nun sehen, dass sich die Fehlerzeile hier finden lässt :)
    Ich hoffe, ich habe es richtig verstanden/erklärt.

    Grüße
    Patrick

    Edit: mit /striponly hat meine Datei dann zwar immerhin 740 Zeilen, aber die Zeile aus dem Errorcode (8326) kann ich hier trotzdem noch nicht lokalisieren :(
    Hab ich was vergessen?

    Einmal editiert, zuletzt von zawn (23. Januar 2014 um 13:32)

    • Offizieller Beitrag

    Um Dein Script zu debuggen, kopierst Du einfach alle Funktionen aus Deinen benutzen Includes in Dein Script (oder eine temporäre Version davon) und startest dann das Script.
    Dann hast Du die genaue Zeile, in der der Fehler auftritt.
    Also, wenn Du die Zeile

    [autoit]

    #include <OutlookEX.au3>

    [/autoit]


    in Deinem Script stehen hast, dann öffnest Du die UDF, kopierst alle Zeilen daraus und fügst diese Zeilen anstelle der Includezeile ein.
    Das machst Du mit allen Includes und Du hast das komplette Script.


  • Edit: mit /striponly hat meine Datei dann zwar immerhin 740 Zeilen, aber die Zeile aus dem Errorcode (8326) kann ich hier trotzdem noch nicht lokalisieren :(
    Hab ich was vergessen?

    Du musst die neue exe und die dazugehörige _Obfuscated.au3 haben es muss genau die gleich Version sein!
    Wenn nun bei der exe ein Fehler kommt dann kannst du in der gesicherten _Obfuscated.au3 die Zeile finden diese dann im original Script fixen und alles neu compilieren. Die neue _Obfuscated.au3 wider irgendwo sichern!
    Dein Error 8326 wird von einer exe kommen die ohne /striponly compiliert wurde damit geht das nicht.


    /edit

    zawn:
    Mal zum besseren Verständnis für dich, warum alle beim Thema Dekompilieren "abgehen":
    Es ist doch völlig uninteressant und spielt nicht die geringste Rolle wessen Skript du dekompilieren willst. Der Knackpunkt ist, dass das Skript mit "Aut2exe.exe" in eine ausführbare Datei kompiliert wurde. An dieser Datei hast du keinerlei Rechte und erklärst dich bei Nutzung derselben mit den Lizenzbedingungen des Eigentümers einverstanden. Und diese besagen klipp und klar: No Decompiling!
    Das heisst ebenso sonnenklar, dass auch das Dekompilieren eigener Skripte einen Lizenzverstoß darstellt.
    Wenn hier also jemand einen Grund hätte etwas angepisst zu reagieren, so wären wir das, weil es immer noch und wieder Leute gibt, denen das Wort Lizenz total am Arsch vorbeigeht!

    Ich kann mir doch von hier http://www.autoitscript.com/site/autoit/downloads/ das zip File laden dann entpacken und hab in \install\Aut2Exe\ die Aut2exe.exe und die Aut2exe_x64.exe die kann ich ausführen und machen damit was ich will. nirgends hab ich irgendwelche Lizenzen die ich lesen oder akzeptieren musste. Es könnte da in der Lizenz auch stehen das ich bei Benutzung Gebühren zahlen muss. Rechtlich gesehen interessiert das keinen. Lizenzen müssen klar ersichtlich sein nicht der User muss danach suchen. Das einzige ersichtliche ist ein (C) auf dem GUI welches für eigen Gebrauche sowieso keine Bedeutung hat.

    Einmal editiert, zuletzt von BiNu (23. Januar 2014 um 19:29)

  • Ein Blick in die Hilfedatei von SciTE4AutoIt3 erklärt auch noch folgendes:
    #Obfuscator_Parameters=/MergeOnly oder /MO
    Will produce a scriptfile as AUT2EXE includes in the Compiled EXE. This allows you to find the proper linenumber when errors are reported.

    Ein Blick in Jos AutoIt3Wrapper_beta_SciTE4AutoIt3 läßt auf ein undokumentierten Parameter blicken:
    #Obfuscator_Parameters=/report

    Was der Parameter macht, müßte man mal ausprobieren... vielleicht hilft das dann weiter.