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

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

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

Mensagem 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 ! :))
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

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

Mensagem 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 ?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

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

Mensagem 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.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem 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 é.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

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

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

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

Mensagem 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.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

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

Mensagem por asimoes »

pode ser suprimido algum bloco do manifest para testar com o antivirus ?
por exemplo deixar só a parte visual ?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
lucks
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 30 Mar 2009 18:29
Localização: Guarapari-ES

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

Mensagem 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
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

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

Mensagem 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.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
lucks
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 30 Mar 2009 18:29
Localização: Guarapari-ES

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

Mensagem por lucks »

Ótimo pessoal !

Obrigado pelas informações.

Valeu mesmo.
:{
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

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

Mensagem 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


Responder