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 .
|
Re: Keine Checksummenänderung bei Stringveränderung in der .
Also wenn ich da auf 'Download' klicke, komme ich immer nur zur Startseite (http://www.freeware.de/). Desweiteren: 'Plattformen: Win 98, Win ME, Win 95', ich weiß jan nicht, aber die meisten dürften mittlerweile Windows XP haben.
|
Re: Keine Checksummenänderung bei Stringveränderung in der .
Liste der Anhänge anzeigen (Anzahl: 1)
ja, ich habe auch XP...ich biete es einfach mal hier an, da es FreeWare ist, sollte der Autor nix dagegen haben...falls es doch heikel ist, einfach rausnehmen bitte...
|
Re: Keine Checksummenänderung bei Stringveränderung in der .
Versuch's mal hier
|
Re: Keine Checksummenänderung bei Stringveränderung in der .
Hat sich für mich erledigt, ich habe Delphi 6 aber es liegt nur die dcu Datei bei.
|
Re: Keine Checksummenänderung bei Stringveränderung in der .
Zitat:
|
Re: Keine Checksummenänderung bei Stringveränderung in der .
Liste der Anhänge anzeigen (Anzahl: 1)
es gibt noch was vergleichbares. Dort aber mit Source:
http://www.consolo.de/apps/Checksummer/default.asp Die in dem Download auf der Seite fehlende Unit liefere ich hier nach... |
Re: Keine Checksummenänderung bei Stringveränderung in der .
@threadstarte, deine funktion ließt ja auch nur 500 bytes ein, der string wird da garantiert net bei sein
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 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