Compile/Decompile

  • Moin Moin

    Es giebt ein Tool mit dem kann man OHNE passphrase scripts decompilen! ich möchte hier nicht dieses tool verbreiten sondern eine frage darüber stellen.
    ich hab damit ma bissel gespielt und habe compilierte scripte gefunden die zwar decompiliert werden können, aber danach NICHT mehr leserlich sind. z.B. sieht der code dann lauter solcher sachen aus:

    Spoiler anzeigen
    [autoit]

    Global $A0DE7012040 = A5300003C11($OS[5018]), $A0BE7114C21 = A5300003C11($OS[5019]), $A31E7210C12 = A5300003C11($OS[5020]), $A3AE7315C62 = A5300003C11($OS[5021]), $A03E7415B4A = A5300003C11($OS[5022]), $A20E751234E = A5300003C11($OS[5023])
    Global $A01E761324D = A5300003C11($OS[5024]), $A40E7714D1D = A5300003C11($OS[5025]), $A54E7811808 = A5300003C11($OS[5026]), $A1CE7911E1A = A5300003C11($OS[5027]), $A31E7A1002D = A5300003C11($OS[5028]), $A2EE7B15707 = A5300003C11($OS[5029]), $A48E7C11526 = A5300003C11($OS[5030]), $A4EE7D12523 = A5300003C11($OS[5031]), $A04E7E15141 = A5300003C11($OS[5032]), $A24E7F13B2D = A5300003C11($OS[5033]), $A0EF7013135 = A5300003C11($OS[5034]), $A4BF7112D06 = A5300003C11($OS[5035]), $A08F7215732 = A5300003C11($OS[5036]), $A24F7310018 = A5300003C11($OS[5037]), $A11F7411A5B = A5300003C11($OS[5038]), $A0EF7514658 = A5300003C11($OS[5039]), $A14F7612D36 = A5300003C11($OS[5040]), $A34F7712156 = A5300003C11($OS[5041]), $A53F7815037 = A5300003C11($OS[5042]), $A29F7915345 = A5300003C11($OS[5043]), $A07F7A14A35 = A5300003C11($OS[5044]), $A19F7B12155 = A5300003C11($OS[5045]), $A53F7C1163F = A5300003C11($OS[5046]), $A55F7D11155 = A5300003C11($OS[5047]), $A49F7E12C1A = A5300003C11($OS[5048]), $A05F7F11644 = A5300003C11($OS[5049]), $A5508011D44 = A5300003C11($OS[5050]), $A5408114F47 = A5300003C11($OS[5051]), $A5708210004 = A5300003C11($OS[5052]), $A0908310F38 = A5300003C11($OS[5053]), $A3808411A21 = A5300003C11($OS[5054]), $A5B08511114 = A5300003C11($OS[5055]), $A260861353D = A5300003C11($OS[5056]), $A1808714105 = A5300003C11($OS[5057]), $A140881064F = A5300003C11($OS[5058]), $A4008914827 = A5300003C11($OS[5059]), $A5908A12A04 = A5300003C11($OS[5060]), $A5C08B1603A = A5300003C11($OS[5061]), $A2D08C15B35 = A5300003C11($OS[5062]), $A3608D11E0C = A5300003C11($OS[5063]), $A0408E13A0E = A5300003C11($OS[5064]), $A3F08F16202 = A5300003C11($OS[5065]), $A631801285E = A5300003C11($OS[5066]), $A5118110444 = A5300003C11($OS[5067]), $A461821584B = A5300003C11($OS[5068]), $A3818311B32 = A5300003C11($OS[5069]), $A5418411D16 = A5300003C11($OS[5070])
    Global $A2F18515D30 = A5300003C11($OS[5071]), $A4818612A56 = A5300003C11($OS[5072]), $A3018712E52 = A5300003C11($OS[5073]), $A5518814852 = A5300003C11($OS[5074]), $A4B1891160C = A5300003C11($OS[5075]), $A0918A1103F = A5300003C11($OS[5076])
    Global $A1618B11627 = A5300003C11($OS[5077]), $A6218C1270E = A5300003C11($OS[5078]), $A6318D14B5A = A5300003C11($OS[5079]), $A5518E1454D = A5300003C11($OS[5080]), $A4018F14126 = A5300003C11($OS[5081]), $A5228010C19 = A5300003C11($OS[5082]), $A1128115913 = A5300003C11($OS[5083]), $A182821601B = A5300003C11($OS[5084]), $A3328311716 = A5300003C11($OS[5085]), $A002841011C = A5300003C11($OS[5086]), $A132851255C = A5300003C11($OS[5087]), $A3B2861590D = A5300003C11($OS[5088]), $A2228710A56 = A5300003C11($OS[5089]), $A582881461E = A5300003C11($OS[5090]), $A3D2891461D = A5300003C11($OS[5091]), $A2E28A15437 = A5300003C11($OS[5092]), $A1028B11331 = A5300003C11($OS[5093]), $A4628C12E2C = A5300003C11($OS[5094]), $A0F28D15D33 = A5300003C11($OS[5095]), $A3728E13703 = A5300003C11($OS[5096]), $A2428F11542 = A5300003C11($OS[5097]), $A5138013539 = A5300003C11($OS[5098]), $A2B38114F62 = A5300003C11($OS[5099]), $A1A38212618 = A5300003C11($OS[5100]), $A0F3831444C = A5300003C11($OS[5101]), $A5A38414908 = A5300003C11($OS[5102]), $A1238511D36 = A5300003C11($OS[5103]), $A4938614C2C = A5300003C11($OS[5104]), $A3A38716311 = A5300003C11($OS[5105]), $A2E38815C03 = A5300003C11($OS[5106]), $A1138915F57 = A5300003C11($OS[5107]), $A3038A14F09 = A5300003C11($OS[5108])
    Global Const $A4D80002F14 = Number($A3980104362)
    Global Const $A1980203E21 = Number($A4380300D08)
    Global Const $A4380404C0A = Number($A4880503105)
    Global Const $A4580601411 = Number($A028070030A)
    Global Const $A0580801B47 = Number($A5C80902A4E)

    [/autoit]


    wenn jemand weiss wie man des beim copilieren irgendwie aktivieren kann(falls es des überhaupt giebt) oder sonnst was darüber weiss, bin über hilfe erfreut!

    EDIT 1:
    zweites scriptbeispiel hier (versteht man vlt dann was ich meine):

    Spoiler anzeigen
    [autoit]

    Func A0C00103F37($A1BD4305A48, $A10D440424D = 2035711, $A56D4501352 = 1)
    If Not IsDeclared("SSA0C00103F37") Then
    Global $A1BD4604749 = A5300003C11($OS[551]), $A0ED470154C = A5300003C11($OS[552]), $A10D4904404 = A5300003C11($OS[553]), $A41D4A02950 = A5300003C11($OS[554]), $A5ED4B04E58 = A5300003C11($OS[555]), $A35D4C03251 = A5300003C11($OS[556]), $A20D4E03007 = A5300003C11($OS[557]), $A1AD4F06217 = A5300003C11($OS[558]), $A02E4003B63 = A5300003C11($OS[559]), $A21E410291A = A5300003C11($OS[560]), $A5AE420213D = A5300003C11($OS[561]), $A45E430090C = A5300003C11($OS[562]), $A48E4404451 = A5300003C11($OS[563]), $A17E4503919 = A5300003C11($OS[564]), $A1AE4601309 = A5300003C11($OS[565]), $A07E4703744 = A5300003C11($OS[566]), $A63E4800200 = A5300003C11($OS[567])
    Global $SSA0C00103F37 = 1
    EndIf
    If Not ProcessExists($A1BD4305A48) Then
    SetError(Number($A1BD4604749))
    Return Number($A0ED470154C)
    EndIf
    Local $A0AD4801828[Number($A10D4904404)] = [DllOpen($A41D4A02950)]
    If @error Then
    SetError(Number($A5ED4B04E58))
    Return Number($A35D4C03251)
    EndIf
    Local $A21D4D00456 = DllCall($A0AD4801828[Number($A20D4E03007)], $A1AD4F06217, $A02E4003B63, $A21E410291A, $A10D440424D, $A5AE420213D, $A56D4501352, $A45E430090C, $A1BD4305A48)
    If @error Then
    DllClose($A0AD4801828[Number($A48E4404451)])
    SetError(Number($A17E4503919))
    Return Number($A1AE4601309)
    EndIf
    $A0AD4801828[Number($A07E4703744)] = $A21D4D00456[Number($A63E4800200)]
    Return $A0AD4801828
    EndFunc

    [/autoit]

    mfg

    2 Mal editiert, zuletzt von K1773R (15. März 2009 um 06:50)

  • sry für doppelpost editieren bugt rum -.-

    hab des nun gemacht nur leider bekomm ich n fehler beim ausführen:

    Code
    ******Obfuscated.au3 (3801) : ==> Subscript used with non-Array variable.:
    MouseClick($A31CC104629, $A23BC80065A[Number($A04CC20164D)], $A23BC80065A[Number($A1FCC304F56)], Number($A2ACC400455), Number($A2CCC504606))
    MouseClick($A31CC104629, $A23BC80065A^ ERROR

    Wenn ich es ned Obsfuscate dann geht es ohne probleme... einer ne ahnung was da fürn pro sein könnte? oder muss ich sonnst noch iwas machen?

  • @K1773R

    Wenn man dafür sorgt das man es nicht mehr richtig lesen kann oder man es nicht mehr decompileren kann, dann hat beides einen Grund.

    Am besten erst den Obfuscator nehmen und dann dafür sorgen, das man es nicht mehr decompileren kann, bzw. das nur noch sehr sehr schwer kann. Also das man einiges von mir nicht mehr decompileren kann liegt daran, das ich auf Arbeit nicht möchte, das der Versuch es zu decompileren erfolgreich ist. Außerdem mit dem aktuellen AutoIt geht es ja eh "nicht". ;)

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • ich hab vorher von nem programm geredet was bisher noch jedes compilierte autoit script decompilen konnte.

    wegen meiner fehlermeldung. die fehlermeldung giebts nur wenn ich den obfuscater laufen lasse
    also wenn ich n häcken bei Run "Obfuscator before compilation." mache.

    • Offizieller Beitrag

    Ohne Script kann man das nicht nachvollziehen. Hast Du die Hilfe zum Obfuscator gelesen:

    Ansonsten mal in die Datei "Obfuscator.Log" schauen, was dort eingetragen ist.

  • Hallo!

    Um welches Tool handelt es sich denn? Würde mich mal interessieren...

    Oscar : Darf ich die Funktionen generell nicht verwenden, wenn ich Obfuscator benutze?

    Und wenn ich Obfuscator benutze, wird ja eine lib-Datei erstellt. Muss ich die zur Exe mitliefern?

  • Zitat von peethebee

    Muss das sein?


    Muss nicht, aber es gibt hier auch AutoIt-Programmierer, die darauf vertrauen, dass man kompilierte Exe-Dateien ab Version 3.x.y nicht mehr dekompilieren kann. Dass es möglich ist - ob legal oder illegal - ist zwar traurig aber wahr.

    Hast aber Recht, der Link hatte da nichts zu suchen. Sorry dafür :(

    <3 Jetzt, Hier, Immer <3

  • Was ist an solchen Decompilern eigentlich illegal?

    Solange der Programmierer keinen Verweis darauf gibt, dass er dass nicht Decompiliert haben will, kann man das doch machen, wenn man den Code nicht für sich benutzt (-> Urheberrecht) :?:

  • Das ist verboten, im englischen Forum wird man gebannt :!:

    Zitat von http://www.autoitscript.com/forum/index.php?showtopic=33797&amp;st=240&amp;p=637570&amp;#entry637570

    JaYDev aka Krypton88 ... Permanent ban for de-compiling someones intellectual property.

    Charges may follow from AutoIt for breaking the license agreement.


    Das steht auch in der Lizenz ... sowas sollte man lesen

    Zitat von http://www.autoitscript.com/autoit3/docs/license.htm

    Reverse engineering. You may not reverse engineer or disassemble the SOFTWARE PRODUCT or compiled scripts that were created with the SOFTWARE PRODUCT.

  • Sry, hatte ich nicht so drafu geachtet, wahrscheinlich ist die Zeile *oberlesen* worden :D

    Aber darf ich das denn zu meinem eigenem Schutz machen?

  • leider kann das teil alle scripts ab 2.6.3 decompilen )=

    das mit dem obfuscator funzt bei mir ned -.- ohne geht alles wunderbar aber sobald ich obfuscaten will krieg ich tausende errors )=

  • Was mir bei der Verwendung des Obfuscators aufgefallen ist, ist das man REAL Zahlenwerte wie 0.123 NICHT als .123 schreiben darf. Auch ein paar andere abkürzende Schreibweisen haben Probleme verursacht, weiß aber leider nicht mehr genau welche das waren. Es hatte irgendwie was mit Strings und der Verwendung von " oder ' als Stringdelimiter zu tun. Ich *glaube* mich zu erinnern, das ' Probleme machte.

  • danke

    kann geschlossen weden

    öhm ja irgenwelche probleme oO

    des is mein thread und das problem is ned gelöst deshalb status auch noch auf offen ;)

    EDIT 1:

    kann es sein das der Obfuscator mit iniread oder wingetpos probleme hat?