programım bir virus olarak algılanıyor ve siliniyor

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

programım bir virus olarak algılanıyor ve siliniyor

Mesaj gönderen akdatilla »

Merhaba Arkadaşlar,
Uzun zaman önce bir batch file gibi görev yapan bir programım vardı. Bu programımı derlediğim zaman kullandığımız antivirus yazılımı oluşan exe dosyayı bir virus olarak değerlendiriyor ve siliyor. Şirketteki antivurus yazılımını değiştirmek gibi bir şansım yok. Bu konuya nasıl bir çözüm sağlayabilirim fikri olan var mi?
Selamlar, hayırlı cumalar.

Delphi 2007 kodları:

Kod: Tümünü seç

program ERPStart;

uses
  SysUtils,
  Windows,
  Forms;



function GetEnvVar(
  const csVarName : string ) : string;
const
{
 change the following value if you
 expect more than 250 char values
 from env. vars. set to 250 by
 default to be compatible with
 16bit versions of Delphi
}
  cnMaxVarValueSize = 250;

  {$IFDEF WIN32}

var
  pc1,
  pc2  : PChar;
begin
{
 although you can use huge strings with
 Delphi 2.x, we'll use good old PChars
 and allocate memory here
}
  pc1 :=
    StrAlloc( Length( csVarName )+1 );
  pc2 :=
    StrAlloc( cnMaxVarValueSize + 1 );
  StrPCopy( pc1, csVarName );
  GetEnvironmentVariableA(
    pc1, pc2, cnMaxVarValueSize );
  Result := StrPas( pc2 );
  StrDispose( pc1 );
  StrDispose( pc2 );
end;

{$ELSE}

var
  w1  : Word;
  pc1 : PChar;
begin
  GetEnvVar     := '';

  w1 := Length( csVarName );

{$IFDEF Windows}
  pc1 := GetDosEnvironment;
{$ELSE}
  pc1 :=
    Ptr(Word( Ptr( PrefixSeg, $2C )^),
    0 );
{$ENDIF}
  while( #0 <> pc1^ ) do
  begin
    if( 0 = StrLIComp( pc1,
            @csVarName[ 1 ], w1 ) )
        and ( '=' = pc1[ w1 ] ) then
    begin
      GetEnvVar :=
        StrPas( pc1 + w1 + 1 );
      Exit;
    end;
    Inc( pc1, StrLen( pc1 ) + 1 );
  end;
  GetEnvVar := '';
end;
{$ENDIF}

procedure Calistir;
var
   v,pth:String;
begin
     pth:=ExtractFilePath(Application.ExeName);
     chdir(pth);

     v:=GetEnvVar('TEMP');
     v:=v+'\ERP.Exe';
     CopyFile(pchar(pth+'App\ERP.Exe'),PChar(v),false);
     v:=v+' '+pth;
     WinExec(PChar(v),SW_SHOWNORMAL);
end;

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
    try
    { TODO -oUser -cConsole Main : Insert code here }
    Calistir;
  except
    on E:Exception do
      Writeln(E.Classname, ': ', E.Message);
  end;
  Application.Run;
end.
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: programım bir virus olarak algılanıyor ve siliniyor

Mesaj gönderen greenegitim »

exe dosyanızı dijital imza alarak imzalayabilirsiniz
https://msdn.microsoft.com/tr-tr/librar ... .110).aspx
Mücadele güzelleştirir!
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Re: programım bir virus olarak algılanıyor ve siliniyor

Mesaj gönderen akdatilla »

Cevabınız için çok teşekkür ederim.
Kopyalamaya karşı iyi bir çözüm olarak görünüyor, ancak derlediğim bütün programlar virus olarak görülmüyor. Sadece bu programın yaptığı işlevi her nasılsa antivirus algılıyor ve siliyor. Yani sanki porgramın çalışma şeklinde bir değişiklik yapabilirsek sorun çözülebilir gibi geliyor. Bu konuda başka fikri olan var mı?
ertank
Kıdemli Üye
Mesajlar: 1651
Kayıt: 12 Eyl 2015 12:45

Re: programım bir virus olarak algılanıyor ve siliniyor

Mesaj gönderen ertank »

Merhaba, Alternatif olarak virüs üreticisine "False Positive" bildirimi yapın. İnceleme sonrası kendi database tanımları içine temiz olarak kaydederler ve ilerleyen günlerde virüs olarak algılanmaz hale gelir.
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: programım bir virus olarak algılanıyor ve siliniyor

Mesaj gönderen mkysoft »

Benim dikkatimi çeken temp klasöründen bir exe çalıştırmanız oldu, çok ilgi çekici. Bu nedenle virus olarak görülüyor olabilir. Dinamik exe oluşturmayın, program files gibi yetkilerle korunan yerlerden çalıştırmayı deneyin ERP.exe'yi.
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Re: programım bir virus olarak algılanıyor ve siliniyor

Mesaj gönderen akdatilla »

mkysoft yazdı:Benim dikkatimi çeken temp klasöründen bir exe çalıştırmanız oldu, çok ilgi çekici. Bu nedenle virus olarak görülüyor olabilir. Dinamik exe oluşturmayın, program files gibi yetkilerle korunan yerlerden çalıştırmayı deneyin ERP.exe'yi.
Cevabınız için çok teşekkür ederim. Aşağıdaki gibi program başarılı bir şekilde çalıştı.

Kod: Tümünü seç

program StartERP;

uses
  SysUtils,
  Windows ,  Forms;

procedure Calistir;
var
   v,pth:String;
begin
     pth:=ExtractFilePath(Application.ExeName);
     chdir(pth);
     {
     v:=GetEnvVar('TEMP');
     v:=v+'\ERP.Exe';
     }
     v:='C:\ERPStart\ERP.exe';
     if not DirectoryExists('C:\ERPStart') then MkDir('C:\ERPStart');
     CopyFile(pchar(pth+'App\ERP.Exe'),PChar(v),false);
     v:=v+' '+pth;
     WinExec(PChar(v),SW_SHOWNORMAL);
end;

begin
  Calistir;
end.
Cevapla