Einzelnen Beitrag anzeigen

ShadowCaster

Registriert seit: 19. Mai 2003
71 Beiträge
 
Delphi 5 Enterprise
 
#8
  Alt 20. Mai 2003, 08:45
Das Problem ist, dass die Checksumme für den PE header der Exe sehr wohl verwendet wird. Ich möchte gern die genaue Formel und nicht eine DX-Library einbinden, wo ich gar kein DX machen will (ist doch einleuchtend, oder?) also nehmen wir an wir wollten für folgende Datei eine Checksumme berechnen, wo ein Feld (DWORD) für die Checksumme mit drinnen ist:

DWORD Checksumme (4 Byte .. ist am Anfang 0)
und dann z.B. 80 Byte Datenstream der folgt.

so jetzt will ich eine Checksumme von der kompletten Datei erstellen, das schließt aber das Feld Checksumme mit ein, was ja noch 0 (NULL, NIL, Nada, nix) ist. Nehmen wir an, die Checksumme wäre F5DA4209. nur wenn wir das Feld Checksumme jetzt auf den wErt setzen, haben wir ein Problem. Die Datei wird ausgeführt und dann vom Kernel gecheckt. Jetzt stimmt der Wert der Checksumme aber nicht mehr. Verstanden? Das ist mein Problem beim PE-Header. Man kann nicht einfach CRC 32 auf die ganze Datei anwenden, wenn man gar nicht weiß, welche Sektionen und welch Bytes des PE-Headers oder der Datei mit in die Checksumme einbezogen werden.

also ich brauch keine DX-Libraries, mit denen man Computerspiele (eigentlich) programmiert, sondern einen Algo und ich muss wissen welche Bytes für die Checksumme benutzt werden. Die Checksumme des MZ-Headers kann ich (hoffentlich) jetzt richtig berechnen.
  Mit Zitat antworten Zitat