String verschlüsseln



  • Wollte mal nach Fragen welche Methode sich am besten eignet um Strings zu verschlüsseln bzw wieder zu entschlüsseln.
    Will halt das mein Programm nur mit verschlüsselten Strings arbeitet und diese ggf. bei Bedarf entschlüsselt. Ich möchte in meinem Quelltext also keine normalen Strings, sondern nur verschlüsselte die vor der verwendung vom Programm selbst erst entschlüsselt werden!
    Hab da an XOR gedacht, jedoch muss sich da doch der String im normal Zustand im Code befinden, oder? Möchte es gerne so machen das ich mit "Programm A" alle sensiblen Strings verschlüssel und die verschlüsselten Strings in mein Haupt "Programm B" eintrage, Programm B sollte aber wissen wie man diese Strings entschlüsselt um damit arbeiten zu können.
    Das ganze hab ich nur vor weil ich nicht möchte das man Strings mit dem Debugger so einlesen kann oder modifizieren kann. 🙂
    Ich hoffe da gibt es eine kleine Funktion, sollte aber nichts großes sein, was einfaches reicht. 🙂



  • Was du vor hast ist zwar durchaus möglich, aber letztendlich kann man mit einem Debugger auch einfach die Funktion sehen, die das Ganze wieder entschlüsselt. Das hilft also nur sehr begrenzt. Warum soll man die Strings nicht auslesen können?

    Wegen der Funktion, xor besteht eigentlich nur aus:

    buf[i] = buf[i] ^ key[i % keylen]
    


  • Schlussendlich kann der Angreifer nach der decryption ein breakpoint setzen und kommt so wieder zu entschlüsselten Text!



  • Hi sorry aber da fällt mir eine Frage ein: Wenn der Debugger gerade hält, zB. OllyDbg, dann laufen andere Threads aber weiter, oder nicht? Sonst könnte man verschiedene Threads machen und überall verschiedenst prüfen, ob debugged wird...


  • Mod

    Wenn ein Debugger einen Break-Point hat werden normalerweise alle Threads des Prozesses angehalten.



  • Äh, und wenn man einen step macht, dann könnten dabei irgendwelche Threads auch ein bis X steps machen?


  • Mod

    Jupp, oder ein anderer Thread könnte Deinen nächsten Single-Step BP auslösen 😉



  • vogelkot schrieb:

    Das ganze hab ich nur vor weil ich nicht möchte das man Strings mit dem Debugger so einlesen kann oder modifizieren kann. 🙂

    Alternativ oder zusätzlich könntest Du versuchen gegen das Debuggen etwas zu unternehmen.
    Suche mal nach anti debug lib. oder so... wirste sicher was finden.
    Oder schau mal bei mir vorbei. Dies ist ein kleines Project das sich weiterentwickelt.

    http://vpn23.homelinux.org/antidebuggerlib.c
    http://vpn23.homelinux.org/antidebuggerlib.h
    http://vpn23.homelinux.org/antidebuggerlib_test.c

    Noch sehr schlecht dokumentiert sorry. Aber bei fragen kannste Dich ja melden.



  • vogelkot schrieb:

    Das ganze hab ich nur vor weil ich nicht möchte das man Strings mit dem Debugger so einlesen kann oder modifizieren kann. 🙂

    Warum?


Anmelden zum Antworten