Wie sicher ist ein Passwort im Quellcode



  • Leprechaun schrieb:

    Ändere jetzt mal den Rückgabewert von get_input_hash(), dann stürzt es ab.

    lol? Das ist ja viel einfacher zu Hacken als ein if. Musst nur das 0x12345678 mit einem dir bekannten Hash ersetzen.



  • pwd_question schrieb:

    Ich muss nur vor ein paar neugierigen Kiddies schüzten, da ist keiner "echter" Hacker dabei, da fehlt das "Hirnschmalz" dafür 🙂

    Dann reicht doch ne simple Abfrage. 🙂
    Es ist immer die Frage was genau du erreichen willst. Wenn du z.B. einen teil des Programms nur ausführen willst wenn ein Passwort eingegeben wird, wirst du nicht drum rumkommen diesen Programmteil zu verschlüsseln. Egal wie komplex die Abfrage ist, man wird sie immer irgendwie knacken können. 😉

    @Leprechaun
    Ein Sprung in einen unbekannten Codeteil wenn man ein falsches Passwort eingibt? Klingt gefährlich. Sowas ist nur für ein CrackMe gut, sowas sollte man nicht machen. 😮



  • lepra-coder schrieb:

    Leprechaun schrieb:

    Ändere jetzt mal den Rückgabewert von get_input_hash(), dann stürzt es ab.

    lol? Das ist ja viel einfacher zu Hacken als ein if. Musst nur das 0x12345678 mit einem dir bekannten Hash ersetzen.

    aber nicht für die Kiddies die nach einer Verzweigung suchen.



  • Die sache mit dem funktionspointer ist klasse!
    Bin aber leider mit c# unterwegs, da kann ich das so nicht umsetzen..
    Hat jmd. Tipps fúr ne c# "umsetzung "



  • Du weißt schon dass man C# ganz easy-peasy dekompilieren kann, ja?
    Nimm die C# AES Klassen, pack Code den keiner sehen soll in eine DLL. Dann fragst du ein Passwort ab und versuchst die DLL zu entschlüsseln, wenn das klappt lädst du sie und verwendest sie. 🙂
    Sollte praktisch unknackbar sein. Aber sag doch mal was genau du machen willst.



  • Ja, ich habs gelesen das C# nicht dieee Hürde ist 🙂
    Also ich hab mich mit Passwort und so Sachen noch nie groß befasst weil ich meine kleinen Programme meist nur für mich gemacht habe.

    Jetzt habe ich ein kleines Tool für meine Kollegen auf Arbeit gemacht. Aber nicht jeder soll es nutzen können. Darum wird am Anfang die Windowsanmeldung abgefragt und mit einer Liste verglichen. Tja if( ! act_user == res_user ) {Application.Exit(1) } usw.

    HAb aber einen Kollegen dabei, der angeblich schon mal bisschen was gecrackt hat.
    Also ich traue es Ihm nicht zu, und zuviel Aufwand will ich eigentlich auch nicht treiben, aber nebenbei ist es evtl. noch ne nette Übung.

    Momentan ist einfach eine "Liste" mit restricted users im Quellcode hinterlegt. Wenn ich das jetzt hashe ist ja schön und gut, es bleibt aber bei dem einen Bit für die If-Abfrage das über To Be or Not to Be entscheidet 😞



  • Pass lieber auf dass du dir keinen Ärger mit der GF einhandelst, das sind immerhin Firmenrechner.



  • Kannst du die Applikation nicht dadurch schützen dass nur berechtigte User zugriff auf irgendwas haben was die Applikation benötigt?
    Also ne SQL Datenbank, irgendwelche Files die die Applikation modifiziert etc.?
    Oder wenn sonst nix geht auch einfach das .exe File der Applikation selbst?

    Da selbst was zu kochen ist fast immer suboptimal.

    Ein if (username == berechtigterUsername) ist halt schon SEHR einfach auszuhebeln.
    Dazu muss er bloss lokal einen User mit dem entsprechenden Namen anlegen und *schwupp* schon kann er deine Applikation verwenden.
    Und in einem C# Programm ist der Code auch in 5 Minuten gefunden. Das Programm dann ohne den entsprechenden Check neu zu übersetzen ist auch kein Problem. ILSpy kann dir z.B. ein fix & fertiges Project-File ausspucken. Das muss man nur noch in VS aufmachen, die eine Zeile auskommentieren, neu übersetzen => fertig. Wenn man sich ein wenig damit auskennt ist das eine Sache von 5 Minuten.

    @deejey
    GF? Meinst du vielleicht GL?



  • Oder wenn sonst nix geht auch einfach das .exe File der Applikation selbst?

    Du meinst mit einem "externen Programm" oder hab ich das jetzt falsch verstanden?

    Ich habs jetzt verübergehend mal so gelöst, das bei einem falschen Benutzer Array Grenzen nicht mehr passen und das Prog dann abschmiert. Ja, nicht das gelbe vom Ei, aber naja...



  • Ich meine dass du das Tool auf einem Netzlaufwerk ablegst wo nicht jeder Zugriff darauf hat.
    Klar kann dann einer der Zugriff hat einem anderen das Tool kopieren. Genau so gut kann der berechtigte Jemand aber auch sein Passwort weitergeben.

    Vorteil bei der Netzlaufwerk Sache sind allerdings:
    * Du musst weniger Programmieren.
    * Du verwendest Standardmittel statt selbstgebackenem Zeugs.
    * Wer berechtigt ist kann leicht ohne dein Zutun geändert werden (vom Chef, Admin, ... -- wer auch immer die Berechtigungen ändern kann).
    * Du hast keinen unsicheren Mist in deinem Programm der vorgibt etwas zu tun was er nicht (ordentlich) tun kann.
    * Jedem Admin sollte klar sein wie sicher oder unsicher deine Lösung ist.


Anmelden zum Antworten