Clique aqui para voltar à tela inicial da ajuda


Como proteger o programa com um número serial

O registro de usuário com o Mep Installer agora está mais prático. Você compila o programa de instalação uma única vez, e depois gera os dados de registro para os usuários.

O sistema de registro funciona com base em avançadas técnicas de criptografia e proteção de dados, integrando somatórias adaptadas de MD5 às validações do sistema SWG32, aplicado nas versões anteriores. Com base na ID da aplicação, no nome e organização do usuário e numa senha de compilação que você define, é gerado um código. Este código será utilizado no programa de instalação, e define-se como o "número serial".

Importante: este recurso só estará disponível se você estiver trabalhando no modo avançado do Mep Installer. Consulte aqui como alternar para esse modo.

Registrando o programa

Para criar um registro para determinado usuário, você deverá possuir em mãos as seguintes informações:

Na tela do compilador, clique no menu Ferramentas > Gerar registro para usuário, e preencha as informações. Ao clicar em "Gerar", o número serial será gerado. Deixando marcado o item 'Salvar informações de registro...' você poderá salvá-lo então num arquivo de texto, e passar os dados ao usuário.

Tela de geração do registro

Tela de instalação - solicitação do registro

Você deverá fornecer o nome de usuário, organização e número serial exatamente como definidos no registro, inclusive diferenciando letras maiúsculas de minúsculas. Evite utilizar acentos ou caracteres especiais, pois o usuário poderá ter problemas ao instalar se estiver executando um sistema em outro idioma, por exemplo.

Importante: nunca passe a senha de compilação para ninguém, exceto para as pessoas responsáveis por registrar o programa.

Clicando no botão com um sinal de mais "+" ao lado do campo da ID da aplicação, ela será gravada na lista, para que nas próximas vezes você não precise digitá-la novamente. Para remover uma ID da lista, selecione-a, e clique no botão com o sinal de menos "-". Para agilizar seu trabalho, ao abrir a tela de registro com um projeto aberto na tela do compilador, alguns campos já virão preenchidos, incluindo a ID da aplicação e a senha de compilação.

Ao salvar a mensagem de texto com os dados a serem passados ao usuário, será utilizado um modelo simples. Você pode marcar a opção para utilizar o modelo 2, e fornecer mais informações, numa mensagem ainda mais personalizada. A base destas mensagens são os arquivos "RegTemplate.txt" e "RegTemplate2.txt", que estão na pasta onde o Mep Installer foi instalado. Você pode editá-los com um editor puro, tal como o Mep Texto ou o Bloco de notas, por exemplo. Neste arquivo você pode utilizar as constantes definidas, que serão substituídas dinamicamente ao gerar a mensagem. Utilize-as em qualquer ordem, e quantas vezes for necessário. Veja aqui uma lista das constantes de mensagens válidas. Dica: ao editar os arquivos, guarde uma cópia com outro nome ou em outro local, pois ao reinstalar ou atualizar o Mep Installer eles serão substituídos pelos que estiverem sendo instalados.

Definindo a instalação protegida no projeto

Algumas diretivas da seção [Setup] do arquivo de projeto são responsáveis pela proteção e validação, além da exibição da tela de informações sobre o usuário. Definindo estas diretivas no arquivo de projeto, você criará um programa de instalação que exige registro para ser instalado. É claro, você poderá editar sempre que quiser esses valores, incluindo a senha de compilação. Quando você define as opções pelo Assistente de Projeto, elas são gravadas diretamente no arquivo de projeto, da mesma forma como se você as tivesse digitado.  Note que o arquivo de projeto não é criptografado, portanto guarde-o sempre num lugar seguro, e permita a edição apenas por pessoas realmente autorizadas. Essas diretivas não estão listadas na página sobre a seção [Setup]. Veja as diretivas e como utilizá-las:

UserInfoPage - Se você colocar UserInfoPage=yes, a tela de informações do usuário será exibida. Ela pede apenas o nome e a organização, a menos que você defina outras diretivas, tal como a da senha de compilação. As informações que o usuário digitar poderão ser recuperadas por meio das constantes especiais, a saber, {userinfoname} retorna o nome preenchido, {userinfoorg} a organização, e {userinfoserial} retorna o número serial preenchido. Você pode, com elas, gravar as informações do usuário por exemplo no registro ou em algum arquivo INI, utilizando respectivamente as seções [Registry] e [INI]. Por padrão, o nome de usuário e a organização deverão vir preenchidos de acordo com os dados da instalação do Windows no computador do usuário. Se a mesma aplicação estiver sendo atualizada ou instalada novamente, por padrão, o nome e a organização exibidos serão os mesmos que o usuário utilizou na última instalação.

UsePreviousUserInfo - Por padrão, quando o usuário instala seu programa, as informações do nome de usuário e organização são gravadas no registro. Numa próxima instalação da mesma aplicação (que tiver o mesmo valor da ID da já instalada), o nome e a organização deverão vir preenchidos da mesma forma que o usuário preencheu na última instalação. Se quiser evitar isso, fazendo com que o usuário deva digitar o nome e a organização a cada instalação, coloque UsePreviousUserInfo=no.

DefaultUserInfoName e DefaultUserInfoOrg - Define um nome de usuário e um nome de organização que deverão vir preenchidos por padrão no programa de instalação, e o usuário poderá alterá-los se quiser. Se você colocar DefaultUserInfoName=Marcos, por exemplo, o campo do nome de usuário viria preenchido com "Marcos". Note que isso não é uma validação, apenas define textos que serão exibidos.

Serial - Este item não determina o número serial da instalação, mas será utilizado como principal base para a codificação e geração do mesmo. É a sua "senha de compilação". Defina um número, uma palavra, uma frase ou uma combinação que só você ou os funcionários responsáveis por registrar o programa possuam. Na hora do registro, você deverá digitar a ID da aplicação e esta senha, para poder gerar o número serial para determinado usuário. Ela é utilizada em especial para uma proteção, onde outros usuários do Mep Installer não conseguirão gerar registros para programas instalados com o Mep Installer, a menos que possuam esta senha. Guarde-a ou decore-a, pois a cada registro ela deverá ser informada. Para sua segurança, se quiser, pode alterar esta senha a cada versão do seu programa ou periodicamente. Note que uma instalação compilada com uma senha só poderá ser registrada se for utilizada a mesma senha no registro.

DefaultUserInfoSerial - De forma semelhante aos itens DefaultUserInfoName e DefaultUserInfoOrg, este define o número serial que deverá vir preenchido na tela de instalação. Não é recomendável utilizá-lo. Note que se ele não coincidir com o serial definido, o instalador não permitirá a instalação, uma vez que seria como se o usuário o tivesse digitado. Exemplo: DefaultUserInfoSerial=123-456

UsePreviousSerial - De forma semelhante ao item UsePreviousUserInfo, este define se o serial preenchido na tela de instalação será o mesmo que o usuário utilizou na última instalação. O padrão é não, ou seja, o usuário sempre deverá digitar o número serial (independentemente de a diretiva UsePreviousUserInfo estar ativada ou não). Coloque UsePreviousSerial=yes se quiser ativá-lo. Não é recomendável utilizar esta opção, pois o número serial digitado pelo usuário seria gravado no registro do Windows.

RegUserInfo - Se você colocar RegUserInfo=yes, o nome e a organização preenchidos pelo usuário serão exibidos na área de suporte, no painel de controle do Windows 2000, XP ou superior. É interessante para se utilizar em programas comerciais, pois muitas vezes para contatar o suporte o usuário deve fornecer o nome e a organização como foram registrados.

HideSerial - Por padrão, o número serial aparece enquanto é digitado. Se você definir HideSerial=yes, aparecerão asteriscos, como num campo de senha.

DisableSerialOK - Quando a instalação está com um número serial, e o mesmo é inserido corretamente pelo usuário, aparece um indicador de visto ao lado do campo. O usuário vê então que inseriu a informação corretamente, e que pode prosseguir com a instalação. Se você quiser desabilitar esse indicador, coloque a diretiva DisableSerialOK para yes.

Exemplos

Veja alguns exemplos, que você pode copiar e colar nos seus arquivos de projetos, é claro que adaptando quando necessário.

Solicita número serial e a senha de compilação é 123456:

[Setup]
UserInfoPage=yes
Serial=123456

Vem com o serial preenchido

[Setup]
Serial=teste
DefaultUserInfoSerial=123-456-789

Vem com os campos em branco, e oculta o serial

[Setup]
Serial=teste123
DefaultUserInfoName=
DefaultUserInfoOrg=
DefaultUserInfoSerial=
HideSerial=yes

Gravando as informações de registro

Para gravar as informações do usuário... Você pode gravá-las no registro ou em arquivos INI (ou em ambos, se quiser) e depois seu programa poderá exibir essas informações, por exemplo na tela "Sobre.../About...". Consulte as páginas que falam das seções [Registry] e [INI], para mais informações sobre a gravação/edição de  itens durante a instalação.

Para gravar no registro...

   [Registry]
   Root: HKLM; Subkey: "Software\Minha Empresa"; Flags: uninsdeletekeyifempty
   Root: HKLM; Subkey: "Software\Minha Empresa\Meu Programa"; Flags: uninsdeletekey
   Root: HKLM; Subkey: "Software\Minha Empresa\Meu Programa"; ValueType: string; ValueName: "RegUsuario"; ValueData: "{userinfoname}"
   Root: HKLM; Subkey: "Software\Minha Empresa\Meu Programa"; ValueType: string; ValueName: "RegOrganizacao"; ValueData: "{userinfoorg}"

Para gravar em arquivos INI...

   [INI]
   Filename: "{app}\MEUPROG.INI"; Section: "Registro"; Flags: uninsdeletesection
   Filename: "{app}\MEUPROG.INI"; Section: "Registro"; Key: "RegUsuario"; String: "{userinfoname}"
   Filename: "{app}\MEUPROG.INI"; Section: "Registro"; Key: "RegOrganização"; String: "{userinfoorg}"

No exemplo do registro, as informações seriam gravadas na chave HKEY_LOCAL_MACHINE\Software\Minha Empresa\Meu Programa, nos valores RegUsuario e RegOrganizacao, naturalmente valores do tipo string. E no exemplo do arquivo INI, o arquivo seria o "MEUPROG.INI", e seria editado ou criado na pasta da aplicação. As chaves RegUsuario e RegOrganização teriam sido gravadas na seção [Registro].

Você pode gravar com os nomes que quiser, em qualquer chave do registro ou arquivo INI, e em dois ou mais locais, se achar necessário.

Dicas e mais informações

Veja dicas, configurações e técnicas para aprimorar o uso dos recursos de registro do Mep Installer.


Clique aqui para voltar à tela inicial da ajuda