Decomplelieren



  • Indem du es zur Laufzeit wieder entschlüsselst. ... und den Schlüssel gut versteckst.


  • Mod

    Swordfish schrieb:

    Indem du es zur Laufzeit wieder entschlüsselst. ... und den Schlüssel gut versteckst.

    Nee, das ist security through obscurity. Doof. 👎

    @Threadersteller: Was soll das erreichen? Eine Programmdatei soll sich bei einem Server authentifizieren können, aber der Nutzer des Programms soll das nicht dürfen? Wozu soll das gut sein?



  • Das was "hash" erklärt hat geht in Deinem Fall nicht. Du willst ja das Passwort speichern und nicht vom Benutzer Abfragen und vergleichen... dann würde das mit dem Hash gehen.

    Die erste Frage lautet: Woher kommt denn das Passwort, welches Du speichern willst? Vom Benutzer? Muss das Password nur von diesem Benutzeraccount wieder ausgelesen werden können?
    Falls ja, dann rate ich Dir zu den Methoden:
    - CryptProtectData: http://msdn.microsoft.com/en-us/library/aa380261
    - CryptUnprotectData: http://msdn.microsoft.com/en-us/library/aa380261

    Damit kannst Du das Passwort verschlüssel und wieder (im selber Benutzerkontext) entschlüsseln...

    Wenn Du allerdinge das Passwort schon mit ausliefern willst, so musst Du es eben irgendwie verschlüsseln und beim ausführen wieder entschlüsseln...
    Das kannst Du z.B. mit
    CrpytDecrypt
    http://msdn.microsoft.com/en-us/library/aa379913
    machen.
    Den Key musst Du zuvor irgendwo abgelegt haben; am besten auch nicht direkt (z.B: XOR "verschlüsselt")... oder verwendest einen Hash-Wert von einem "Passwort" was dann als Key verwendet wird...
    Und dann mit CryptImportKey
    http://msdn.microsoft.com/en-us/library/aa380207
    einlesen...

    Hier ein Beispiel:
    http://msdn.microsoft.com/en-us/library/aa382044



  • SeppJ schrieb:

    Swordfish schrieb:

    Indem du es zur Laufzeit wieder entschlüsselst. ... und den Schlüssel gut versteckst.

    Nee, das ist security through obscurity. Doof. 👎

    Ja ne, is klar. Plan B für OPs ansprüche?



  • Ich will einfach das das Passwort welches ich zum MySqldatenbank aufbau verwende um die Daten der user abfragen zu können, d.h das passwort soll der benutzer nie vor gesicht bekommen. Das ist nur zum "einloggen" damit das programm ü+berhaupt an daten rankommen kann. Ich hoffe ich konnte es verständlich erklären.



  • Alle Daten, die du in deinem Programm einbettest, können auch mit mehr oder weniger Aufwand rekonstruiert werden. Punkt.



  • DevBeat schrieb:

    Ich will einfach das das Passwort welches ich zum MySqldatenbank aufbau verwende um die Daten der user abfragen zu können, d.h das passwort soll der benutzer nie vor gesicht bekommen. Das ist nur zum "einloggen" damit das programm ü+berhaupt an daten rankommen kann. Ich hoffe ich konnte es verständlich erklären.

    Du brauchst ein Serverprogramm.



  • Leg deine Anmeldedaten in den Quelltext und mache einen XOR oder bei mehr Paranoia eine der hier genannten Crypt/Decrypt Funktionen.

    Der Personenkreis, der in der Lage ist eine exe zu dekompilieren ist auch bei Programmierern sehr sehr klein. Es gibt dann ganz sicher einfachere Wege an die Datenbank zunkommen 🙂



  • straight schrieb:

    Leg deine Anmeldedaten in den Quelltext und mache einen XOR oder bei mehr Paranoia eine der hier genannten Crypt/Decrypt Funktionen.

    Der Personenkreis, der in der Lage ist eine exe zu dekompilieren ist auch bei Programmierern sehr sehr klein. Es gibt dann ganz sicher einfachere Wege an die Datenbank zunkommen 🙂

    du untertreibst. er mag klein sein, aber er ist groß genug.

    leute ich kanns nicht glauben, wie ihr hier die leute verarscht. es geht hier um VERSCHLÜSSELUNG von irgendwelche anmeldedaten. sowas nimmt man nicht auf die leichte schulter! nix mit xor, und auch nix mit paranoia.

    stellt euch doch mal vor, dass er/sie in einem unternehmen arbeitet und eure dummen ratschläge befolgt. dann wird das unternehmen gehackt, weils eben doch nicht geschützt genug war. er/sie wird entlassen und findet nie mehr irgendeinen job. sowas spricht sich durch!

    ich weiß nicht genau, ob du das ganze professionell in der arbeit machst oder privat zu hause. wenn du das für die arbeit machst, dann frag doch bitte irgendjemanden, der wirklich anhnung hat, bzw. informier dich genau.



  • [quote="also wirklich..."]

    straight schrieb:

    leute ich kanns nicht glauben, wie ihr hier die leute verarscht. es geht hier um VERSCHLÜSSELUNG von irgendwelche anmeldedaten. sowas nimmt man nicht auf die leichte schulter! nix mit xor, und auch nix mit paranoia.

    stellt euch doch mal vor, dass er/sie in einem unternehmen arbeitet und eure dummen ratschläge befolgt. dann wird das unternehmen gehackt, weils eben doch nicht geschützt genug war. er/sie wird entlassen und findet nie mehr irgendeinen job. sowas spricht sich durch!

    ich weiß nicht genau, ob du das ganze professionell in der arbeit machst oder privat zu hause. wenn du das für die arbeit machst, dann frag doch bitte irgendjemanden, der wirklich anhnung hat, bzw. informier dich genau.

    Ok danke trotzdem für den Hinweis



  • also wirklich... schrieb:

    stellt euch doch mal vor, dass er/sie in einem unternehmen arbeitet und eure dummen ratschläge befolgt. dann wird das unternehmen gehackt, weils eben doch nicht geschützt genug war. er/sie wird entlassen und findet nie mehr irgendeinen job. sowas spricht sich durch!

    Apropos Paranoia. Du hast vergessen zu erwähnen, dass er dann auch nicht mehr in den Himmel kommt. Gott sieht alles 😃

    also wirklich... schrieb:

    dann frag doch bitte irgendjemanden, der wirklich anhnung hat, bzw. informier dich genau.

    Wenn man andere Vorschläge schon derart kritisiert, darf man ruhig eigene Vorschläge einbringen, wie man es besser machen kann!? Wir lernen gerne dazu.

    Regards


  • Mod

    Straight schrieb:

    Wenn man andere Vorschläge schon derart kritisiert, darf man ruhig eigene Vorschläge einbringen, wie man es besser machen kann!? Wir lernen gerne dazu.

    Swordfish schrieb:

    Alle Daten, die du in deinem Programm einbettest, können auch mit mehr oder weniger Aufwand rekonstruiert werden. Punkt.

    ➡ Diese Situation darf gar nicht erst vorkommen.



  • straight schrieb:

    Der Personenkreis, der in der Lage ist eine exe zu dekompilieren ist auch bei Programmierern sehr sehr klein.

    Man muss ein Binary nicht dekompilieren, um an darin hinterlegte Strings zu gelangen.



  • Hi schrieb:

    DevBeat schrieb:

    Ich will einfach das das Passwort welches ich zum MySqldatenbank aufbau verwende um die Daten der user abfragen zu können, d.h das passwort soll der benutzer nie vor gesicht bekommen. Das ist nur zum "einloggen" damit das programm ü+berhaupt an daten rankommen kann. Ich hoffe ich konnte es verständlich erklären.

    Du brauchst ein Serverprogramm.

    So und nicht anders.

    Soll dein Programm eben Requests an ein Serverprogramm schicken, das prüft ob die Requests Unsinn sind und macht ansonsten die Operationen auf die Datenbank. Dann muss nur das Serverprogramm das DB-Passwort kennen und das ist ja in einem vertrauenswürdigem Umfeld - audf dem eigenem Server.



  • Ethon schrieb:

    Hi schrieb:

    DevBeat schrieb:

    Ich will einfach das das Passwort welches ich zum MySqldatenbank aufbau verwende um die Daten der user abfragen zu können, d.h das passwort soll der benutzer nie vor gesicht bekommen. Das ist nur zum "einloggen" damit das programm ü+berhaupt an daten rankommen kann. Ich hoffe ich konnte es verständlich erklären.

    Du brauchst ein Serverprogramm.

    So und nicht anders.

    Soll dein Programm eben Requests an ein Serverprogramm schicken, das prüft ob die Requests Unsinn sind und macht ansonsten die Operationen auf die Datenbank. Dann muss nur das Serverprogramm das DB-Passwort kennen und das ist ja in einem vertrauenswürdigem Umfeld - audf dem eigenem Server.

    Sinnvolle Requests können aber auch wichtige Daten mit unsinnigem überschreiben.

    Stellt euch mal vor, der DB Server beinhaltet ein Guthabenkonto.

    Da könnte ein Hacker dann ganz schnell nen Haufen Geld reinmachen oder es entsprechend reduzieren.
    Auch eine Überweisung nach sonstwohin wäre auch ein gültiges Request.



  • Katastrophe schrieb:

    Stellt euch mal vor, der DB Server beinhaltet ein Guthabenkonto.

    Da könnte ein Hacker dann ganz schnell nen Haufen Geld reinmachen oder es entsprechend reduzieren.
    Auch eine Überweisung nach sonstwohin wäre auch ein gültiges Request.

    Deshalb hat man am Server ja Logik. Damit sowas nicht geht.



  • Katastrophe schrieb:

    Ethon schrieb:

    Hi schrieb:

    DevBeat schrieb:

    Ich will einfach das das Passwort welches ich zum MySqldatenbank aufbau verwende um die Daten der user abfragen zu können, d.h das passwort soll der benutzer nie vor gesicht bekommen. Das ist nur zum "einloggen" damit das programm ü+berhaupt an daten rankommen kann. Ich hoffe ich konnte es verständlich erklären.

    Du brauchst ein Serverprogramm.

    So und nicht anders.

    Soll dein Programm eben Requests an ein Serverprogramm schicken, das prüft ob die Requests Unsinn sind und macht ansonsten die Operationen auf die Datenbank. Dann muss nur das Serverprogramm das DB-Passwort kennen und das ist ja in einem vertrauenswürdigem Umfeld - audf dem eigenem Server.

    Sinnvolle Requests können aber auch wichtige Daten mit unsinnigem überschreiben.

    Stellt euch mal vor, der DB Server beinhaltet ein Guthabenkonto.

    Da könnte ein Hacker dann ganz schnell nen Haufen Geld reinmachen oder es entsprechend reduzieren.
    Auch eine Überweisung nach sonstwohin wäre auch ein gültiges Request.

    Wenn der Nutzer authentifiziert ist und über genug Guthaben verfügt, dann würde ich durchaus erwarten dass das Serverprogramm dementsprechend das Guthaben moldifiziert.


Anmelden zum Antworten