[C++] Protect Your Files [Release]

03/02/2010 22:22 xNopex#1
Hey,

PYF ist ein kleines neues Programm von mir, mit dem ihr eure Dateien (Musik, Filme, Bilder,...) mit einem Passwort vor fremden Zugriff schützen könnt.
Ich wünsch euch viel Spaß damit und wenn jemand Bugs oder sonstwas findet, möchte er sich bitte bei mir melden :)

Screenshot:
[Only registered and activated users can see links. Click Here To Register...]

Anleitung:

Drücke zunächst auf "Choose File" und wähle die Datei aus, die du Ver- oder Entschlüsseln willst. Gebe nun in die Textbox, vor der "Password" steht das Passwort ein, mit dem du die Datei verschlüsseln willst, oder das Passwort zum Entschlüsseln. Drücke zum Schluss auf "GO", das Programm erkennt automatisch, ob die Datei ent- oder verschlüsselt werden soll. Der Text in rot zeigt dir den aktuellen Status des Programms an. Wenn der rote Text "State: Successfull" lautet, war die Ent- bzw Verschlüsselung erfolgreich.
Bei Fragen schreib hier in den Thread :)


[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

Hier noch der Quellcode. Natürlich habe ich an entscheidenden Stellen, was die Verschlüsselung betrifft den Code zensieren müssen (erkennbar an dem [...]).
[Only registered and activated users can see links. Click Here To Register...]
03/02/2010 22:52 schlurmann#2
Wenn ich morgen Zeit finde, werd ich mich 'mal ranmachen es zu knacken. ;P
03/02/2010 23:34 flo8464#3
Schön viel C, gut zu reversen :P
03/03/2010 13:33 xNopex#4
Viel Erfolg beim Debuggen. Dann setz ich mich schonmal dran den Algorithmus fürs Anti Debugging zuende zu schreiben und die Hauptverschlüsselung zu verbessern. Dann kann ich gleich updaten, falls ihr das Proggi knackt.
03/03/2010 17:56 flo8464#5
Quote:
Originally Posted by xNopex View Post
Viel Erfolg beim Debuggen. Dann setz ich mich schonmal dran den Algorithmus fürs Anti Debugging zuende zu schreiben und die Hauptverschlüsselung zu verbessern. Dann kann ich gleich updaten, falls ihr das Proggi knackt.
Ich debugge nicht, ich nutze einen statischen Disassembler. ;)
Warum nutzt du nicht einfach AES? Ist seit viele Jahren als absolut sicher betrachtet.
03/03/2010 18:04 xNopex#6
Der MD5-Hash wurde auch Jahrelang als absolut sicher/einmalig betrachtet :) Kenn mich mit der Verschlüsselung aber ehrlich gesagt gar nicht aus, werde ich mir mal anschauen, danke für den Tipp. Dann eben viel Spaß beim reversen mit deinem statischen Disassembler (IDA?). Jedenfalls ist meine Anti-Patch-Routine zu 50% fertig. Wegen Schule konnte ich den Nachmittag nicht so viel daran arbeiten, aber wird schon. Step by step.
03/03/2010 19:07 MrSm!th#7
Quote:
Originally Posted by flo8464 View Post
Ich debugge nicht, ich nutze einen statischen Disassembler. ;)
Warum nutzt du nicht einfach AES? Ist seit viele Jahren als absolut sicher betrachtet.
lol was bringt das bei einem gecrypteten programm außer einer statischen analyse des junk codes? :D
03/03/2010 19:20 xNopex#8
Die Executable ist nicht crypted. Er schaut sich halt damit den Assambler Code an, versucht die Passwortabfrage zu patchen, sodass er mit jedem beliebigen Passwort decrypten kann. Bzw. er steppt durch den Code und versucht die Verschlüsselung-Routine nachzuvollziehen und schreibt sich dann seinen eigenen decrypter.
03/03/2010 19:26 MrSm!th#9
Quote:
Originally Posted by xNopex View Post
Die Executable ist nicht crypted. Er schaut sich halt damit den Assambler Code an, versucht die Passwortabfrage zu patchen, sodass er mit jedem beliebigen Passwort decrypten kann. Bzw. er steppt durch den Code und versucht die Verschlüsselung-Routine nachzuvollziehen und schreibt sich dann seinen eigenen decrypter.
1. das war mir klar. es ging darum, wenn die exe crypted ist
2. wtf? die passwort abfrage ist doch nicht alles, es sei denn, dein programm crypted nur nach einem speziellem algorithmus, bei dem der algorithmus das geheimnis ist. crypte doch die datei, mit dem passwort, dann reicht es nicht, einfach die pw abfrage zu umgehen ;)
03/03/2010 19:51 xNopex#10
Wenn ich die Datei mithilfe des Passworts verschlüssle bleibt der Algorithmus an sich auch der gleiche, oder wie stellst du dir das vor, dass sich der Algorithmus erst zur Laufzeit entwickelt? Geht nicht. Lediglich ein Parameter der Verschlüsselung ist dynamisch. An sich aber keine schlechte Idee.
03/03/2010 19:53 MrSm!th#11
Das ist doch der Knackpunkt:


Fester Algorithmus mit festen Werten -> Reversen + PW Abfrage entfernen = Win
Fester Algorithmus, der mit dem Key cryptet -> Reversen + PW Abfrage = liefert zwar den Algorithmus, der einem aber ohne Key nicht viel bringt.

Wenn man dann irgendeinen Key eingibt, kommt nur crap beim Entschlüsseln raus.
Verstanden? ;)
03/03/2010 20:00 xNopex#12
Ja klar hab ich das verstanden, ich wollte dich nur darauf hinweisen, dass der Algo an sich auch der gleiche ist:

DATA_ENCRYPTED = DATA_ORIGINAL + PASSWORT

Hier ist der Algorithmus fest vorgegeben, also ist dieser kein geheimnis, nur der Summant PASSWORD macht das Kraut fett. Patchen kann man die Exe nun nichtmehr, meine Anti-Patch-Routine funktioniert (jedenfalls auf WinXP) :) Ich bau noch deine Idee ein MrSm!th und dann werd ich updaten. Wahrscheinlich aber erst morgen, weil ich heute keine Lust mehr hab ;)
03/03/2010 20:50 MrSm!th#13
wieso? ist doch genau das!
ohne pw kommt man nicht an die daten.
03/03/2010 21:08 xNopex#14
Jaa :D Ich glaub du verstehst nicht ganz das, was ich mein, aber ist ja jetzt auch egal, bevor das hier zu sehr vom Topic abkommt.
03/04/2010 01:58 MrSm!th#15
Ist ja nicht Offtopic, sind ja Verbesserungsvorschläge^^

Dann erklärs mir doch!?
Ich habe gesagt, wenn es nur im den Algorithmus geht, der das Geheimnis ist, sind die Daten schnell geknackt, wenn aber das PW nicht nur eine Überprüfung ist, sondern auch in den Algorithmus mit einbezogen ist, sind die Daten deutlich sicherer.
Und das hast du, wenn auch sehr sehr einfach, in deinem Algorithmus gemacht.