Página 2 de 4

Versão no EXE faz diferença pra antivírus?

Enviado: 29 Mai 2018 17:27
por alaminojunior
JoséQuintas escreveu:O AVG tem um tipo de proteção que TODO DIA pede pra liberar o EXE.
Não sei se seria seguro desabilitar isso.


E voltando ao assunto do manifest:

Liberar o visual tem a ver com liberar as "novidades" dos controles comuns do Windows para o aplicativo, isso é bloqueado por default.

Código: Selecionar todos

name="Microsoft.Windows.Common-Controls"
Acredito que meu manifest não afete a segurança, já que aparentemente "AsInvoker" parece ser "do jeito que foi chamado"

Já o postado pelo rochinha, fico na dúvida.
"highestAvailable" parece ser o máximo disponível, o que não sei dizer se é o default máximo, ou se é o máximo mesmo.

Como se trata apenas de visual, acredito que sejam apenas formas de declarar a segurança padrão.
No meu caso não recebo nenhum alerta de segurança, nem mesmo em rede com domínio do Windows Server, e com acesso restrito.
Não li todo o post a respeito do Manifest (depois faço isso), mas a minha experiência aqui foi a seguinte:
Compilo um executável que rodará na systray.
Ao copiar este para a sua pasta de destino, e com as exceções do Avast desligadas, este último detecta vírus no exe e manda o sujeito para a quarentena.
Estava usando (não sei porquê, já que não existe janela visível) o windowsXP.manifest.
Excluindo no .rc a referência ao manifest, tudo ficou lindo ! :))

Versão no EXE faz diferença pra antivírus?

Enviado: 29 Mai 2018 17:49
por asimoes
Boa noite Alamino,

Deixa eu entender isso, você removeu o manifest do rc e o antivirus parou de bloquear o exe ?
Você sabe que o manifest é responsável pelo visual moderno do windows você sacrificou isso ?

Versão no EXE faz diferença pra antivírus?

Enviado: 29 Mai 2018 17:58
por alaminojunior
Deixa eu entender isso, você removeu o manifest do rc e o antivirus parou de bloquear o exe ?
Você sabe que o manifest é responsável pelo visual moderno do windows você sacrificou isso ?
Sim, entendo isso.
Mas como eu citei, nesta aplicação em questão não existe janela, pois fica rodando no systray monitorando e enviando arquivos via FTP.
Sendo assim ...

Nos outros aplicativos que tem interface com usuário, ainda é um problema em alguns clientes, e neste caso precisamos recorrer ao recurso de exceções dos antivírus.

Versão no EXE faz diferença pra antivírus?

Enviado: 29 Mai 2018 18:04
por JoséQuintas
O manifest que uso tem 3 partes:

1 - liberar os controles 6.0, que são os recursos a partir do Windows XP, PRA VISUAL
2 - segurança: definir a padrão. padrão = exatamente o que o usuário puder acessar
3 - Versão do Windows: Se não definir versão, o Windows assume um default, que pode ser diferente da atual.

Na documentação da Microsoft já encontrei algo sobre se deixar com privilégios acima do normal, somente será aceito programa assinado.

No geral eu diria o seguinte: sem arquivo manifest, vai ser assumido um default, que não sei dizer qual é.

Versão no EXE faz diferença pra antivírus?

Enviado: 29 Mai 2018 18:23
por rochinha
Amiguinhos,

Melhor sacrificar o visual da aplicação do que o cliente nos sacrificar.

Também usava um manifest no meu sistema e cheguei a tirá-lo e parou o ataque dos anti-vírus.

Versão no EXE faz diferença pra antivírus?

Enviado: 29 Mai 2018 18:31
por JoséQuintas
Uso igual pra TODOS os clientes.
Tem cliente com Windows Server, AVG, Avast, Norton, etc não me perguntem porque não faço idéia o que eles usam.
Apenas o aplicativo tem a opção de atualizar, e eles baixam o EXE novo.
Mas assino o EXE.

Mesmo numa instalação inicial, apenas instalo, sempre com o default do Windows.

Versão no EXE faz diferença pra antivírus?

Enviado: 29 Mai 2018 18:44
por alaminojunior
JoséQuintas escreveu:O manifest que uso tem 3 partes:

1 - liberar os controles 6.0, que são os recursos a partir do Windows XP, PRA VISUAL
2 - segurança: definir a padrão. padrão = exatamente o que o usuário puder acessar
3 - Versão do Windows: Se não definir versão, o Windows assume um default, que pode ser diferente da atual.

Na documentação da Microsoft já encontrei algo sobre se deixar com privilégios acima do normal, somente será aceito programa assinado.

No geral eu diria o seguinte: sem arquivo manifest, vai ser assumido um default, que não sei dizer qual é.
Quintas, como você tem um bom conhecimento da estrutura desse manifest (e suas consequências rsrsrsr), se for possível, poste aqui este arquivo com cada linha comentada explicando o seu significado. Desta forma creio que podemos explorar melhor este recurso.

Versão no EXE faz diferença pra antivírus?

Enviado: 29 Mai 2018 18:55
por asimoes
pode ser suprimido algum bloco do manifest para testar com o antivirus ?
por exemplo deixar só a parte visual ?

Versão no EXE faz diferença pra antivírus?

Enviado: 30 Mai 2018 07:01
por JoséQuintas
Já falamos sobre manifest em outro post.
No Harbour tem a opção dele criar automático.
Lembro que na época pesquisei e coloquei no aplicativo, ainda não existia isso no Harbour.

Pesquisar um pouco, pra completar este post....
Não são os links que usei, são links que encontrei agora, pausando este post pra procurar.

https://support.microsoft.com/pt-br/hel ... -studio-20

Esse diz pra ser pra NET, mas tudo bem....
Reparem que só mexe com os privilégios, pra deixar o default do usuário.

Código: Selecionar todos

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>
Este detalhe me chamou a atenção, no texto do link:
Se você quiser desenvolver um programa "Certified for Windows Vista", você precisa incorporar um arquivo de manifesto em um arquivo executável.
Lembrando que, em ordem de idade/lançamento, vém o Windows XP, depois o Windows Vista, depois o Windows 7.
Se isso começou no Windows Vista, vale para as versões seguintes.

E repare que no final, mostra que teria que assinar o aplicativo.
Lembrando que esse roteiro é pra NET, que foi quando surgiu a tal assinatura nos programas fornecida junto com o Visual Studio. O NET foi o primeiro a usar assinatura.

Este outro link fala sobre usar o "estilo visual" do comctl32.dll versão 6 - controles comuns, parte do Windows, mas versão 6 somente a partir de determinada versão.

https://msdn.microsoft.com/en-us/librar ... s.85).aspx

Código: Selecionar todos

<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="*"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
Tem também a wikipédia:

https://en.wikipedia.org/wiki/Manifest_file

Mais outro, este descreve muitas opções possíveis.

https://msdn.microsoft.com/en-us/librar ... s.85).aspx

Mais outro:

http://www.restuner.com/howto-insert-tr ... nifest.htm

Este pode ser interessante: perguntas e respostas sobre manifest, num blog da Microsoft

https://blogs.msdn.microsoft.com/patric ... questions/

nesse chama a atenção esta parte:
Windows 7 introduced “switchback” into the manifest by adding a <compatibility> section to the manifest. This allows you to state what OS you support. So, if you insert the tag that you support Windows 7, you will get a handful of new behaviors. Otherwise, your app will “switchback” to the Vista behavior.
A partir do Windows 7 tem a seção de compatibilidade.
Se indicar Windows 7 ok, senão vai assumir Windows Vista.

São links que peguei aleatórios em pesquisas do google.
Vai ser difícil encontrar os mesmos links aonde peguei as informações que usei, inclusive sobre "futuramente ser obrigatório assinar programa com privilégios elevados"., não encontrei.

Versão no EXE faz diferença pra antivírus?

Enviado: 30 Mai 2018 07:20
por JoséQuintas
https://msdn.microsoft.com/en-us/librar ... s.85).aspx

Requerimentos de certificação pra aplicativos desktop.
7.1 Your app must not perform version checks for equality
If you need a specific feature, check whether the feature itself is available. If you need Windows 7, check for Windows 7 or later (>= 6.2). This way, your detection code will continue to work on future versions of Windows. Driver installers and uninstall modules should never check the operating system version.
Resumindo: precisa testar versão direito, pra continuar funcionando em futuras versões do Windows.
6. Apps must digitally sign files and drivers
Precisa assinar arquivos.
9.2 Your app’s main process must be run as a standard user (asInvoker).
Any administrative features must be moved into a separate process that runs with administrative privileges. User facing apps, such as those accessible through the program group on the Start-Menu, and requiring elevation must be Authenticode signed.
Seu aplicativo precisa rodar ASInvoker. Se precisar privilégios administrativos.... precisa ser assinado.

Ok. este link é pra certificação Microsoft de aplicativos, mas justamente vém sendo expandido a outros aplicativos.

Versão no EXE faz diferença pra antivírus?

Enviado: 27 Set 2018 09:38
por lucks
Bom dia Pessoal !

Já a algum tempo temos o mesmo problema dos relatados neste tópico pelos colegas.

Gostaria de saber se alguém usa certificado "Code Signing" para assinar seus executáveis...

Minhas dúvidas são:

1 - Adquirindo um certificado oficial Code Signing, e passando a assinar os executáveis, o Windows vai para de dar as menagens:
"Não foi possível verificar quem criou este arquivo. Tem Certeza de que deseja executar o arquivo ?"
ou
"O editor não pôde ser verificado. Tem certeza de que deseja executar este software?"

2 - Que os Antivirus (Avast, Norton, etc) deixarão de acusar suspeita de vírus em um arquivo saudável e assinado com certificado "Code Signing".

Estamos analisando a viabilidade de adquirir o certificado da comodo (https://www.comodobr.com/produtos/certi ... igning.php)
Este foi o mais em conta que encontrei (R$ 590,00 para um ano).

Alguém conhece o Certificado da Comodo ?

PS:Atualmente desenvolvemos em Harbour e Delphi e o a aquisição deste certificado seria para assinar estes tipos de exe.

Obrigado.

Abraço a todos,

Luciano

Versão no EXE faz diferença pra antivírus?

Enviado: 27 Set 2018 11:58
por clodoaldomonteiro
Bom dia Luciano,
Atualmente estamos usando o COMODO RSA nas nossas aplicações xHarbour e Delphi e até agora está tudo muito bem.
Tivemos que deixar de usar o UPX, que compacta o executável e traz uma impressão que a aplicação fica pequena, e dava problemas com alguns anti-vírus. Achamos que não tem a necessidade de usa-lo, pois quando empacotamos o instalador, este o faz compactando os arquivos.

Versão no EXE faz diferença pra antivírus?

Enviado: 27 Set 2018 12:36
por JoséQuintas
Aqui uso o da Comodo e também o UPX.
Tem antivírus que nem importa se está assinado, ele acha estranho e bloqueia (se estiver no automático).
Acabam considerando suspeito se poucos usuários usam o EXE, o que pra aplicativo comercial é normal ter menos de 500 usuários.

Versão no EXE faz diferença pra antivírus?

Enviado: 27 Set 2018 14:04
por lucks
Ótimo pessoal !

Obrigado pelas informações.

Valeu mesmo.
:{

Versão no EXE faz diferença pra antivírus?

Enviado: 13 Jul 2024 17:45
por Abel
ola, Pessoal

ainda estou tentando ajustar meu sistema para evitar que o DEFENDER fique achando que é virus trojan.

JoseQuintas, no sua ultima resposta, voce falou varias coisas que eu nem sabia do que se tratava, entao fiz varias pesquisas
referente manifest, assinar EXE etc...

estou ajustando o RC do meu sistema para que gere a aba "detalhes" como vc mostrou nesse post de 2015.

ja consegui fazer o RC certinho, o que eu nao descobri, é porque o seu EXE tem uma aba "segurança" e o meu EXE
nao tem.

sabe o que temos que ajustar no harbour para criar essa aba tambem, pois acho q ela pode me ajudar a
evitar que o defender fique toda hora dizendo que meu EXE é um trojan.


Agradeço a todos que puderem contribuir,

segue meu RC (talvez tenha ate linhas nele que podem ser retiradas, mas como estou aprendendo fiz assim, atraves de varias consultas
aqui no forum).

Código: Selecionar todos

TRAY ICON "CFCB.ICO"
AppIcon ICON     "CFCB.ICO"

/*
 * $Id: harb_win.rc 17184 2012-01-06 15:28:23Z vszakats $
 */

/* ---------------------------------------------------------------
   Copyright 2011 Viktor Szakats (harbour syenar.net)
   See COPYING for licensing terms.
   ---------------------------------------------------------------
 */

#include "hbver.h"

#define HB_MACRO2STRING( macro )       HB_MACRO2STRING_( macro )
#define HB_MACRO2STRING_( macro )      #macro

#define HB_VER_PRODUCTVERSION          55,6,0,0 // HB_VER_MAJOR,HB_VER_MINOR,HB_VER_RELEASE,0
#define HB_VER_PRODUCTVERSION_STR      HB_MACRO2STRING( HB_VER_MAJOR ) "." HB_MACRO2STRING( HB_VER_MINOR ) "." HB_MACRO2STRING( HB_VER_RELEASE ) HB_VER_STATUS "\0"
#define HB_VER_FILEVERSION             HB_VER_PRODUCTVERSION
#define HB_VER_FILEVERSION_STR         HB_VER_PRODUCTVERSION_STR

#define HB_VERSAOAUTO "55.6.0.0"
#define HB_NAME                        "AUTO\0"

/* Version info */

#include <winver.h>

VS_VERSION_INFO VERSIONINFO
FILEVERSION    HB_VER_FILEVERSION
PRODUCTVERSION HB_VER_PRODUCTVERSION
FILEFLAGSMASK  VS_FFI_FILEFLAGSMASK
FILEFLAGS      0
FILEOS         VOS__WINDOWS32
FILETYPE       VFT_APP
BEGIN
   BLOCK "StringFileInfo"
   BEGIN
      BLOCK "040904E4"
      BEGIN
         VALUE "CompanyName",      "ABEL" 
         VALUE "FileDescription",  HB_NAME // HB_VER_FILEDESCRIPTION_STR
         VALUE "FileVersion",      HB_VERSAOAUTO 
         VALUE "InternalName",     HB_NAME 
         VALUE "LegalCopyright",   "Copyright (c) - Abel \0" 
   //   VALUE "LegalTrademarks1", HB_VER_LEGALTRADEMARKS1_STR  // barrei por nao saber o que é 
         VALUE "ProductName",      "SISTEMA DE GERENCIAMENTO" 
         VALUE "ProductVersion",   HB_VERSAOAUTO 
         VALUE "OriginalFilename", "AUTO.EXE" 
         
         VALUE "Comments",         "Criado por Abel.\0"
      END
   END

   BLOCK "VarFileInfo"
   BEGIN
      VALUE "Translation", 0x0416, 1252  // portugues
   END
END

/* Preparation for manifest */

/* Not using predefined Windows macros here, because some C compilers
   with fail badly with their own definitions (f.e. pocc) and/or their own
   Windows headers. [vszakats] */
   
#define __HB_CREATEPROCESS_MANIFEST_RESOURCE_ID 1
#define __HB_RT_MANIFEST                        24