Keine Checksummenänderung bei Stringveränderung in der .exe?
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:
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?
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; Gruß Gambit |
Re: Keine Checksummenänderung bei Stringveränderung in der .
EXE-Dateien mit Read lesen :shock: ? Junge, EXE-Dateien sind binär! Da brauchst du Streams!
Dust Signs |
Re: Keine Checksummenänderung bei Stringveränderung in der .
Zitat:
@Fragesteller: eigentlich sollte sich in jedem Fall die Checksumme ändern. Ansonsten könnte es sein, daß die Methode zur Berechnung nicht wirklich gut ist ;) |
Re: Keine Checksummenänderung bei Stringveränderung in der .
Ja, das habe ich mir auch schon gedacht. Kennt jemand ne bessere Methode?
|
Re: Keine Checksummenänderung bei Stringveränderung in der .
nimmsu die DCP - Hashes
DCP in Torry eingeben freeware |
Re: Keine Checksummenänderung bei Stringveränderung in der .
"einfachen" crc32 check dürfte doch auch schon reichen oder? :gruebel:
|
Re: Keine Checksummenänderung bei Stringveränderung in der .
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).
|
Re: Keine Checksummenänderung bei Stringveränderung in der .
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... |
Re: Keine Checksummenänderung bei Stringveränderung in der .
Könntest du mal bitte den Link geben?
|
Re: Keine Checksummenänderung bei Stringveränderung in der .
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:13 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