Autor Beitrag
detke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55

WIN XP
Delphi 5
BeitragVerfasst: Mo 22.05.06 13:41 
Hi,

hier mal eine Passwort abfrage in Delphi geschrieben.
Warscheinlich kommt noch eine Version mit Benutzernam raus, aber da warten wir mal ab.

Edit: habe die Daten anhänge entfernt da ihr sie ja schlecht findet.

Gruss Detlef
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von detke am Do 08.06.06 15:35, insgesamt 3-mal bearbeitet
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 22.05.06 14:10 
Das ist jetzt nicht dein Ernst oder? Was hat das für ein Wert? So eine einfache if-Abfrage dürfte jeder hinbekommen, wohl schon ein Anfänger nach fünf Minuten. Zu dem steht das Passort hardgecodet in der Exe. Ich habe es mal gecrackt. Eventuell findest du ja das neu Passort raus.
Einloggen, um Attachments anzusehen!
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 22.05.06 14:10 
Ähm tut mir leid, dass ich darüber herziehe, aber ... was bitte soll das?!
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.text = 'ihr Passwort' then begin
//Was er machen soll wenn das Passwort richtig ist.
end else begin
//Was er machen soll wenn das Passwort falsch ist.

end;
Das ist das einzige, das du selbst geschrieben hast. Der Rest erzeugt Delphi ja selbst.. Dann eine Form2, auf der steht: (Ein Label) "Hier dann ihr Unit statt dieser Unit ihre Unit einfügen". Gut gedeutscht! Aber sorry, wenn ich eine Passwortabfrage will, dann muss das Passwort verschlüsselt gespeichert sein, und zwar am besten gehasht. und selbst wenn ich mir ein Programm schreiben müsste, in dem das vorkommt, wären diese 30 Sekunden Programmieren (Ich hab ne md5 Unit die ich einbinden kann) niemals Wert, ein Grundgerüst dafür als Open Source Unit(!) ins DF zu stellen... Nix für ungut aber .... xD

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
detke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55

WIN XP
Delphi 5
BeitragVerfasst: Mo 22.05.06 14:13 
müsst ihr mich jetzt so in den dreck stellen?
Und wie haste es gecrackt?
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 22.05.06 14:19 
Mit einem Hexeditor vermutlich... es geht aber auch mit notepad. Ich versuch grad sein PW rauszufinden ... hm ... *grml* hast du da irgent was dran gemacht? verschlüsselt oder so? *grml*

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 22.05.06 14:25 
Nach einer kleinen Pause ist das Thema nun wieder offen. Bitte bleibt bei der Kritik sachlich und freundlich. :D

_________________
We are, we were and will not be.
detke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55

WIN XP
Delphi 5
BeitragVerfasst: Mo 22.05.06 18:21 
Hi,

wie wäre es wenn wir zusammen die Passwort abfrage verbessern?

Gruss Detlef
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 22.05.06 22:04 
Mal abgesehen davon, dass du nicht die Worte eines Mods 1:1 kopieren solltest....... ( ;> )
Naja, man sollte auf jeden fall das Passwort nicht unverschlüsselt speichern, denn wie du gesehen hast, war es kein Probelm für Luckie, dein Programm zu cracken, und btw, die Lösung für Luckies Programm ist "crak". ich habs selbst rausgefunden. Einfach per Hex-editor. Der Trick bei so einem Programm: HASH. Ein sog. Hash ist eine Zahl die sich aus einer Zeichenkette errechnen lässt. Es ist beinahe unmöglich, vom Hash auf die Zeichenkette zu kommen, aber die Zeichenkette in einen Hash zu verwandeln ist einfach. Das heist: Speichere in deinem Programm den Hash des Passworts und errechne bei der Passworteingabe den Hash des eingegebenen Passworts. Wenn beide Hashs übereinstimmen, hat der Benutzer das richtige Passwort eingegeben, ansonsten nicht.
Der Sinn der ganzen Sache ist mir zwar nicht ganz klar, aber mit dieser Änderung kannst du eine ziemlich sichere Passwortabfrage erzeugen. Das ganze ist eine gute Übung und vielleicht brauchst du ja irgentwann genau sowas.
Um an Informationen über den Hash ran zu kommen, empfehle ich www.wikipedia.de und die Entwickler-Ecke-Suche. (Ganz zu schweigen von Google.)

Ach ja und ...: Nix für ungut, was meine Äußerungen von vorher betrifft ;>

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Di 23.05.06 21:29 
ich wollt nur sagen:
Lass dich nicht entmutigen detke!! jeder hat mal klein angefangen!! und wenn die anderen deine Unit nicht brauchen dann vielleicht ja du!!! also immer weiter programmieren!!

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mi 24.05.06 18:07 
dem hash braucht man auch keine beachtung schenken, einfach aus dem = ein <> gemacht und fertig ist der lack ;)

bzw lässt sich auch glaube ich die stelle des MOV einfach noppen
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mi 24.05.06 19:28 
Danke für deinen Beitrag, FotD, nur wäre es nicht einfacher, es GLEICH so zu schreiben, dass es Normalsterbliche verstehen? :shock: ^^ Bitte nochmal, und wenns nur für mich ist ^^ Ich hab kein Wort verstanden. Wieso dem Hash keine beachtung schenken, wieso welches = in ein <> verwandeln? HÄ? -.-

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Mi 24.05.06 19:34 
Damit man in einem Hex-Editor das Passwort nicht mehr so einfach auslesen kann ;)

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mi 24.05.06 19:39 
statt if pw='hallo' then schreibe ich if not (pw<>'hallo'then und schon ist mein Passwort nicht mehr hardgecoded? aha! toll! WARUM?!

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mi 24.05.06 20:04 
nein wenn man den vergleich crackt, dann ist es egal wie gut die verschlüsselung ist, du musst nur ein falsches passwort finden und du hast zugriff
Waldteufel
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 24.05.06 20:06 
Hi Leute.

user profile iconJayEff hat folgendes geschrieben:
statt if pw='hallo' then schreibe ich if not (pw<>'hallo'then und schon ist mein Passwort nicht mehr hardgecoded? aha! toll! WARUM?!


Natürlich ist es noch hardgecoded. Er meinte nur, wenn er mit dem Hex-Editor im fertigen Programm aus einem if pw = 'hallo' then ein if pw <> 'hallo' then macht, dann ist die Passwortabfrage futsch!

Edit: Wups... Ich sollte öfters refreshen... :oops:
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Do 25.05.06 13:33 
Achso, jetzt hab ichs gebkickt ... *grml* ok, und? wie verhindere ich das? Denn das is ja das Thema: Wie mach ich die Abfrage sicherer?

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 25.05.06 14:02 
tja das ist die zentrale frage, du kannst den cracker mit wuselcode verwirren, aber es wird nie unmöglich sein
Jakob Schöttl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Do 25.05.06 14:13 
WArum macht ihr nicht das mit dem Hash?

Das ist doch nicht soo schwer:

Eine klassische Einwegfunktion ist z. B. f(x) = (m^x) mod 256;
bzw. f := power(m,x) mod 256;, wobei m = 33 sein könnte...
Die funktion liefert einen Byte, den kannst du dann auch als char in einen string schreiben. Das musst du natürlich schon machen, bevor du das Programm compilierst.

Und Die Benutzereingabe wird genauso umgerechnet und dann mit dem Hashwert verglichen.

so brauchst du den cracker mit wuselcode gar nicht irritieren!
... und so wird es im prinzip bei den windowspasswörtern auch gemacht.

Ich hoffe ich hab nichts falsch verstanden
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 25.05.06 14:32 
geht trotzdem genauso zu cracken, einfach <> und irgendnen dreck eingeben und fertig ist das ding, am ende ist es ja doch:

ausblenden Delphi-Quelltext
1:
if Hash(Code) = Hash then					
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Do 25.05.06 14:32 
Du hast da was falsch verstanden. Ich hab den Hash bereits in meinem ersten Beitrag erwähnt, nur wurde ich davon überzeugt, dass das die sicherheit nur minimal erhöht: Der Cracker macht nichts weiter, als in der fertigen Exedatei per Assembler aus dem if x=y vergleich einen if x<>y Vergleich, und schon braucht er nur ein FALSCHES Passwort eingeben, um an den Zugriff zu kommen! Folglich bringt der Hash nix.

/edit: ach mist. klar sind die, die weniger schreiben, schneller als ich -.- *grmbl*

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.