Easy Obfuscator (macht das lesen deutlich schwerer)

  • Hallo liebe AutoIT Community,

    ich wollte einen Obfuscator machen, der es ALLEN Scriptkiddies erschwert, irgendwelche scripts zu lesen ;)

    Funktionieren tut das wie folgt, ich habe schon Programm 1 geschrieben, das uns die Variablen (zufällig) benennt:


    [autoit]


    Global $Zahl=0

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

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("GenVariable", 205, 149, 239, 172)
    $Label1 = GUICtrlCreateLabel("Obfuscator Generator", 0, 0, 204, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Variable = GUICtrlCreateInput("Variable", 8, 32, 193, 21)
    $Button1 = GUICtrlCreateButton("Obfuse zur Variable", 8, 56, 187, 33, $WS_GROUP)
    $Ausgabe = GUICtrlCreateInput("Ausgabe", 8, 96, 193, 21)
    $Button2 = GUICtrlCreateButton("Speichern in Ini", 8, 120, 187, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Button1
    $AusgebVariable = Random(1, 500000, 1)
    GUIctrlSetData ($Ausgabe, "$"&$AusgebVariable&" = "&'"'&GUICtrlRead($Variable)&'"')

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

    Case $Button2
    IniWrite ("Values.INI", "VALUES", "Global $"&$AusgebVariable, GUICtrlRead($Variable))

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

    EndSwitch
    WEnd

    [/autoit]

    Das wäre das Tool um uns Variablen zu generieren, die wir in einer .INI abspeichern, is noch die VORVERSIOn, in der Full macht der dann sofort RANDOM variables für a-z und 0-9 usw ^^

    Das is die leichteste übung, jetzt kommt der eigentlich Obfuscator...
    Er soll:


    Einen Text, den man eiträgt (meinetwegen für nen FTP-Server die Daten) so umbenennen, das sie meinetwegen $A&$B&$C heißen , damit man es schwerer hat sie zu suchen (im obfuser wird $A&usw dannals $120418 {z.B.}dargestellt).
    So kann man auch bestimmte FUNCS schützen.

    Denn ich denke mal, kein Script kiddie wird 5 H daran sitzen wollen, dieses script zu entschlüsseln, weil sie jede Variable umbenennen und ACH GOTTCHEN nicht noch alles machen müssen...

    Zudem wäre meine Frage, ist das überhaupt möglich?!?
    Kann man denn eine FUNKTION, meinetwegen GUICtrlRead so verschlüsseln, oder würde das auch nicht gehen ?!?!?

    Also, hauptsächlich wäre dieses tool für leute gedacht, die daten von nem geheimen FTP beziehen ^^

    MFG EliteMattthias

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal


  • Kann man denn eine FUNKTION, meinetwegen GUICtrlRead so verschlüsseln, oder würde das auch nicht gehen ?!?!?

    ne die Autoit Internen Funks kann man nicht verschlüsseln aber die alle UDF´s [also alle Funktionen die Komplett in autoit geschrieben sind] kann man mit einem Random nahmen versehen


    Also, hauptsächlich wäre dieses tool für leute gedacht, die daten von nem geheimen FTP beziehen ^^

    mann sollte es dringlichst vermeiden FTP zugriffs daten in einen script zu packen

  • Zitat

    Kann man denn eine FUNKTION, meinetwegen GUICtrlRead so verschlüsseln, oder würde das auch nicht gehen ?!?!?


    Man kann auch Execute verwenden um die eigentliche Funktion zu verschleiern, man muss allerdings immer beachten, dass das irgendwann die Geschwindigkeit des Scripts beeinträchtigt.

    • Offizieller Beitrag

    Du willst alle Variablen aus einem AutoIt-Sourcecode?

    Sind nur ein paar Zeilen:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    $sPath = FileOpenDialog('Sourcecode auswählen', '', 'AutoIt Dateien (*.au3)', 3)
    If Not FileExists($sPath) Then Exit
    $sSource = FileRead($sPath)
    $aVariable = StringRegExp($sSource, '(\$\w+)', 3)
    $aVariable = _ArrayUnique($aVariable)
    _ArrayDisplay($aVariable)

    [/autoit]