Hallo,
ich habe für mein Programm eine Updatefunktion hinzugefügt, indem ich eine 2. Programm starte und diese lädt die Datei runter, ersetzt die .exe und startet es.
Alles läuft super, nur bei manchen antivirus Programmen erhalte ich eine Trojaner Meldung, wie z.B. NOD32, ArcaVir, Emsisoft, VBA32 und Ikarus.
Ich benutze für das Herunterladen UrlDownloadToFile und wenn ich die Zeile auskommentiere bekomme ich keine Trojaner Meldung mehr.
AntiVir konnte ich austricksen, indem ich den Umweg mit Button1Click(self) genommen habe.
Nur wie kann ich die anderen antivirus Programme austricksen?
Hier mein Code von Update.exe:
Delphi-Quellcode:
function TForm1.laden(Source, Dest:
string): Boolean;
begin
try
Result := UrlDownloadToFile(
nil, PChar(source), PChar(Dest), 0,
nil) = 0;
except
Result := False;
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Button1Click(Self);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if laden(
url+downloadFile, extractfilepath(application.exename)+downloadFile)
then
begin
MessageDlg('
Das Programm wurde aktualisiert.', mtInformation,[mbOk], 0);
ShellExecute(Application.Handle,'
open',Pchar(ExtractFilePath(application.exename)+'
Repertuar.exe'),
nil,
nil,sw_ShowNormal);
Form1.Close;
end
else
begin
MessageDlg('
Das Programm konnte nicht aktualisiert werden!!!.', mtWarning,[mbOk], 0);
ShellExecute(Application.Handle,'
open',Pchar(ExtractFilePath(application.exename)+'
Repertuar.exe'),
nil,
nil,sw_ShowNormal);
Form1.Close;
end;
end;
URL und DownloadFile sind Konstante.