AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi AV beim generieren der MD5-Checksum einer EXE-Datei
Thema durchsuchen
Ansicht
Themen-Optionen

AV beim generieren der MD5-Checksum einer EXE-Datei

Ein Thema von Andreas L. · begonnen am 10. Jul 2009 · letzter Beitrag vom 10. Jul 2009
Antwort Antwort
Andreas L.
(Gast)

n/a Beiträge
 
#1

AV beim generieren der MD5-Checksum einer EXE-Datei

  Alt 10. Jul 2009, 20:11
Hi,

ich iteriere durch eine Liste von Dateinamen und lasse mir für jede Datei eine MD5-Checksum generieren. Das klappt auch bei allen Dateien wunderbar, außer bei einer EXE-Datei. Das Programm ist nicht geöffnet und es wird auch nicht anderweitig drauf zugegriffen (Virenscanner testweise deaktiviert). Mit dem Debugger konnte ich sehen das der Pfad + Dateiname richtig ist.

Mein Code:
Delphi-Quellcode:
  for i := 0 to tempList.Count - 1 do
  begin
    Str := SplitString(tempList[i], '=');
    if FileExists(ExtractFilePath(Application.ExeName) + Str.Key) then
    begin
      if LowerCase(Md5Print(Md5File(ExtractFilePath(Application.ExeName) + Str.Key))) <> LowerCase(Str.Value) then
        Files.Add(Str.Key);
    end;
  end;
Und die AV:
Zitat:
---------------------------
CookieCrumbler Update
---------------------------
Zugriffsverletzung bei Adresse 004D3A78 in Modul 'Update.exe'. Lesen von Adresse 03146000.
---------------------------
OK
---------------------------
Hier bleibt der Debugger stehen (md5.pas):
Delphi-Quellcode:
procedure Encode(Source, Target: pointer; Count: longword);
var
   S: PByte;
   T: PDWORD;
   I: longword;
begin
   S := Source;
   T := Target;
   for I := 1 to Count div 4 do begin
      T^ := S^; //hier tritt die Av auf
      inc(S);
      T^ := T^ or (S^ shl 8);
      inc(S);
      T^ := T^ or (S^ shl 16);
      inc(S);
      T^ := T^ or (S^ shl 24);
      inc(S);
      inc(T);
   end;
end;
Kann mir nicht vorstellen das in der md5.pas ein Fehler ist, aber wo sonst?

Ich verwende die md5-Unit von Matthias Fichtner (siehe Anhang).
Angehängte Dateien
Dateityp: pas md5_162.pas (12,3 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#2

Re: AV beim generieren der MD5-Checksum einer EXE-Datei

  Alt 10. Jul 2009, 20:56
Hab so eben noch eine Testanwendung gebastelt:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    Label1.Caption := MD5Print(MD5File(OpenDialog1.FileName));
    label1.Refresh;
  end;
end;
Funktioniert bei keiner exe. Hab diese Unit aber unter Turbo Delphi schon erfolgreich eingesetzt. Weiß jemand wie man die md5.pas Delphi 2009 kompatibel macht oder gibt es alternativen (kommerzielle Verwendung muss erlaubt sein, darf auch was kosten)?

EDIT: Geht auch nicht bei DLL, SYS, COM, etc. Bei Text-Dateien (txt, html, etc.) aber schon...

Problem gelöst, verwende jetzt das DEC 5.2
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:00 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