PW verschlüsselt eingeben

  • Hi,


    ich habe vor, dass ein Kumpel, der 24/7 seinen Rechner laufen lässt, mich bei einem Spiel mitbottet.


    Ich muss ihn lediglich meine Configs schicken und er muss quasi nur auf Start klicken, dann öffnet sich eine Textbox (Hier Pw eingeben und mit Enter oder Ok bestätigen) und in dieser Textbox soll der Script mein Pw eingeben, allerdings soll dass Pw verschlüsselt werden, dass er nicht die Daten durch einen Decompiler bekommen kann.


    Ich weiß allerdings nicht, wie man einen Sendbefehl wie z.B.


    Send ("meinpasswort") so verschlüsselt, dass er es nicht bekommen kann.

  • Geht nicht. Nicht in AutoIt.


    Es gibt Decompiler ohne Ende, jeder der will nimmt deine .exe auseinander und hat dann das Passwort als plain text im Sourcecode. Das ist immer nur eine Frage der Energie die jemand da rein steckt, dein Passwort zu kriegen.


    Du kannst halt darauf bauen, dass "der Andere" keine Ahnung von Programmiersprachen hat und das Passwort verXORen oder so, dann kann man es nicht "einfach" auslesen.


    Aber jeder der Plan hat kann das nachvollziehen und die Verschlüsselung umkehren...

  • naja, eine einfache aber auch leicht knackbare "Verschlüsselung" ist z.B. die Cäsar Verschlüsselung. Sie ist so alt wie Cäsar selbst und deshalb auch schon recht bekannt, aber sie recht damit nicht jeder vollhorst dein PW bekommt.


    das problem ist, wenn jemand dein programm dekompiliert, findet er sowieso dein pw raus. wenns nicht iinplain-text dasteht, steht ein paar zeilen weiter der entschlüsselalgorithmus...

  • Leute? Es geht um einen FREUND von ihm, der wird doch wohl nicht ALLES werk drann setzen 1. Account zuknacken, oder?


    Sorry, musste Raus. :) Ansonsten habt ihr ziemlich Kuriose Freunde, würd ich sagen.


    hab Leider nichts zum Thema zusagen, bitte nicht Flamen es soll nur zur Verständnis dienen.

  • Ok, gehen wir mal davon aus dass dein Freund dir entweder nichts böses will oder keine Ahnung von AutoIt hat.


    Hier ist ein sehr, sehr (!) simples Script zum Verschlüsseln:



    Das Script macht dein Passwort zumindest "unleserlich", indem es die Zeichen zuerst in umgekehrter Reihenfolge anordnet, dann in Hexwerte umwandelt und schließlich mit der AutoIt internen Crypt Funktion verschlüsselt. Aus "test" wird somit "588D382D7F395102A3A5DBA8F7C6DC63".


    Das Programm, welches du deinem Freund gibst sollte dann in etwa so aussehen:


    Code
    1. #include <String.au3>
    2. $passwort = "588D382D7F395102A3A5DBA8F7C6DC63"
    3. Consolewrite("Passwort: "&(_StringReverse(_HexToString(_StringEncrypt(0,$passwort,"hochgeheim678&f")))))
    4. ;Dies ^ ist die Problemzeile


    Dann am besten einen Obfuscator benutzen und mit Themida packen. Das ist dann "relativ" sicher. Aber eben nur relativ. Das Problem ist, wenn jemand Themida und den Obfuscator knackt und an den Sourcecode kommt kann er die oben angegebene Problemzeile ausnutzen und hat das Passwort.


    Das Problem an der Sache ist, das obige Script verstößt gegen das sogenannte "Kerckhoff-Prinzip". Das ist Grundlage jeder Kryptographie. Es besagt (ich gebe mal aus dem Gedächnis wieder), dass die Sicherheit eines Codesystems niemals nur von der Geheimhaltung der Verschlüsselungsmethode abhängen darf, sondern von der Geheimhaltung des Schlüssels. Da du einem automatischen Skript zwingender Weise den Schlüssel und die Methode mitteilen musst, ist es immer nur eine Frage der Zeit bis jemand das Passwort bekommt.


    Selbst wenn du das Passwort von einem Server lädst muss dein Client den Entschlüsselungsalgorythmus beinhalten und kann somit manipuliert werden wenn jemand den Client reversed.


    Mein Tipp: Sag dem Freund entweder gleich das Passwort und vertrau ihm - oder lass es ganz bleiben.