Autor Beitrag
Sebi82
Hält's aus hier
Beiträge: 9

Win XP
D7 Enterprise
BeitragVerfasst: Mi 31.05.06 10:19 
Hi!

Es gibt noch eine Möglichkeit, die Schwachstelle JE (Jump if equal) in JNE (Jump if not equal) zu umgehen: Man sollte den Hash des Passworts einfach in viele Stellen des Codes mit einbinden. Bespiel: Wert:=andererWert * (HASHeingabe/HASHvorgabe) .Bei korrekter Eingabe passiert nichts. Dies soll nur ein anschauliches Beispiel sein.

Mir ist natürlich bewusst, dass damit eine *versehentliche* Falscheingabe des Passworts das Programm zunichte macht, aber ich bin mir sicher, dass man da auch irgendeine moderate Lösung findet! Hab nur gerade keine Zeit darüber nachzudenken...
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mi 31.05.06 12:09 
Hm klingt gut...! Wie wärs damit:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
i:=2*(hashEingabe div hashKorrekt);
try 
  (FindComponent('Form'+IntToStr(i)) as TForm2).Show;
  Form1.Hide;
except
  Showmessage('Falsches Passwort!');
end;

Is das ein Ansatz oder hat das die gleiche Schwachstelle?

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Hack Gott
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 409

Windows Vista
Delphi 2005 Personal, Delphi 7
BeitragVerfasst: Mi 31.05.06 13:17 
Ich hab mich mal kurz hingesetzt und auch einen kleinen Passwortdialog zusammen geschustert, schaut mal ob ihr des passwort ändern, oder zumindestens knacken könnt.

Ich bin gespannt.
Einloggen, um Attachments anzusehen!
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Mi 31.05.06 14:07 
Wie lame ist das denn? Aus dem "je" ein "jmp" zu machen,, um den Hash zu umgehen?
oh oh :wink:
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Mi 31.05.06 14:15 
I8N zum letzten crackme ;)
cuejo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 142

Win XP
Delphi 7 Personal und 2005 PE
BeitragVerfasst: Mi 31.05.06 15:59 
Gibt es denn eine Möglichkeit einen Vergleich von zwei Werten - sei es nun simpler Text, ein Hash oder was auch immer - so zu gestalten, dass ein cracker nicht mehr diese anscheinend doch sehr simple Methode (= durch <> ersetzten) benutzen kann? Ich weiß, dass man keine Passwortabfrage wirklich 100%ig sicher machen kann, aber wenn ich sehe, dass ihr diese Programme alle gecrackt habt, dann gibt mir das doch zu denken.

_________________
Computer sind dumm, aber fleißig. Deshalb arbeite ich so gerne damit.
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Mi 31.05.06 16:33 
Alles was auf Softwarebasis gelöst wird, wird auch auf Softwarebasis ausgehebelt. Punkt!
Das Problem ist ja, dass Du immer etwas vergleichen musst, also kann ich das

// asm
cmp realserial, fakeserial
je registration_complete
//

immer patchen (unelegant, wie ich immer noch finde)..
Sollte es so eine Lösung geben, dann.. *NEIN* gibts nicht. Wie gesagt - Punkt! Aus!
:mahn:

:wink:
rgs rizla
Jakob Schöttl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Mi 31.05.06 17:10 
Ach jetzt hab ichs verstanden
o_o Das ist ja fies!

Aber ziemlich unwarscheinlich, dass es jemand schafft.
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Mi 31.05.06 17:13 
Aber ziemlich unwahrscheinlich das jemand was schafft?? :?!?:
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Mi 31.05.06 17:33 
man muss es dem cracker halt wie gesagt insofern schwer machen, dass er sich zum einen durch spaghetticode durchwühlen muss und zum anderen mehrfach auf die passwortabfrage trifft. d.h. im programm gibt der benutzer einmal das passwort ein und das programm prüft das ganze dann an mehreren stellen ab.
man kann das ganze nicht verhindern - aber man kann es schön schwer und umständlich machen

_________________
Delphi: XE - OS: Windows 7 Professional x64
cuejo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 142

Win XP
Delphi 7 Personal und 2005 PE
BeitragVerfasst: Mi 31.05.06 17:38 
user profile iconSpaceguide hat einen interessanten Alogo konstruiert, der Zahlen ohne if oder ähnliche Vergleiche sortiert! Ich hätte nicht gedacht das sowas möglich sei. Vielleicht schafft der ja sowas. :wink:

_________________
Computer sind dumm, aber fleißig. Deshalb arbeite ich so gerne damit.
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Mi 31.05.06 20:55 
Ja sicher, das ist schon nicht so einfach, es dem cracker schwer zu machen, außer man nimmt zum proggen visual basic :mrgreen:
ich sag mal so: beim crackme von Hack Gott wars in etwa so:
1. ollydb öffnen,
2. alle referenced strings anschauen,
3. doppelklick auf "falsch",
4. den call davor tracen,
5. irgendwann mal auf edx achten
6. et voila - passwort da!
ne sache von 1 minute.
*sorry* hack gott, aber es reversern schwer zu machen, ist schwer.
ist halt keine 5 minuten sache.
eine andere sache wäre, softice und olly gar nicht erst zuzulassen.
aber dann gibts auch wieder patches, ist halt wie gesagt - alles software.
ich finde, die diskussion führt ins leere, die frage ist eher, kann man gute freeware schreiben.
Ein indianischer Spruch dreht sich irgendwie so:
der rote Mann ist reich, wenn er geschenke machen kann,
der weiße Mann, wenn er anhäufen kann.
Ich weiß, wir leben nicht im Lande der Apachen und auch nicht im Sozialismus,
aber wenn man kreativ und begabt ist, sollte man andere Leute daran teilhaben lassen, so seh ich das.
:rizla:
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Fr 02.06.06 00:03 
Letzte möglichkeit: Verschlüssle das komplette Programm und mach daraus eine "Selbstextrahierende" Datei, soll heissen: Man gibt den Schlüssel ein, und das Programm wird entschlüsselt, ganz gleich, ob der Schlüssel richtig oder falsch ist. Problem dabei ist das Verschlüsselungsverfahren... Möglich sind natürlich sowohl symetrische als auch asymetrische... ein Onetimepad-style kommt nicht in Frage, darum sind wohl die asymetrischen interessanter ... naja... da können sich dann die Kryptographen austoben. Ich glaube mich zu erinnern, dass es hier mal ein Freeware prog gab, das jede beliebige Exedatei verschlüsselte und beim starten wurde ein Passwort dialog angezeigt.... *hmm...*

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Fr 02.06.06 09:18 
Vorsicht :mahn:
user profile iconJayEff hat folgendes geschrieben:
Man gibt den Schlüssel ein, und das Programm wird entschlüsselt, ganz gleich, ob der Schlüssel richtig oder falsch ist. Problem dabei ist das Verschlüsselungsverfahren...

Das Problem liegt hierbei ganz woanders: Wird das Programm mit dem falschen Schlüssel decodiert und ausgeführt, kann das unter Umständen ziemlich böse Folgen haben (u.U. dass man sich den Rechner zerschrottet!). Der Code, der dann nämlich im Speicher ist, kann ja sonst was tun (auch wenn es durch den falschen Schlüssel scheinbar nur Müll ist, irgendwas macht die *sinnlose* copefolge schon *g*). Ich hatte das mal, als ich vor etlichen Jahren mit Assembler angefangen hab - ich habs abschließende int20 resp. 4c@21 :wink: vergessen, das programm hat auch schön "hello world" ausgegeben, aber leider auch gleich 's bios zerschossen. :?
:rizla:
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Fr 02.06.06 16:36 
Pech für den Cracker, der versucht hat, das Programm zu öffnen... 8(
Naja.. Muss man halt noch nen Passwort bestätigen Dialog einfügen. :/

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Fr 02.06.06 21:34 
user profile iconJayEff hat folgendes geschrieben:
Pech für den Cracker, der versucht hat, das Programm zu öffnen...

Und Pech für den User, der sich vertippt hat! :nut:

_________________
if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.
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: Fr 02.06.06 21:58 
Aber so macht es doch z.B. WinRAR: Man gibt ein Passwort ein, es wird extrahiert und danach wird die CRC-Summe mit der verglichen die in dem Archiv angegeben wird. Und dann gibt es erst eine Meldung aus "wrong password?".

Nervt echt bei großen Archiven :D

_________________
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.
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Fr 02.06.06 22:16 
ja, kann man ja machen. aber dann muss auch eine crc routine rein - aber davon wurde bis jetzt noch nicht gesprochen ;)
so, muss nun feiern
schönes we allen
:rizla:

_________________
if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Sa 03.06.06 16:58 
user profile iconrizla hat folgendes geschrieben:
user profile iconJayEff hat folgendes geschrieben:
Pech für den Cracker, der versucht hat, das Programm zu öffnen...

Und Pech für den User, der sich vertippt hat! :nut:

Der user vertippt sich 2 mal? :roll:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
moddin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75

WinXP Pro
Delphi 7 Enterprise ;-)
BeitragVerfasst: Sa 10.06.06 00:51 
Lösungsansätze :

Zeiger und Zeigervergleiche anstatt if (lstrcmp etc)
und diese Prüfvorgange tausendmal (nicht als proceduraufruf
sondern im quelltext direkt 1000 mal :lol: )

CRC selbstcheck ob verändert wurde

Edit : Ach ja Compileroptimierungen ausschalten,Die 1000Zeilen Procedur immer mit sinnlosen
if bedingungen (erzeugen immer "jmp"s) füllen

NAhc leute ;-)