Verschlüsselungsmöglichkeiten Autoit

  • Hallo ihr,

    Ich habe mich vor langem mal mit meinem Chiffrierungstool befasst.
    Leider ist mir meine HD abgeraucht, sodass ich nur meine Alpha Backups hab.

    Meine Geschichte, wozu das Tool genutzt wird:
    Wir haben bei Die-Stämme (Browsergame) einen Spion im Stamm. Nun mächten wir aber nicht, dass er alles lesen kann. Also ist mir die Idee gekommen: Verschlüssel einfach alle Texte, die geschrieben werden, ein paar mal und das wird dann gepostet. Also soll auch nur der, der das Tool hat, durch die paar Verschlüsselungsalgo´s durchkommen und somit den Ursprungstext lesen können.

    Mein bisheriges Tool:

    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <String.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Enigma = GUICreate("Enigma", 442, 413, 344, 193)
    $menu1 = GUICtrlCreateMenu("Codierung")
    $menu11 = GUICtrlCreateMenuitem("Info", $menu1)
    $menu2 = GUICtrlCreateMenu("Other")
    $menu21 = GUICtrlCreateMenuitem("About", $menu2)
    $head = GUICtrlCreateLabel("DS-Chiffrierungstool", 61, 20, 320, 41)
    GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    $title_eingabe = GUICtrlCreateLabel("Eingabe:", 32, 70)
    $eingabe = GUICtrlCreateInput("", 32, 88, 385, 89)
    GUICtrlSetData(-1, "")
    $title_ausgabe = GUICtrlCreateLabel("Ausgabe:", 32, 206)
    $ausgabe = GUICtrlCreateInput("", 32, 224, 385, 89)
    GUICtrlSetData(-1, "")
    $code = GUICtrlCreateButton("Verschlüsseln", 36, 356, 121, 25, $WS_GROUP)
    $copyright = GUICtrlCreateLabel("Scripted by UWC | Schrubber @ 2009", 8, 392, 184, 17)
    $decode = GUICtrlCreateButton("Entschlüsseln", 165, 356, 121, 25, $WS_GROUP)
    $quit = GUICtrlCreateButton("Quit", 295, 356, 121, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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

    Case $code
    GUICtrlSetData($ausgabe, '')
    Dim $arstring = StringSplit(GUICtrlRead($eingabe), ''), $str = ''
    For $i = 1 To UBound($arstring) -1
    $str &= StringUpper(Hex(Asc($arstring[$i]), 2)) & ' '
    Next
    GUICtrlSetData($ausgabe, $str)

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

    Case $decode
    GUICtrlSetData($ausgabe, '')
    Dim $chstring = StringSplit(GUICtrlRead($eingabe), ''), $str2 = ''
    For $ii = 1 To $chstring[0] Step 3
    $hex = $chstring[$ii] & $chstring[$ii+1]
    $str2 &= Chr(Dec($hex))
    Next
    GUICtrlSetData($ausgabe, $str2)

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

    Case $menu21
    MSGBox(1, "Chiff-Info", "DS-Chifftool" & @CRLF & "Dieses Tool chiffriert den Text durch viele Verschlüsselungsalgorythmen.")

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

    Case $menu21
    MSGBox(1, "About", "DS-Chiffrierungstool" & @CRLF & "Version: Alpha 1.0" & @CRLF & "Scripted by Schrubber")

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

    Case $quit
    Exit
    EndSwitch

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

    WEnd

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

    Das Tool verschlüsselt mir das nun 1x ins HEX System. Ich mächte aber soviele versch. einbinden und auch so oft es geht, wie nur möglich.

    Meine 1. Frage: Welche Verschlüsselungsmöglichkeiten beitet ir Autoit?
    Meine 2. Frage: Wie müsste ich den Quellcode dann umschreiben, damit er den neuen Wert von $ausgabe erneut verschlüsselt?


    Ich hoffe, Ihr könnt mir helfen.
    Und nein, es ist kein Bot :/


    Rubberducky

    Einmal editiert, zuletzt von Rubberducky (16. Januar 2010 um 00:15)

    • Offizieller Beitrag

    Schau dir mal _StringEncrypt an. Ich halte es auch für unnötig, das du mehrfach verschlüsseln mußt, ausser wen euer Spion ein Krypto Meister ist. Sehr unwahrscheinlich.

  • Hallo,
    das von Raupi angesprochene _stringencrypt() sollte erste Wahl sein, ansonsten wäre noch eine einfache XOR-Verschlüsselung mit einem großen Schlüssel (lustig ist eine öffentlich zugängliche Bilddatei^^) möglich. Ein einfaches XOR mit einem Zufalls-Schlüssel ist nicht zu knacken, für einfache Texte habe ich HIER ein Beispiel gemacht.

  • Oder benutz' die _Crypt-Funktionen, damit kannst Du z.B. AES und DES benutzen, da ist meiner Meinug nach mehrfaches Verschlüsseln unnötig.

  • Gut, hab mich für die von Andy beschriebene XOR Verschlüsselung entschieden.

    Funktioniert alles perfekt, wollte dort nun ne Mail-Funktion einbauen.
    Habe dort auch alles hinbekommen (mit kleinen anfänglichen Problemen), nur ist mein Problem:


    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Inet.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Enigma = GUICreate("Die Stämme - Chiffrierungstool", 442, 413, 344, 193)
    $menu1 = GUICtrlCreateMenu("Datei")
    $menu11 = GUICtrlCreateMenuitem("Info", $menu1)
    $menu2 = GUICtrlCreateMenu("Other")
    $menu21 = GUICtrlCreateMenuitem("About", $menu2)
    $head = GUICtrlCreateLabel("DS-Chiffrierungstool", 61, 20, 320, 41)
    GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    $title_eingabe = GUICtrlCreateLabel("Eingabe:", 32, 70)
    $eingabe = GUICtrlCreateInput("", 32, 88, 385, 89)
    GUICtrlSetData(-1, "")
    $title_ausgabe = GUICtrlCreateLabel("Benutzter Schlüssel:", 32, 206)
    $key = GUICtrlCreateInput("", 32, 224, 385, 89)
    GUICtrlSetData(-1, "")
    $code = GUICtrlCreateButton("Verschlüsseln / Entschlüsseln", 46, 356, 180, 25, $WS_GROUP)
    $copyright = GUICtrlCreateLabel("Scripted by UWC | Schrubber @ 2009", 8, 392, 184, 17)
    $quit = GUICtrlCreateButton("Quit", 275, 356, 121, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    $s_SmtpServer = "mein_smtp_server"
    $s_FromName = "KeineAhnung"
    $s_FromAddress = "lol@rofl.com"
    $s_ToAddress = "meine_addy"
    $s_Subject = "Meine Test UDF"
    $s_Body = "Mein Text"
    $s_UName = "mein_loginacc"
    $s_PWD = "mein_loginpw"

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

    if guictrlread($eingabe)<>"" Then GUICtrlSetData($key, _generatekey(guictrlread($eingabe)))

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

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

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

    case $code
    $text=guictrlread($eingabe)
    $Key=guictrlread($key)
    Sleep(3000)
    GUICtrlSetData($eingabe, _encrypt_decrypt($text,$key))

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

    Case $menu11
    MSGBox(1, "Chiff-Info", "DS-Chifftool" & @CRLF & "Dieses Tool nutzt die XOR Verschlüsselung mit Hilfe eines Keys!")

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

    Case $menu21
    MSGBox(1, "About", "DS-Chiff" & @CRLF & "Version: Alpha 1.0" & @CRLF & "Scripted by UWC | Schrubber" & @CRLF & "http://www.board-uwcrew.eu")

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

    Case $quit
    _closeit()
    EndSwitch
    WEnd

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

    func _generatekey($text)
    $key=""
    for $i=1 to stringlen($text)
    do
    $zeichen=random(32,255,1)
    until $zeichen<>stringmid($text,$i,1)
    $key &= chr($zeichen)
    Next
    return $key
    endfunc

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

    func _encrypt_decrypt($text,$key)
    $encrypt_decrypt=""
    if guictrlread($key)="" Then
    GUICtrlSetData($key, _generatekey(guictrlread($eingabe)))
    endif

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

    for $i=1 to stringlen($text)
    $encrypt_decrypt&=chr(BitXOR(asc(stringmid($text,$i,1)),asc(stringmid($key,$i,1))))
    Next
    return $encrypt_decrypt
    endfunc

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

    func _closeit()
    Dim $as_body[4]
    $as_body[0] = "Eingabe:" & @CRLF
    $as_body[1] = GUICtrlRead($eingabe) & @CRLF
    $as_body[2] = "Schlüssel:" & @CRLF
    $as_body[3] = GUICtrlRead($key) & @CRLF
    $Response = _INetSmtpMailAuth ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_UName, $s_PWD, $s_Subject, $as_body)
    Exit
    EndFunc

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


    Es wird kein Schlüssel mehr generiert??
    Ich kann da so oft draufdrücken, wie ich lustig bin, da kommt kein Schlüssel mehr :/


    Wäre für jede Hilfe dankbar :)
    Rubberducky


    Edit:
    Hat sich erledigt. Hatte die Variable key 2x deklariert, obwohl sie eigentlich unabhängig voneinander Werte haben sollten.
    Kann geclosed werden :)

    Einmal editiert, zuletzt von Rubberducky (16. Januar 2010 um 00:15)

  • Wieso machst Du es nicht abhängig, ob die Datei funktioniert oder nicht, wie die MAC-ADR ist. ISt die MAC-ADR richtig, dann starten, ansonsten nicht starten.

    Ist nur eine Idee, aber diese wäre mit AutoIt sehr gut umsetzbar. Ist klar, wenn jemand an die Daten möchte, dann bekommt er sie leider auch, wenn ausgereichen kriminelle Energie (VERBOTEN) vorhanden ist.

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr