Deixando algumas dicas aqui.
A compilação de meu sistema é automatizada e cada revisão/compilação recebe um numero de versão sequencial. O automatizaro gera os arquivos necessários para a segurança como .MANIFEST e .RC que são mesclados ao .EXE no processo.
UAC.MANIFEST
Código: Selecionar todos
//
cRC := [<?xml version="1.0" encoding="UTF-8" standalone="yes"?>]+ CRLF
cRC := cRC + [<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">]+ CRLF
cRC := cRC + [ <v3:trustInfo xmlns:v3="urn:schemas-microsoft-com:asm.v3">]+ CRLF
cRC := cRC + [ <v3:security>]+ CRLF
cRC := cRC + [ <v3:requestedPrivileges>]+ CRLF
cRC := cRC + [ <v3:requestedExecutionLevel level="highestAvailable" />]+ CRLF
cRC := cRC + [ </v3:requestedPrivileges>]+ CRLF
cRC := cRC + [ </v3:security>]+ CRLF
cRC := cRC + [ </v3:trustInfo>]+ CRLF
cRC := cRC + [</assembly>]+ CRLF
//
ret_line := "chr(13)+chr(10)"
errhandle = fcreate( "uac.manifest" )
fwrite( errhandle, cRC )
fclose( errhandle )
Código: Selecionar todos
cRC := [LANGUAGE LANG_PORTUGUESE,SUBLANG_PORTUGUESE_BRAZILIAN] + CRLF
cRC := cRC + [APPLICATION_ICO ICON "nfwh.ico" ] + CRLF
cRC := cRC + [VS_VERSION_INFO VERSIONINFO ] + CRLF
cRC := cRC + [FILEVERSION 1,0,0,0 ] + CRLF
cRC := cRC + [PRODUCTVERSION 1,0,0,0 ] + CRLF
cRC := cRC + [FILEFLAGSMASK 0x0 ] + CRLF
cRC := cRC + [FILEFLAGS 0x0 ] + CRLF
cRC := cRC + [FILEOS VOS__WINDOWS32 ] + CRLF
cRC := cRC + [FILETYPE VFT_APP ] + CRLF
cRC := cRC + [FILESUBTYPE VFT2_UNKNOWN ] + CRLF
cRC := cRC + [{ ] + CRLF
cRC := cRC + [ BLOCK "StringFileInfo" ] + CRLF
cRC := cRC + [ { ] + CRLF
cRC := cRC + [ BLOCK "040904E4" ] + CRLF
cRC := cRC + [ { ] + CRLF
cRC := cRC + [ VALUE "Comments", "Sistema Administrativo Total\0" ] + CRLF
cRC := cRC + [ VALUE "CompanyName", "5Volution.COM - www.5volution.com.br \0"] + CRLF
cRC := cRC + [ VALUE "FileDescription", "Fenix Legacy\0" ] + CRLF
cRC := cRC + [ VALUE "FileVersion", "] + strzero(nRevisao,4) + [\0" ] + CRLF
cRC := cRC + [ VALUE "InternalName", "Fenix Legacy\0" ] + CRLF
cRC := cRC + [ VALUE "LegalCopyright", "5Volution.COM\0" ] + CRLF
cRC := cRC + [ VALUE "LegalTrademarks", "Fenix Legacy / 5VOLUTION\0" ] + CRLF
cRC := cRC + [ VALUE "OriginalFilename", "NFWH29.EXE\0" ] + CRLF
cRC := cRC + [ VALUE "ProductName", "5Volution Fenix Legacy\0" ] + CRLF
cRC := cRC + [ VALUE "ProductVersion", "10\0" ] + CRLF
cRC := cRC + [ } ] + CRLF
cRC := cRC + [ } ] + CRLF
cRC := cRC + [ BLOCK "VarFileInfo" ] + CRLF
cRC := cRC + [ { ] + CRLF
cRC := cRC + [ VALUE "Translation", 0x416, 0x4B0 ] + CRLF
cRC := cRC + [ } ] + CRLF
cRC := cRC + [} ] + CRLF
cRC := cRC + [] + CRLF
//
ret_line := "chr(13)+chr(10)"
errhandle = fcreate( "revisao.rc" )
fwrite( errhandle, cRC )
fclose( errhandle )
Os arquivos não precisam ser criados a cada compilação mas são usados sempre.
Tem um tópico aqui que ensina como criar seu certificado de assinaturas local. Não serve para assinar documentos SEFAZ.
Assinatura Digital de aplicativos sem OpenSSL


