AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Anwendungsspeicher schützen

Ein Thema von webtom · begonnen am 15. Sep 2008 · letzter Beitrag vom 30. Sep 2008
 
zero_x

Registriert seit: 12. Jun 2008
30 Beiträge
 
#21

Re: Anwendungsspeicher schützen

  Alt 27. Sep 2008, 10:37
Hallo Macci und webtom,

die richtige Stelle im Assemblercode zu finden ist im Grunde sehr einfach. Wenn man einen String mit beispielsweise dem Text: "Das Passwort ist falsch" als Plaintext oder in den Ressourcen der Anwendung hat, kann man auf der Adresse vom Text einen Breakpoint setzen und die Anwendung bis zu dieser Stelle laufen lassen. Dann sollte i.d.R. die Verschlüsselung vor diesem Breakpoint stehen.

Wenn man nun ein Passwort hat und dies mit einem anderen Vergleichen möchte und man dies mit einer direkten if-Abfrage macht ist es sehr unsinnig, weil dann schon das richtige Passwort verraten wird und mit einem anderen vergleicht wird. An dieser Stelle kann man das richtige Passwort auslesen oder die Abfrage patchen. Das würde somit keinen als so großen Sinn machen. Wenn man jetzt nun das Passwort stelle für Stelle abfragt macht das um einiges mehr Sinn, denn der Cracker wird schnell die Lust an der Sache verlieren und wird alles verwirrender für ihn. Machen wir mal ein einfaches Beispiel in Assembler:
Delphi-Quellcode:
004013BA C745 FC 0500000>MOV [DWORD EBP-4], 5
004013C1 837D FC 05 CMP [DWORD EBP-4], 123
004013C5 75 26 JNZ SHORT 004013ED
004013C7 C74424 04 00004>MOV [DWORD ESP+4], 00440000 ; ASCII "Richtig!"
Nun, was sehen wir hier? In der ersten Zeile ist unser falsches Passwort: "5". In der zweiten Zeile wird dieses mit "123" Verglichen, falls es falsch ist wird auf eine andere Adresse gesprungen. Ansonsten wird "Richtig" ausgegeben. Somit ist es sehr einfach dies zu patchen. Auf das Theme möchte ich nicht weiter eingehen, da es sonst zu kompliziert wird. Ich möchte einfach nur darauf hinaus, dass wenn man etwas 1 zu 1 vergleicht ist alles sichtbar! Bei Strings oder Lizenzschlüsseln kann man sich das schon denken ... .

Also ich würde dazu raten das Passwort nicht direkt im Code zu programmieren, sondern zur Laufzeit ein Passwort zu generieren mit einem Algorithmus. Das Passwort nicht 1 zu 1 abfragen, sondern stückweise. Wie du das machen möchtest bleibt dir überlassen.

zero_x
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz