AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Keine Checksummenänderung bei Stringveränderung in der .exe?
Thema durchsuchen
Ansicht
Themen-Optionen

Keine Checksummenänderung bei Stringveränderung in der .exe?

Ein Thema von Gambit · begonnen am 14. Jun 2005 · letzter Beitrag vom 14. Jun 2005
Antwort Antwort
Seite 1 von 2  1 2      
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#1

Keine Checksummenänderung bei Stringveränderung in der .exe?

  Alt 14. Jun 2005, 12:20
Hallo,
ich möchte in meinem Programm bei Start die Checksumme prüfen und das Programm beenden, wenn sie nicht mehr stimmt, also an der .exe herumgefuscht wurde.

Die Routine zur Überprüfung der Checksumme fand ich im Internet:

Delphi-Quellcode:
function GetCheckSum(FileName: string): DWORD;
var
  F: file of DWORD;
  P: Pointer;
  Fsize: DWORD;
  Buffer: array [0..500] of DWORD;
begin
  FileMode := 0;
  AssignFile(F, FileName);
  Reset(F);
  Seek(F, FileSize(F) div 2);
  Fsize := FileSize(F) - 1 - FilePos(F);
  if Fsize > 500 then Fsize := 500;
  BlockRead(F, Buffer, Fsize);
  Close(F);
  P := @Buffer;
  asm
     xor eax, eax
     xor ecx, ecx
     mov edi , p
     @again:
       add eax, [edi + 4*ecx]
       inc ecx
       cmp ecx, fsize
     jl @again
     mov @result, eax
   end;
end;
Wenn ich jetzt mit einem Hexeditor einen String in der .exe ändere, ändert sich die Checksumme nicht. Ist das bei Strings immer so? Was würde helfen?

Gruß

Gambit
  Mit Zitat antworten Zitat
Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#2

Re: Keine Checksummenänderung bei Stringveränderung in der .

  Alt 14. Jun 2005, 12:28
EXE-Dateien mit Read lesen ? Junge, EXE-Dateien sind binär! Da brauchst du Streams!

Dust Signs
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#3

Re: Keine Checksummenänderung bei Stringveränderung in der .

  Alt 14. Jun 2005, 12:34
Zitat von Dust Signs:
EXE-Dateien mit Read lesen ? Junge, EXE-Dateien sind binär! Da brauchst du Streams!
Ich gestehe etwas schwer von Begriff zu sein, aber was meinst du? BlockRead war schon immer für Binärdaten geeignet. Wo ist also dein Problem?

@Fragesteller: eigentlich sollte sich in jedem Fall die Checksumme ändern. Ansonsten könnte es sein, daß die Methode zur Berechnung nicht wirklich gut ist
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#4

Re: Keine Checksummenänderung bei Stringveränderung in der .

  Alt 14. Jun 2005, 12:36
Ja, das habe ich mir auch schon gedacht. Kennt jemand ne bessere Methode?
  Mit Zitat antworten Zitat
uschi
(Gast)

n/a Beiträge
 
#5

Re: Keine Checksummenänderung bei Stringveränderung in der .

  Alt 14. Jun 2005, 12:38
nimmsu die DCP - Hashes

DCP in Torry eingeben

freeware
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#6

Re: Keine Checksummenänderung bei Stringveränderung in der .

  Alt 14. Jun 2005, 13:38
"einfachen" crc32 check dürfte doch auch schon reichen oder?
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Keine Checksummenänderung bei Stringveränderung in der .

  Alt 14. Jun 2005, 13:52
Ich denke mal, die Prüfsumme ändert sich deshalb nicht, weil deine Routine nur 2000 Byte aus der Mitte der Datei prüft (und nicht die ganze Datei).
Volker
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#8

Re: Keine Checksummenänderung bei Stringveränderung in der .

  Alt 14. Jun 2005, 13:55
Habe mittlerweile ein Tool(Unit) gefunden, welches Routinen anbietet, um die Checksumme eines Programms beim Start zu prüfen. Dabei ist ein kleines Programm, welches die .exe nach der compilierung patched.
Funzt astrein...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Keine Checksummenänderung bei Stringveränderung in der .

  Alt 14. Jun 2005, 13:58
Könntest du mal bitte den Link geben?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#10

Re: Keine Checksummenänderung bei Stringveränderung in der .

  Alt 14. Jun 2005, 14:06
http://www.freeware.de/Windows/Progr...mierung/Delphi

das Programm heißt CheckExe Version 1.0
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz