Einzelnen Beitrag anzeigen

Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#11

Re: Seriennummer Schutz

  Alt 19. Okt 2008, 19:19
Ich hab mir mal die Mühe gemacht, den "Schutz" aus der orginal .exe, die du mitgelieferst hast rauszupatchen.

Die Zeile das der Panel grün werden soll sieht übrigens so aus, wenn deine Überprüfungen fehl schlagen wird die einfach übersprungen.

Code:
00451644     BA 00800000    MOV EDX,8000
Änderung in Blau:

Code:
00451644     BA 0000FF00    MOV EDX,0FF0000
Code fürs Überspringen:

Code:
0045162B    75 27          JNZ SHORT Serial.00451654 //springen wenn nicht gleich
geändert in:

Code:
0045162B    EB 17          JMP SHORT Serial.00451644  //immer zur Farbänderung springen (außer es tritt vorher eine Exeption auf, weil nicht auf Buchstaben u. ä. geprüft wird)
womit das ganze immer grün (jetzt blau) wird.

Und deswegen macht eine solche Art von Schutz keinen Sinn, sollte man ihn dennoch unbedingt wollen, so sollte man das die Prozeduren zumindest nicht ins published (wo sie ohnehin nicht hingehören) oder public schreiben, weil sie dort besonders leicht auszulesen sind und die .exe mit UPX oder ähnlichem komprimieren (sehr leicht wieder dekomprimierbar), um wenigstens sehr dumme Versuche des Patchens zu verhindern.

Außerdem lassen sich anhand des Codesschnipsels (oder des zugehörigen Assemblercodes):
Delphi-Quellcode:
res := PartA and Safekey;
  If Res<>PartB then exit;

  res := PartA xor PartB;
  If Res<>PartC then exit;

  res := PartA xor Safekey xor PartC;
  If Res<>PartD then exit;

  Panel1.Color := clGreen;
in Kombination mit einem richtigen Key gute Rückschlüsse auf den im Programm verwendeten Safekey ziehen, abgesehen davon dass er in diesem Fall hardcoded im Programm ist.

[Edit]kleiner Rechtschreibfehler
Angehängte Dateien
Dateityp: zip patchedserial_151.zip (200,7 KB, 22x aufgerufen)
  Mit Zitat antworten Zitat