Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

inno setup executable seen as a Virus

Good Morning,

My exe created with Innosetup are seen as a Virus!!!

It is really annoying because I can't send them to help out my user. As anyone ever faced this problem?

I use InnoSetup 5.5, and I do not actually copy file, I just have to generate a few command to handle certificate.

Thanks in Advance

[EDIT]

The Inno script

So it's a bit complicated as I need to take admin right using psexec, delete the previous certificate, then install the new One

#define MyAppName "Update Certificate"
#define MyAppVersion "1.0" 
#define MyAppPublisher "kkk"
#define MyAppExeName "updateBase"
#define installConf "installConfig.exe"  
#define uninstallCert "unCert.exe"
#define psexec "psexec.exe"
#define passAdmin "password"


[Setup]

AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={localappdata}
DisableDirPage=yes
DisableReadyPage=yes
DisableWelcomePage=yes
PrivilegesRequired=none
CreateAppDir=no   
CreateUninstallRegKey = no    
OutputBaseFilename={#MyAppExeName}
Compression=lzma
SolidCompression=yes     
SetupIconFile=favicon.ico

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Files]
Source: "{#installConf}"; Flags: dontcopy
Source: "{#psexec}";  Flags: dontcopy
Source: "{#uninstallCert}"; Flags: dontcopy

[Code]
var
  ResultCode: Integer;
  Page: TWizardPage;
  CustomPageID: Integer;
  InstallRadioButton: TNewRadioButton;
  DeleteRadioButton: TNewRadioButton;   
  UpdateRadioButton: TNewRadioButton;

procedure ExitProcess(exitCode:integer);
  external '[email protected] stdcall';

The unCert.exe is handeling certificate to delete them

// Uninstall previous certificate 
function UninstallCertificat(): Boolean;var 
  arg: String;
begin   
      ExtractTemporaryFile('{#uninstallCert}');  
      ExtractTemporaryFile('{#psexec}');      
     arg :=  ' /accepteula -u Administrateur -p {#passAdmin} -i ' + AddQuotes(ExpandConstant('{tmp}\{#uninstallCert}')) ; 
     Result := Exec(AddQuotes(ExpandConstant('{tmp}\{#psexec}')),arg,'', SW_SHOW, ewWaitUntilTerminated, ResultCode);
     Log(AddQuotes(ExpandConstant('{tmp}\{#psexec}'))); 
     Log(AddQuotes(ExpandConstant('{tmp}\{#uninstallCert}')));
      if ResultCode <> 0 then begin
        MsgBox('InitializeSetup:' #13#13 'Certificat Uninstall Failed', mbError, MB_OK);
        ExitProcess(2);
      end else  begin;
          MsgBox('InitializeSetup:' #13#13 'Certificat Uninstall Done', mbInformation, MB_OK);
      end;
 end;          

 // Géneration des Mots de passe pour le certificats
function getPassWord(): string;
var
  computerName: string;
  V: string;
begin
  // Something to generate the password
end;



// Certificate installation 
function InstallCertificat(): Boolean;var 
  arg: String;
  Filename: string;
  pass: string;
begin
  pass := getPassWord();;                
  ExtractTemporaryFile('{#psexec}');      

  Filename := ExpandConstant('{tmp}\cert.p12');
  FileCopy(ExpandConstant('{src}\cert.p12'),ExpandConstant('{tmp}\cert.p12'), False);
     arg :=  ' /accepteula -u Administrateur -p {#passAdmin} -i ' + GetSystemDir() +'\certutil.exe -p ' + pass + ' -importPFX ' + Filename + ' NoExport'; 
     Result := Exec(AddQuotes(ExpandConstant('{tmp}\{#psexec}')),arg,'', SW_SHOW, ewWaitUntilTerminated, ResultCode);
      if ResultCode <> 0 then begin
        Log( SysErrorMessage(ResultCode));
        MsgBox('InitializeSetup:' #13#13 'Certificat Installation Failed', mbError, MB_OK);
        ExitProcess(2);
      end else  begin;
          MsgBox('InitializeSetup:' #13#13 'Certificat Installation Done' , mbInformation, MB_OK);
      end;
 end;
like image 901
LinChan Avatar asked Jul 21 '14 11:07

LinChan


1 Answers

Try to comment out SetupIconFile line. In my case the problem with antivirus was with .ico file.

like image 91
bartolo-otrit Avatar answered Sep 28 '22 05:09

bartolo-otrit