Você está na página 1de 53

Manual do Desenvolvedor 1

ndice
Componentes .................................................................................................................. 03 Apresentao .................................................................................................................. 04 Garantia ........................................................................................................................... 05 Direitos ............................................................................................................................ 06 Consideraes iniciais .................................................................................................... 07 Caractersticas tcnicas .................................................................................................. 08 Instalando o kit do desenvolvedor ................................................................................... 09 Formatando o plugue Compact-500 ............................................................................... 10 Instalando os drivers e DLLs do Compact-500 ................................................................ 17 Envelopando um aplicativo de 32 bits ............................................................................ 20 Programando o Compact-500 em DOS (16 bits) ............................................................ 22 Programando o Compact-500 em Windows 3.1x / 95 / 98 / ME / NT/ 2000 e XP (16 e 32 bits) ................................................................................................ 25 Programando o Compact500 em Linux ........................................................................ 30 Tabela de erros possveis retornados pela funo C500 () ............................................ 33 Lista de todas as funes de acesso ao Compact-500 .................................................. 34 Controle de datas atravs do Compact-500 ................................................................... 36 Lista de status de retorno da funo C500() utilizando controle de datas ....................... 41 Acessando o Compact-500 Net ....................................................................................... 42 Instalando o Pserv32.EXE como servio no Windows NT ............................................. 45 Tcnicas avanadas de proteo (Importante!) .............................................................. 46 Conhea melhor o Compact-500 .................................................................................... 49 Suporte tcnico ............................................................................................................... 51 Glossrio ......................................................................................................................... 52

Manual do Desenvolvedor 2

Componentes
Compact-500 SDK ou Compact-500 Net SDK 1 plugue formatador (vermelho) 1 plugue virgem Compact-500 paralelo ou Compact-500 Net paralelo 1 cabo extensor 1 CD com bibliotecas, exemplos e aplicativos de acesso ao Compact-500 Compact-500 USB SDK ou Compact-500 Net USB SDK 1 plugue virgem Compact-500 USB ou Compact-500 Net USB 1 cabo extensor 1 CD com bibliotecas, exemplos e aplicativos de acesso ao Compact-500 Notas: 1. Os plugues Compact-500 paralelo e Compact-500 Net paralelo devem ser formatados atravs do plugue formatador (vermelho). Esta formatao garante o seu acesso exclusivo s bibliotecas fornecidas no kit. 2. Os modelos Compact-500 USB e Compact-500 Net USB no utilizam o plugue formatador (vermelho).

Manual do Desenvolvedor 3

Apresentao
Parabns! Voc acaba de adquirir o mais flexvel e eficiente sistema de proteo de software. Neste manual esto contidas todas as informaes e exemplos que o auxiliaro na implementao do Sistema Compact-500, composto por um plugue eletrnico e rotinas de acesso em vrias linguagens, para ambiente MS-DOS, Windows 3.1x/95/98/Me/NT/2000/XP e Linux(consulte-nos). Atravs da insero da rotina de acesso ao plugue em seu software, voc ter o controle total da utilizao do seu programa, ou seja, o seu produto ser utilizado apenas por quem possuir o seu plugue.

Manual do Desenvolvedor 4

Garantia
Os plugues da linha Compact-500 apresentam garantia de 1 (um) ano, a partir da data de emisso da nota fiscal, conforme as condies explicitadas a seguir:
O plugue devolvido passa por uma anlise tcnica para identificao do problema. Em caso de defeito de fabricao, o plugue ser substitudo imediatamente sem nenhum nus para o cliente (excetuando-se o valor de frete / transportadora). A garantia no ser mantida caso o problema apresentado tenha sido gerado por m utilizao do produto (localizao do computador, condies da rede eltrica e outros fatores externos). A SafeNet isenta-se de quaisquer responsabilidades quanto perda de informaes, dados etc., provenientes da m utilizao do Sistema Compact-500 de Proteo de Software.

Manual do Desenvolvedor 5

Direitos
O software fornecido com o plugue de propriedade SafeNet, Inc, sendo proibida a sua distribuio, alterao, engenharia reversa ou qualquer outro mtodo empregado de forma a violar os direitos autorais. Tentativas de reproduo, emulao ou cpia fsica do plugue de proteo Compact-500, nos seus vrios modelos, estaro submetidas s mximas penalidades previstas em lei. As informaes presentes neste manual no podem ser alteradas ou reproduzidas sem a autorizao prvia e por escrito da SafeNet, Inc. COPYRIGHT 2004 Todos os Direitos Reservados SafeNet, Inc. CNPJ 04.314.367/0001-30

Manual do Desenvolvedor 6

Consideraes iniciais
Os plugues da linha Compact-500 so fornecidos pela SAFENET sem formatao (virgens). Para utiliz-los necessrio format-los, conforme descrito a seguir: Plugue paralelo: 1. Conecte o cabo de extenso, fornecido com o Kit Formatador, porta paralela do seu microcomputador; 2. Conecte o plugue formatador (vermelho) na outra extremidade do cabo; 3. Conecte o plugue Compact-500 no conector fmea do plugue formatador (vermelho). Plugue USB: 1. Conecte o cabo de extenso, fornecido com o Kit Formatador, em uma das sadas USB do computador; 2. Conecte o plugue Compact-500 USB na outra extremidade do cabo.

Execute o Programa FC500.EXE. Em seguida digite a Senha de Acesso do seu Kit e clique no boto OK. Para conhecer sua senha, verifique a etiqueta colada no verso da caixa do CD de instalao. Para sua segurana recomendamos que a Senha de Acesso seja mantida em sigilo. No a compartilhe com outras pessoas. Observaes importantes: 1. O processo de formatao irreversvel. Anote cuidadosamente o Cdigo Interno que voc deseja gravar para cada plugue, ou utilize sempre o mesmo Cdigo Interno para todos os plugues. 2. O plugue formatador deve ser utilizado apenas para formatar o Compact-500 virgem. Caso v acessar a memria do Compact-500 pelo programa protegido, o plugue formatador no dever estar conectado ao microcomputador. 3. Para utilizar o programa j protegido basta conectar o plugue em qualquer sada paralela (LPT1 ... LPT3), ou USB, pois o software de acesso faz a busca automtica. Se j utilizado algum outro plugue de proteo (da SafeNet, ou no), relativo a outro programa, basta conectar o Compact-500 em cascata, ou seja, antes ou depois do plugue que j estiver instalado.

Manual do Desenvolvedor 7

Caractersticas tcnicas
O Compact-500 bastante prtico, permitindo que seja facilmente conectado ao computador sem a necessidade de nenhuma ferramenta. O circuito interno do Compact-500 totalmente encapsulado em resina epxi opaca, no permitindo sua reproduo fsica. O Compact-500 totalmente transparente, no interferindo no funcionamento da impressora e outros perifricos e permitindo a conexo, em cascata, de outros plugues na mesma sada paralela. No exige a presena de uma impressora conectada ao computador, j que utiliza tecnologia SMD/SMT de alta confiabilidade. A programao do Compact-500 feita diretamente pela sada paralela (atravs do plugue formatador), no exigindo a instalao de placas internas no computador. No modelo USB no h necessidade do plugue formatador. A programao feita atravs da prpria sada USB. Alto nvel de segurana. Cada desenvolvedor de software possui um Cdigo Interno exclusivo, conseguindo acessar apenas seus prprios plugues. Compatibilidade: IBM-PC/ XT/ AT/ 386/ 486/ PS-2/ PENTIUM/ PENTIUM-II/ PENTIUM-III/ PENTIUM-IV, desktop e notebook. Possui rotinas para vrias linguagens (C, Assembly, TurboPascal, Clipper, Cobol, QuickBasic, Visual Basic, Visual C, Delphi, ToolBook, FoxPro, Joiner, AutoLisp(AutoCad) etc.). Ambiente DOS, WINDOWS em 16 e 32 bits e LINUX(CONSULTE-NOS). Em ambiente Windows permite acesso atravs de DLL para qualquer linguagem, desde que a mesma seja capaz de chamar uma DLL. Verso especial para rede local (apenas um plugue por rede).

Manual do Desenvolvedor 8

Instalando o kit do desenvolvedor


1. Insira o CD do Kit do Desenvolvedor na unidade de CD-ROM do computador. 2. Execute o Setup.EXE, caso no inicie o Autorun. 3. Preencha os dados solicitados.

Descrio do campos:

Identificao do Cliente: nome da empresa (ou pessoa fsica) mnimo 16 caracteres Senha de Acesso: deve ser digitada conforme apresentada na etiqueta colada no verso da caixa do CD de instalao Nmero de Srie do Desenvolvedor (Nmero do Registro): deve ser digitado conforme apresentado na etiqueta colada no verso da caixa do CD de instalao, incluindo hfens (caso seja necessrio) Nome da DLL (32 bits) e Nome da DLL (16 bits): caso queira personalizar o nome da DLL, necessrio que seja digitado o novo nome no campo correspondente Padro da DLL: normalmente deve-se manter o padro Atual. O padro deve ser alterado para Antigo somente nos casos de atualizao de kits que contenham deslocamento de 2 bytes no contedo da memria do plugue.

4. Aps encerrar a instalao, reinicie o computador. 5. Voc ter instalado todo o Kit de Desenvolvedor, personalizado com a sua Senha de Acesso e N. de Srie. Para instalar futuras verses do Kit do Desenvolvedor, ser necessrio repetir os passos acima. A Senha de Acesso e o N. de Srie do Desenvolvedor so exclusivos de cada cliente SafeNet. Assim, guarde-os cuidadosamente, pois fazem parte da segurana do produto.

Manual do Desenvolvedor 9

Formatando o plugue Compact-500


A primeira tarefa ser formatar o plugue Compact-500 que acompanha o Kit do Desenvolvedor. Plugue paralelo: Conecte o cabo de extenso, fornecido com o Kit Formatador, porta paralela do seu microcomputador Conecte o plugue formatador (vermelho) na outra extremidade do cabo Conecte o plugue Compact-500 no conector fmea do plugue formatador (vermelho) Plugue USB: Conecte o cabo de extenso, fornecido com o Kit Formatador, em uma das sadas USB do computador Conecte o plugue Compact-500 USB na outra extremidade do cabo

Execute o Programa FC500.EXE.

Em seguida digite a Senha de Acesso do seu Kit e clique no boto OK. Para conhecer sua senha, verifique o carto de senhas. Para sua segurana recomendamos que a Senha de Acesso seja mantida em sigilo. No a compartilhe com outras pessoas.

Manual do Desenvolvedor 10

A figura na pgina a seguir permite visualizar os campos do programa FC500.EXE:

Compact 500 - Programa Formatador Este programa permite formatar, ler e gravar o plugue eletrnico Compact-500 paralelo e USB. Breve descrio das opes apresentadas: Porta formatadora

Plugue paralelo

Neste campo, apresentada uma mensagem de alerta para verificar se o plugue formatador est conectado. Caso no esteja, a mensagem exibida no campo ser Procurando. Caso esteja conectado, a mensagem indicar o endereo da porta paralela de seu PC. Plugue USB Neste campo, apresentada uma mensagem de alerta para verificar se o plugue USB est conectado. Caso no esteja, a mensagem exibida no campo ser Procurando. Caso esteja conectado, a mensagem indicar USB. Nmero de srie Este campo contm o N. de Srie do seu Kit junto SafeNet e imutvel.

Manual do Desenvolvedor 11

Formatados Exibe o nmero de plugues formatados. Cdigo interno

O campo Cdigo Interno deve ser preenchido com uma string de 8 bytes, definida por voc. Este campo ser gravado de forma definitiva no plugue, no podendo ser alterado no futuro para o mesmo plugue. Aps digitar as informaes deste campo, basta clicar no boto Formatar. Pronto! O Compact-500 est formatado. IMPORTANTE: Caso queira utilizar o controle de datas leia o captulo Controle de datas atravs do Compact-500 antes da formatao do plugue. A partir de agora, ele poder ser programado e acessado apenas pelo conjunto de bibliotecas do seu Kit do Desenvolvedor. Os outros campos, como rea de Memria, Criptografia etc., podero ser alterados quando necessrio. Criptografia

a opo que define a semente de criptografia. Contador de Executveis

Utilizado para definir o valor inicial do contador de execuo ( 0 a 65535). Contedo da memria

Manual do Desenvolvedor 12

O plugue Compact-500 possui 240 posies de memria que podem ser utilizadas para armazenar qualquer tipo de informao. Cada posio de memria possui dois bytes, ou seja, a memria organizada em words. As 240 posies podem ser divididas em memria RAM e memria ROM. Esta diviso feita atravs da opo Arranjo de Memria. As posies de memria RAM so representadas pela cor azul e as da memria ROM, pela cor vermelha.

Arranjo da memria

Nesta rea apresentado o Arranjo de Memria. No campo RAM mostrado o nmero de posies de memria que podem ser lidas e regravadas. No campo ROM apresenta a quantidade de memria que apenas pode ser lida. Utilize a barra de deslocamento horizontal para alterar a configurao do arranjo de memria. Usurios

Esta opo s pode ser modificada nos casos de utilizao do Compact-500 Net. Neste caso, voc define o nmero de usurios que podem utilizar seu produto. Utilize a barra de deslocamento horizontal para alterar os valores. Configurao de Datas Ativa a funo de controle de datas pelo Compact-500.

Data atual do sistema este campo no pode ser modificado.

Manual do Desenvolvedor 13

Data de expirao do sistema.

O Contador determina o nmero mximo de execues que o sistema poder fazer. Formatar

Formata o plugue e grava a configurao atual. Ler

L a configurao do plugue.

Gravar

Grava a configurao atual no plugue. Menu Arquivo

Opo Abrir

Seleciona e abre arquivo de configurao no disco.

Manual do Desenvolvedor 14

Opo Salvar

Salva a configurao ativa com o nome atual para que possa ser utilizada posteriormente. Opo Salvar Como

Determina o nome de arquivo para a configurao ativa. Opo Excluir

Determina o nome do arquivo de configurao a ser excludo. Opo Sair

Fecha a aplicao. Menu Ajuda

Opo Sobre

Manual do Desenvolvedor 15

Exibe o nmero de verso deste programa, avisos de copyright e compatibilidade. Opo Manual

Acesso ao Manual do programa formatador

Manual do Desenvolvedor 16

Instalando os drivers e DLLs do Compact-500


Para o adequado funcionamento do plugue Compact-500 em seu cliente, necessrio a instalao dos drivers PROTEQ.VXD, PROTEQ.SYS e das DLLs correspondentes. Quando acionado, o aplicativo CompactDrivers.EXE instala automaticamente os drivers necessrios para o funcionamento do Compact-500 nas verses Windows: 3.1/95/98/Me/NT/2000/XP. O CompactDrivers.EXE poder ser enviado junto com o aplicativo de instalao do seu sistema. Isto facilita bastante a instalao dos drivers virtuais da SafeNet (Proteq.VXD, Proteq.SYS e C500NT.DLL). ATENO! As DLLs (C50016.DLL ou C50032.DLL) devero estar no diretrio de sua aplicao, pois elas no so instaladas com o CompactDrivers.EXE. Caso prefira instalar os drivers atravs do seu prprio instalador, siga as instrues abaixo: Modo Silencioso Para realizar a instalao de maneira que seu cliente no necessite intervir nas janelas, basta acrescentar os parmetros /SP- /VERYSILENT ao executar o CompactDrivers. EX: c:/>CompactDrivers /SP- /VERYSILENT Windows 3.1x a) Copie o arquivo Proteq.VXD para o diretrio \windows\system b) Edite o arquivo system.ini do Windows, colocando na ltima linha da seo [386Enh] a linha abaixo: device = proteq.vxd c) Copie a C50016.DLL para o diretrio do seu programa protegido d) Reinicie o Windows Windows 95/98 e Me a) Copie o arquivo Proteq.VXD para o diretrio \windows\system b) Copie a C50016.DLL ou C50032.DLL para o diretrio do seu programa protegido, conforme tenha sido compilado para 16 ou 32 bits Windows NT/2000 e XP a) Efetue logon como Administrador b) Copie o arquivo Proteq.SYS para o diretrio \windows\system32\drivers c) Copie a C50016.DLL ou C50032.DLL para o diretrio do seu programa protegido, conforme tenha sido compilado para 16 ou 32 bits d) Copie a C500NT.DLL para o diretrio do seu programa protegido e) Crie as chaves no register

Manual do Desenvolvedor 17

1 - Crie uma chave conforme o exemplo:

2 - Aps criar a chave, insira valores para a mesma.

Manual do Desenvolvedor 18

3 - Crie uma nova chave chamada Parameters:

4 - Insira valores para a chave Parameters.

f) Reinicie o Windows g) Para confirmar se o driver foi realmente instalado, abra a pasta Painel_de_Controle e clique em Dispositivos (devices). O nome PROTEQ deve estar na lista de drivers ativos.

Manual do Desenvolvedor 19

Envelopando um aplicativo de 32 bits


O Envelopador Compact-500 um aplicativo, chamado Envelope.EXE, que foi personalizado para o n. de srie deste Kit Inicial. Sua interface amigvel permite que voc proteja de forma fcil e eficaz um programa de 32 bits. O envelopamento de um programa executvel o protege contra engenharia reversa, impossibilitando a utilizao de um programa genrico de descompilao, ou um disassembler. Um programa protegido pelo Envelopador Compact-500 funciona apenas na presena de um plugue formatado e utilizado no instante de envelopar tal programa. A checagem do plugue efetuada na carga do programa protegido. Caso seja de seu interesse, o plugue poder ser checado, tambm, em um intervalo de tempo predefinido no momento do envelopamento. Procedimentos para proteo de um programa de 32 bits: 1. Instale os drivers (Proteq.vxd ou Proteq.sys) e DLLs, conforme descrito no item Instalando os drivers do Compact-500. 2. Formate um plugue Compact-500, conforme descrito no item Formatando o plugue Compact-500. 3. Conecte apenas o plugue Compact-500 formatado na sada paralela ou USB. 4. Execute o aplicativo Envelope.EXE. 5. Clique no programa de 32 bits a ser protegido. 6. Sempre que um programa for protegido (envelopado), ser criada uma criptografia baseada em uma seqncia aleatria. Caso deseje criar uma criptografia fixa, basta preencher o campo [Semente de Encriptao (40 bytes)].

A opo [Cpia de Backup] faz com que o programa original a ser protegido seja copiado com o mesmo nome e extenso de Arquivo.BAK.

A opo [Checagem Peridica - Desabilitada] faz com que a presena do plugue Compact-500 seja checada apenas na carga do programa protegido. Caso prefira a checagem peridica, esta poder ser realizada no intervalo de tempo a ser definido no campo [Checagem Peridica - Habilitada].

Manual do Desenvolvedor 20

7. Clique em [Proteger Arquivo]. Seu programa ser protegido com os dados gravados no plugue Compact-500 que est conectado na sada paralela ou USB do seu computador. O programa, assim envelopado, tambm estar protegido contra modificaes, tanto por editores hexadecimais, quanto por vrus. Um programa protegido utilizando as rotinas internas do Compact-500 tambm deve ser protegido pelo Envelopador Compact-500. Para que seu programa funcione corretamente, ser necessrio instalar os drivers e DLLs no computador onde o programa ser executado. OBS.: Ao utilizar este mtodo de proteo deve-se usar a DLL C50032.DLL original, fornecida com o kit no diretrio do Formatador. Para funcionar corretamente com o Delphi 7.0 ser necessrio observar os procedimentos abaixo: 1-Selecione o "Build with Run Time packages" (Project -> Option -> Packages); 2-Para confirmar clique em OK; 3-Compile a aplicao; 4-Verifique se o tamanho da aplicao menor que a verso original, caso no, repita a operao; 5-Envelope o aplicativo. Lembre-se que agora ser necessrio fazer a instalao das VCLs,VPls e outras bibliotecas de Run Time em seu cliente.

Manual do Desenvolvedor 21

Programando o Compact-500 em DOS (16 bits)


Aqui voc encontrar as informaes para proteo de um aplicativo que v rodar em DOS, ou janela DOS, em ambiente Windows, utilizando as funes de API do Compact500. No subdiretrio \Exemplos\DOS, h alguns exemplos para consulta. Procedimentos: Inicializar o Compact-500: Para poder ter acesso ao plugue Compact-500, durante o seu programa, este deve ser inicializado. Para isso, necessrio enviar a operao 3 junto com a senha de acesso; se o retorno for exatamente o cdigo interno, o Compact-500 est presente. Entrada: Byte 1 = 3. Byte 2-10 = Senha de acesso. Retorno: Byte 1 = 3. Byte 2-10 = Cdigo interno. Ler uma word do Compact-500 Aps a inicializao do Compact-500, voc poder executar operaes de leitura. No Compact-500 h 240 posies de memria que o usurio pode acessar para leitura. Cada posio de memria formada por 2 bytes, ou seja, sua memria dividida em words. Entrada: Byte 1 = 1. Byte 2-3 = No usado. Byte 4 = Endereo. Byte 5-10 = No usado. Retorno: Byte 1 = 1. Byte 2 = Parte mais significativa da word. Byte 3 = Parte menos significativa da word. Byte 4 = Endereo. Byte 5-10 = No usado.

Gravar uma word no Compact-500 Aps a inicializao do Compact-500, voc poder executar operaes de gravao. No Compact-500 h 240 posies de memria, divididas em RAM e ROM. Esta diviso feita quando o plugue formatado. As informaes s podero ser gravadas na rea de memria RAM. Cada posio de memria formada por 2 bytes, ou seja, sua memria dividida em words. Entrada: Byte 1 = 2. Byte 2 = Parte mais significativa da word. Byte 3 = Parte menos significativa da word. Byte 4 = Endereo. Byte 5-10 = No usado. Retorno:

Manual do Desenvolvedor 22

Byte 1 = 2. Byte 2 = Parte mais significativa da word. Byte 3 = Parte menos significativa da word. Byte 4 = Endereo. Byte 5-10 = No usado. Encerrar acesso ao Compact-500 Esta funo deve ser chamada quando voc for encerrar seu programa. Aconselhamos sua utilizao, tanto no sistema mono quanto de rede, apesar de no apresentar uma utilidade especfica quando se utiliza o Compact-500 (mono). No entanto, no caso de seu software rodar em rede, utilizando o plugue Compact-500 NET, esta funo tem a finalidade de liberar a licena de uso no servidor de plugue Pserv.EXE, para que outras estaes possam utilizar o programa protegido. Entrada: Byte 1 = 5. Byte 2-10 = No usado. Retorno: Byte 1 = 5. Byte 2-10 = No usado. Ler o Contador interno do Compact-500 Aps a inicializao do Compact-500, voc poder ler o valor do Contador interno do plugue. Entrada: Byte 1 = 8. Byte 2-10 = No usado. Retorno: Byte 1 = 8. Byte 2 = Parte mais significativa da word do valor do Contador. Byte 3 = Parte menos significativa da word do valor do Contador. Byte 4-10 = No usado. Decrementar o Contador interno do Compact-500 Aps a inicializao do Compact-500, voc poder decrementar o valor do Contador interno do plugue. Entrada: Byte 1 = 9. Byte 2-10 = No usado. Retorno: Byte 1 = 9. Byte 2-10 = No usado Criptografar uma string baseado na semente gravada no plugue Aps a inicializao do Compact-500, voc poder criptografar uma string passando-a para a funo C500(). Entrada: Byte 1 = 20. Byte 2 = tamanho da string (o tamanho deve estar entre 12 e 250 bytes). Byte 3...(tamanho+2) = rea com a string a ser criptografada. Retorno:

Manual do Desenvolvedor 23

Byte 1 = 20. Byte 2 = tamanho da string (o tamanho deve estar entre 12 e 250 bytes). Byte 3...(tamanho+2) = rea com a string j criptografada. Decriptografar uma string baseado na semente gravada no plugue Aps a inicializao do Compact-500, voc poder decriptografar uma string passando-a para a funo C500(). Entrada: Byte 1 = 21. Byte 2 = tamanho da string (o tamanho deve estar entre 12 e 250 bytes). Byte 3...(tamanho+2) = rea com a string a ser decriptografada. Retorno: Byte 1 = 21. Byte 2 = tamanho da string (o tamanho deve estar entre 12 e 250 bytes). Byte 3...(tamanho+2) = rea com a string j decriptografada.

ATENO! Cdigo de erro: caso ocorra um erro durante a operao solicitada, a funo C500() dos mdulos objeto para DOS ir retornar o seu primeiro byte igual a zero (Byte 1 = 0). Observao: Se o seu aplicativo estiver rodando em uma janela DOS em sistema operacional Windows NT/2000 e XP, voc deve acessar o plugue como se estivesse utilizando um modelo de rede. Execute o programa Pserv32.EXE, que servir como servidor de acesso ao plugue conectado na porta paralela, ou USB, do computador. Voc deve ter um arquivo no mesmo diretrio do aplicativo com o nome C500DOS.INI, com o contedo idntico ao do arquivo Pserv.INI.

Manual do Desenvolvedor 24

Programando o Compact-500 em Windows 3.1x/ 95/ 98/ Me/ NT/ 2000 e XP (16 / 32 bits)
Este captulo dedicado a quem quer proteger um aplicativo que rodar exclusivamente em Windows 16 ou 32 bits, como por exemplo, Windows 3.1x, Windows 95/98/Me e Windows NT/2000 e XP. Os exemplos esto no subdiretrio \Compact500\Exemplos\Windows, como: AutoCad, Builder, C, Cobol, Delphi, FoxPro, Intellicad, VB, Visual FoxPro e Word & Excel. Nestes casos, o Compact-500 acessado atravs de uma chamada funo int C500(LPSTR*), definida nas DLLs C50016.DLL e C50032.DLL (16 e 32 bits respectivamente) pelo programa a ser protegido. As DLLs fazem acesso ao Compact-500 por meio de um driver virtual chamado Proteq.VXD (Windows 95/98/Me), ou Proteq.SYS (Windows NT/2000 e XP). Execute o aplicativo de instalao CompactDrivers.exe para instalar automaticamente os drivers necessrios para o funcionamento do Compact-500, nas verses Windows 95/98/Me, NT/2000 e XP. Este aplicativo poder ser enviado junto com o aplicativo de instalao do seu sistema, j que facilita a instalao dos drivers virtuais da SafeNet (Proteq.vxd, Proteq.sys e C500NT.dll). Para confirmar se o driver foi instalado, abra a pasta Painel_de_Controle e clique em Dispositivos (devices). O driver PROTEQ deve estar na lista de drivers ativos. ATENO! 1. As DLLs (C50016.dll ou C50032.dll) devero estar no diretrio de sua aplicao, pois no so instaladas com o CompactDrivers.EXE. 2. As DLLs do Compact-500 so protegidas contra debug. Assim, ao utiliz-las, no se esquea de desativar esta opo em seu compilador. Observao: Mais detalhes de instalao de drivers e DLLs encontram-se em: Instalando driver e DLLs do Compact-500. Acesso do Compact-500 em seu programa Veja a seguir como funciona a chamada funo C500(): A string utilizada como parmetro da funo serve para receber e enviar dados ao Compact-500. Esta string composta por 10 bytes e sua formatao especfica para cada operao. A funo C500() retorna um nmero inteiro que indica se houve sucesso no acesso DLL. Existem trs comandos bsicos de acesso ao Compact-500: Inicializar o Compact-500 Para poder ter acesso ao Compact-500, durante a execuo do seu programa, o plugue deve ser inicializado. Para isso, necessrio executar a operao 3 junto com a senha de acesso. Se o retorno for exatamente o Cdigo Interno, pr-definido na formatao do plugue, indica que o Compact-500 est presente. Repare que a prpria string enviada como parmetro da funo alterada pela chamada, ou seja, retorna com a resposta da chamada funo. O valor inteiro retornado explicitamente contm a indicao se houve erro na chamada da DLL e/ou driver virtual.

Manual do Desenvolvedor 25

Entrada: Byte 1 = 3. Byte 2-10 = Senha de acesso. Retorno: Byte 1 = 3. Byte 2-10 = Cdigo interno. Ler uma word do Compact-500 Aps a inicializao do Compact-500, voc poder executar operaes de leitura. No Compact-500 h 240 posies de memria que o usurio pode acessar para leitura. Cada posio formada por 2 bytes, ou seja, sua memria dividida em words. Entrada: Byte 1 = 1. Byte 2-3 = No usado. Byte 4 = Endereo de memria a ser lido. Byte 5-10 = No usado. Retorno: Byte 1 = 1. Byte 2 = Parte mais significativa da word lida da memria. Byte 3 = Parte menos significativa da word lida da memria. Byte 4 = Endereo de memria lido. Byte 5-10 = No usado. Gravar uma word no Compact-500 Aps a inicializao do Compact-500, voc poder executar operaes de gravao. No Compact-500 h 240 posies de memria, divididas em RAM e ROM. Esta diviso feita quando o plugue formatado. As informaes s podero ser gravadas na rea de memria RAM. Cada posio de memria formada por 2 bytes, ou seja, sua memria dividida em words. Entrada: Byte 1 = 2. Byte 2 = Parte mais significativa da word a ser gravada. Byte 3 = Parte menos significativa da word a ser gravada. Byte 4 = Endereo a ser gravado. Byte 5-10 = No usado. Retorno: Byte 1 = 2. Byte 2 = Parte mais significativa da word gravada. Byte 3 = Parte menos significativa da word gravada. Byte 4 = Endereo gravado. Byte 5-10 = No usado. Encerrar acesso ao Compact-500 Esta funo deve ser chamada quando voc for encerrar seu programa. Aconselhamos sua utilizao, tanto no sistema mono quanto de rede, apesar de no apresentar uma utilidade especfica quando se utiliza o Compact-500 (mono). No entanto, no caso de seu software rodar em rede, utilizando o plugue Compact-500 NET, esta funo tem a finalidade de liberar a licena de uso no servidor de plugue Pserv.EXE, para que outras estaes possam utilizar o programa protegido. Entrada: Byte 1 = 5. Manual do Desenvolvedor 26

Byte 2-10 = No usado. Retorno: Byte 1 = 5. Byte 2-10 = No usado. Ler o Contador interno do Compact-500 Aps a inicializao do Compact-500, voc poder ler o valor do Contador interno do plugue. Entrada: Byte 1 = 8. Byte 2-10 = No usado. Retorno: Byte 1 = 8. Byte 2 = Parte mais significativa da word do valor do Contador. Byte 3 = Parte menos significativa da word do valor do Contador. Byte 4-10 = No usado. Decrementar o Contador interno do Compact-500 Aps a inicializao do Compact-500, voc poder decrementar o valor do Contador interno do plugue. Entrada: Byte 1 = 9. Byte 2-10 = No usado. Retorno: Byte 1 = 9. Byte 2-10 = No usado. Ler toda a memria do Compact-500 em uma nica chamada Aps a inicializao do Compact-500, voc poder executar a operao de leitura de toda a memria do plugue (480 bytes). Entrada: Byte 1 = 11. Byte 2-481 = rea reservada para receber os 480 bytes da memria do plugue. Retorno: Byte 1 = 11. Byte 2-481 = rea aonde viro os 480 bytes da memria do plugue. Gravar toda a memria do Compact-500 em uma nica chamada Aps a inicializao do Compact-500, voc poder executar a operao de gravao de toda a memria do plugue (480 bytes). Entrada: Byte 1 = 12. Byte 2-481 = rea com os 480 bytes para serem gravados na memria do plugue. Retorno: Byte 1 = 12. Byte 2-481 = rea com os 480 bytes gravados na memria do plugue.

Criptografar uma string baseado na semente gravada no plugue

Manual do Desenvolvedor 27

Aps a inicializao do Compact-500, voc poder criptografar uma string passando funo C500(). Entrada: Byte 1 = 20. Byte 2 = tamanho da string (o tamanho deve estar entre 12 e 250 bytes). Byte 3...(tamanho+2) = rea com a string a ser criptografada. Retorno: Byte 1 = 20. Byte 2 = tamanho da string (o tamanho deve estar entre 12 e 250 bytes). Byte 3...(tamanho+2) = rea com a string j criptografada. Decriptografar uma string baseado na semente gravada no plugue Aps a inicializao do Compact-500, voc poder decriptografar uma string passando funo C500(). Entrada: Byte 1 = 21. Byte 2 = tamanho da string (o tamanho deve estar entre 12 e 250 bytes). Byte 3...(tamanho+2) = rea com a string a ser decriptografada. Retorno: Byte 1 = 21. Byte 2 = tamanho da string (o tamanho deve estar entre 12 e 250 bytes). Byte 3...(tamanho+2) = rea com a string j decriptografada.

Checar data Permite que a aplicao consulte as informaes gravadas e o controle de funcionamento do seu programa. Entrada: Byte 1 = 25 Byte 2-18 = No usado. Retorno: Byte 1 = 25 Byte 2 = D (primeiro dgito do dia da expirao) Byte 3 = D (segundo dgito do dia da expirao) Byte 4 = M (primeiro dgito do ms da expirao) Byte 5 = M (segundo dgito do ms da expirao) Byte 6 = A (primeiro dgito do ano da expirao) Byte 7 = A (segundo dgito do ano da expirao) Byte 8 = D (primeiro dgito do dia do sistema) Byte 9 = D (segundo dgito do dia do sistema) Byte 10 = M (primeiro dgito do ms do sistema) Byte 11 = M (segundo dgito do ms do sistema) Byte 12 = A (primeiro dgito do ano do sistema) Byte 13 = A (segundo dgito do ano sistema) Byte 14 = X (primeiro dgito do contador de execues) Byte 15 = Y (segundo dgito do contador de execues) Byte 16 = Z (terceiro dgito do contador de execues) Byte 17 = W (quarto dgito do contador de execues) Byte 18 = T (quinto dgito do contador de execues) Data da Expirao: DD/MM/AA exemplo: 01/01/03 Data do Sistema: DD/MM/AA exemplo: 01/01/03 Contador de Execues: XYZWT exemplo: 00123

Manual do Desenvolvedor 28

Gerar dilogo Permite que a aplicao crie o Dilogo de autorizao, mesmo que ainda no tenha problema algum com a data, contador ou expirao. Entrada: Byte 1 = 26 Byte 2-18 = No usado. Retorno: Byte 1 = 26 Byte 2 = D (primeiro dgito do dia da expirao) Byte 3 = D (segundo dgito do dia da expirao) Byte 4 = M (primeiro dgito do ms da expirao) Byte 5 = M (segundo dgito do ms da expirao) Byte 6 = A (primeiro dgito do ano da expirao) Byte 7 = A (segundo dgito do ano da expirao) Byte 8 = D (primeiro dgito do dia do sistema) Byte 9 = D (segundo dgito do dia do sistema) Byte 10 = M (primeiro dgito do ms do sistema) Byte 11 = M (segundo dgito do ms do sistema) Byte 12 = A (primeiro dgito do ano do sistema) Byte 13 = A (segundo dgito do ano sistema) Byte 14 = X (primeiro dgito do contador de execues) Byte 15 = Y (segundo dgito do contador de execues) Byte 16 = Z (terceiro dgito do contador de execues) Byte 17 = W (quarto dgito do contador de execues) Byte 18 = T (quinto dgito do contador de execues) Data da Expirao: DD/MM/AA exemplo: 01/01/03 Data do Sistema: DD/MM/AA exemplo: 01/01/03 Contador de Execues: XYZWT exemplo: 00123 IMPORTANTE: A funo C500() das DLLs retorna sempre um nmero inteiro, indicando se houve sucesso no acesso DLL e/ou ao driver virtual (Proteq.VXD ou Proteq.SYS).

Manual do Desenvolvedor 29

Programando o Compact-500 em Linux 2.4.x.x


Aqui voc encontrar as informaes que o ajudaro a proteger seu programa, utilizando as funes de API do Compact-500 em programas Linux. Os exemplos esto no subdiretrio Compact-500\Exemplos\Linux Inicializar o Compact-500 Para poder ter acesso ao Compact-500, durante a utilizao de seu programa, o plugue deve ser inicializado. Para isso, necessrio executar a operao 3 junto com a senha de acesso. Se o retorno for exatamente o Cdigo Interno, pr-definido na formatao do plugue, indica que o Compact-500 est presente. Perceba que a prpria string enviada como parmetro da funo alterada pela chamada, ou seja, retorna com a resposta da chamada funo. O valor inteiro retornado explicitamente contm a indicao se houve erro na chamada do .O. Entrada: Byte 1 = 3. Byte 2-10 = Senha de acesso. Retorno: Byte 1 = 3. Byte 2-10 = Cdigo interno. Ler uma word do Compact-500 Aps a inicializao do Compact-500, voc poder executar operaes de leitura. No Compact-500 h 240 posies de memria que o usurio pode acessar para leitura (endereo 0 at 239). Cada posio formada por 2 bytes, ou seja, sua memria dividida em words Entrada: Byte 1 = 1. Byte 2-3 = No usado. Byte 4 = Endereo de memria a ser lido. Byte 5-10 = No usado. Retorno: Byte 1 = 1. Byte 2 = Parte mais significativa da word lida da memria. Byte 3 = Parte menos significativa da word lida da memria. Byte 4 = Endereo de memria lido. Byte 5-10 = No usado.

Gravar uma word no Compact-500 Aps a inicializao do Compact-500, voc poder executar operaes de gravao. No Compact-500 h 240 posies de memria, divididas em RAM e ROM. Esta diviso feita quando o plugue formatado. As informaes s podero ser gravadas na rea de memria RAM. Cada posio de memria formada por 2 bytes, ou seja, sua memria dividida em words. Entrada: Byte 1 = 2. Byte 2 = Parte mais significativa da word a ser gravada. Byte 3 = Parte menos significativa da word a ser gravada. Byte 4 = Endereo a ser gravado. Byte 5-10 = No usado. Manual do Desenvolvedor 30

Retorno: Byte 1 = 2. Byte 2 = Parte mais significativa da word gravada. Byte 3 = Parte menos significativa da word gravada. Byte 4 = Endereo gravado. Byte 5-10 = No usado. Encerrar acesso ao Compact-500 Esta funo deve ser chamada quando voc for encerrar seu programa. Entrada: Byte 1 = 5. Byte 2-10 = No usado. Retorno: Byte 1 = 5. Byte 2-10 = No usado. Ler o Contador interno do Compact-500 Aps a inicializao do Compact-500, voc poder ler o valor do Contador interno do plugue. Entrada: Byte 1 = 8. Byte 2-10 = No usado. Retorno: Byte 1 = 8. Byte 2 = Parte mais significativa da word do valor do Contador. Byte 3 = Parte menos significativa da word do valor do Contador. Byte 4-10 = No usado. Decrementar o Contador interno do Compact-500 Aps a inicializao do Compact-500, voc poder decrementar o valor do Contador interno do plugue. Entrada: Byte 1 = 9. Byte 2-10 = No usado. Retorno: Byte 1 = 9. Byte 2-10 = No usado. Ler toda a memria do Compact-500 em uma nica chamada Aps a inicializao do Compact-500, voc poder executar operao de leitura de toda a memria do plugue (480 bytes). Entrada: Byte 1 = 11. Byte 2-481 = rea reservada para receber os 480 bytes da memria do plugue. Retorno: Byte 1 = 11. Byte 2-481 = rea aonde viro os 480 bytes da memria do plugue.

Manual do Desenvolvedor 31

Gravar toda a memria do Compact-500 em uma nica chamada Aps a inicializao do Compact-500, voc poder executar operao de gravao de toda a memria do plugue (480 bytes). Entrada: Byte 1 = 12. Byte 2-481 = rea com os 480 bytes para serem gravados na memria do plugue. Retorno: Byte 1 = 12. Byte 2-481 = rea com os 480 bytes gravados na memria do plugue. Criptografar uma string baseado na semente gravada no plugue Aps a inicializao do Compact-500, voc poder criptografar uma string passando-a para a funo C500(). Entrada: Byte 1 = 20. Byte 2 = tamanho da string (o tamanho deve estar entre 12 e 250 bytes). Byte 3...(tamanho+2) = rea com a string a ser criptografada. Retorno: Byte 1 = 20. Byte 2 = tamanho da string (o tamanho deve estar entre 12 e 250 bytes). Byte 3...(tamanho+2) = rea com a string j criptografada.

Decriptografar uma string baseado na semente gravada no plugue Aps a inicializao do Compact-500, voc poder decriptografar uma string passando-a para a funo C500(). Entrada: Byte 1 = 21. Byte 2 = tamanho da string (o tamanho deve estar entre 12 e 250 bytes). Byte 3...(tamanho+2) = rea com a string a ser decriptografada. Retorno: Byte 1 = 21. Byte 2 = tamanho da string (o tamanho deve estar entre 12 e 250 bytes). Byte 3...(tamanho+2) = rea com a string j decriptografada. Observao: Leia o Leia-me.txt, ele poder sanar algumas dvidas. IMPORTANTE: A funo C500() do .o retorna sempre um nmero inteiro, indicando se houve sucesso no acesso ao plugue. Em caso de qualquer incompatibilidade em variaes de compilao e Hardware, no hesite em nos consultar.

Manual do Desenvolvedor 32

Tabela de erros possveis retornados pela funo C500()


retorno = 0 chamada API retorno = -1 chamada API iria provocar um General Protection Fault retorno = -2 chamada API causou uma reentrada na funo retorno = -3 chamada API causou um erro de parmetro retorno = -4 chamada API causou um erro no envio de dados ao driver virtual retorno = -5 chamada API retornou por TimeOut retorno = -6 parmetro adulterado na comunicao retorno = -7 parmetro perdido na comunicao/ Proteq.VXD no instalado/ Plugue no conectado retorno = -8 parmetro de tamanho adulterado retorno = -9 no h espao na memria para carga do driver virtual retorno = -10 driver virtual no encontrado retorno = -11 driver virtual no carregado retorno = -12 erro na execuo do driver virtual retorno = -13 funo de rede na DLL no encontrada retorno = -14 erro na carga da API retorno = -15 erro na chamada GetProc retorno = -16 erro na criao da comunicao com o PServ na rede retorno = -17 erro na comunicao com o PServ na rede retorno = -18 erro no parmetro de comunicao com o PServ na rede retorno = -19 parmetro de comunicao adulterado na rede retorno = -20 alcanado o n. mximo de licenas na rede retorno = -21 comunicao com PServ no foi inicializada retorno = -22 Pserv no est sendo executado ou arquivo .INI no existe retorno = -50 Contador igual a zero retorno = -51 Data do sistema incorreta retorno = -52 Horrio do sistema incorreto retorno = -54 Erro no cdigo de autorizao retorno = -55 Data invlida retorno = -60 <numero_aleatorio>.ida ou <numero_aleatorio>.ret invlido

Manual do Desenvolvedor 33

Lista das funes de acesso ao Compact-500


Operao 3 - Inicializao do Compact-500 ou Compact-500 Net A$=CHR(3) + SENHA_DE_ACESSO I = C500(A$) IF I<0 THEN ERRO_NO_ACESSO : ENVIA_MENSAGEM_DE_ERRO : STOP CDIGO_INTERNO = MID$(A$,2,8) CHECAR SE CDIGO_INTERNO O ESPERADO Operao 1 - Leitura da memria interna do Compact-500 A$=CHR(1) + xx + CHR(ENDEREO) I = C500(A$) IF I<0 THEN ERRO_NO_ACESSO : ENVIA_MENSAGEM_DE_ERRO : STOP CONTEDO_MEMRIA = MID$(A$,2,2) Operao 2 - Gravao da memria interna do Compact-500 A$=CHR(2) + AB + CHR(ENDEREO) I = C500(A$) IF I<0 THEN ERRO_NO_ACESSO : ENVIA_MENSAGEM_DE_ERRO : STOP ENDEREO DA MEMRIA DO Compact-500 GRAVADO COM AB Operao 5 - Liberar licena de uso do Compact-500 Net na rede A$=CHR(5) + SENHA_DE_ACESSO I = C500(A$) IF I<0 THEN ERRO_NO_ACESSO : ENVIA_MENSAGEM_DE_ERRO : STOP LICENA DE REDE LIBERADA Operao 8 - Ler Contador Interno do Compact-500 A$=CHR(8) + xx I = C500(A$) IF I<0 THEN ERRO_NO_ACESSO : ENVIA_MENSAGEM_DE_ERRO : STOP MID$(A$,2,1) CONTM O BYTE MAIS SIGNIFICATIVO DO CONTADOR MID$(A$,3,1) CONTM O BYTE MENOS SIGNIFICATIVO DO CONTADOR Operao 9 - Decrementar o Contador Interno do Compact-500 A$=CHR(9) + xx I = C500(A$) IF I<0 THEN ERRO_NO_ACESSO : ENVIA_MENSAGEM_DE_ERRO : STOP CONTADOR DECREMENTADO Operao 11 Ler toda a memria do Compact-500 A$=CHR(11) + STRING I = C500(A$) IF I<0 THEN ERRO_NO_ACESSO : ENVIA_MENSAGEM_DE_ERRO : STOP MID$(A$,2,480) CONTM UMA STRING COM TODO O CONTEDO DA MEMRIA DO PLUGUE Operao 12 - Gravar toda a memria do Compact-500 A$=CHR(12) + STRING I = C500(A$) IF I<0 THEN ERRO_NO_ACESSO : ENVIA_MENSAGEM_DE_ERRO : STOP OS 480 BYTES DA STRING FORAM GRAVADOS NA MEMRIA DO PLUGUE

Operao 20 - Criptografar uma string com o Compact-500

Manual do Desenvolvedor 34

A$=CHR(20) + CHR$(TAMANHO_STRING) + STRING I = C500(A$) IF I<0 THEN ERRO_NO_ACESSO : ENVIA_MENSAGEM_DE_ERRO : STOP MID$(A$,3,TAMANHO_STRING) CONTM A STRING CRIPTOGRAFADA (a string a ser criptografada deve ter tamanho entre 12 e 250 bytes) Operao 21 - Decriptografar uma string com o Compact-500 A$=CHR(21) + CHR$(TAMANHO_STRING) + STRING I = C500(A$) IF I<0 THEN ERRO_NO_ACESSO : ENVIA_MENSAGEM_DE_ERRO : STOP MID$(A$,3,TAMANHO_STRING) CONTM A STRING DECRIPTOGRAFADA (a string a ser decriptografada deve ter tamanho entre 12 e 250 bytes) Operao 25 Checar data Permite que a aplicao consulte as informaes gravadas e o controle de funcionamento. A$=CHR(25) + XXXXXX+YYYYYY+ZZZZZ I = C500(A) IF I<0 THEN ERRO_NO_ACESSO : ENVIA_MENSAGEM_DE_ERRO : STOP O parmetro A retornar da funo C500 contendo, nas posies referentes a X,Y e Z, a data de expirao, ltima data registrada e o contador, respectivamente. Operao 26 - Gerar dilogo Permite que a aplicao crie o Dilogo de autorizao mesmo que ainda no tenha problema algum com a data, contador ou expirao. A$=CHR(26) + XXXXXX+YYYYYY+ZZZZZ I = C500(A) IF I<0 THEN ERRO_NO_ACESSO : ENVIA_MENSAGEM_DE_ERRO : STOP O parmetro A retornar da funo C500 contendo, nas posies referentes a X, Y e Z, a data de expirao, ltima data registrada e o contador, respectivamente. A C50032.DLL possui, ainda, dois outros pontos de entrada que fazem acesso especfico a um plugue Compact-500 (local) ou a um plugue Compact-500 Net. So eles: - C500local() faz acesso somente a um plugue local Compact-500. - C500net() faz acesso somente a um plugue Compact-500 Net atravs do servidor Pserv. Estas duas funes possuem parmetros e retorno idnticos aos da funo C500().

Manual do Desenvolvedor 35

Controle de datas atravs do Compact-500


Descrio do Funcionamento: O algoritmo que verifica a consistncia da data do sistema, com a configurao feita previamente no plugue, est na C50032.DLL. Ao acessar a operao (3)- Inicializao, se for constatado a expirao ou qualquer problema com a data ser, ento, criado um Dilogo com o Cdigo de Pedido (senha), que dever ser reportado ao Programa Autorizador (Date.EXE) atravs do arquivo <numero_aleatorio>.ida gerado no diretrio ou no, apenas digitando, a nova data e o contador. O Cdigo de Autorizao (contra senha) gerado dever ser preenchido nos campos do dilogo, ou atravs do arquivo <numero_aleatorio>.ret gerado no diretrio do Date.EXE. CUIDADO! Existe uma dependncia entre os arquivos .ida e .ret O contador foi criado para estabelecer um nmero mximo de utilizaes do sistema. O valor do contador ser decrementado no primeiro acesso funo (3) - Inicializao, aps a carga da C50032.DLL. O programa de gerao do Cdigo de Autorizao no poder ser distribudo para seus clientes e s funcionar quando um plugue formatado com o Cdigo Interno igual a DATEDATE estiver conectado no computador. A senha para este programa ser a prpria Senha de Acesso. ATENO! Para o Controle de Datas foram utilizados da memria do Compact-500 do endereo 235 239. Estas informaes, se alteradas atravs de algum procedimento de gravao, podero inutilizar a Configurao de Datas. Utilizando o Controle de Datas do Compact-500: 1 Passo Atravs do programa Formatador habilitar a opo Ativar controle.

Neste campo ativado a funo de controle de datas pelo Compact-500.

Data atual do sistema o campo no pode ser modificado. Os campos seguintes devero ser preenchidos obrigatoriamente.

Data de expirao do software protegido.

Nmero mximo de execues do software protegido.

Manual do Desenvolvedor 36

2 Passo: H duas opes para estabelecer Controle da Datas em seu aplicativo: 1- Ativar a opo de controle de datas no FC500.EXE. Ao acessar a funo C500 com a operao (3) - Inicializao, automaticamente ocorrer a checagem das informaes referentes as datas. 2- Inserir no cdigo fonte de seu programa as chamadas funo C500() com as operaes: 25 - Checar data; 26 - Gerar dilogo;

ATENO! Para acessar estas funes necessrio, primeiramente, acessar a funo (3) - Inicializao. Operao 25 Checar data Permite que a aplicao consulte as informaes gravadas e o controle de funcionamento. A$=CHR(25) + XXXXXX+YYYYYY+ZZZZZ I = C500(A) IF I<0 THEN ERRO_NO_ACESSO : ENVIA_MENSAGEM_DE_ERRO : STOP O parmetro A retornar da funo C500 contendo, nas posies referentes a X,Y e Z, a data de expirao, ltima data registrada e o contador, respectivamente. Operao 26 Gerar dilogo Permite que a aplicao crie o Dilogo de autorizao, mesmo que ainda no tenha problema algum com a data, contador ou expirao. A$=CHR(26) + XXXXXX+YYYYYY+ZZZZZ I = C500(A) IF I<0 THEN ERRO_NO_ACESSO : ENVIA_MENSAGEM_DE_ERRO : STOP O parmetro A retornar da funo C500 contendo, nas posies referentes a X, Y e Z, a data de expirao, ltima data registrada e o contador, respectivamente. Sistema de Atualizao Remota A C50032.DLL gera um dilogo a partir do dcimo dia que antecede a data de expirao, informando ao usurio a quantidade de dias que poder utilizar o sistema antes de solicitar novo Cdigo de Autorizao.

Se a opo SIM for selecionada o dilogo de autorizao ser mostrado, conforme abaixo, caso contrrio o programa funcionar normalmente.

Manual do Desenvolvedor 37

Quando o nmero mximo de acessos ou data gravados no plugue expirarem, a C50032.DLL gera uma caixa de dilogo solicitando o novo Cdigo de Autorizao.

Segue abaixo a descrio dos campo: Cdigo de Pedido

A string do Cdigo de Pedido dever ser transmitida ao Desenvolvedor do sitema para que atravs do aplicativo DATE seja possvel a gerar o Cdigo de Autorizao. Cdigo de Autorizao

Valores gerados pelo aplicativo DATE. Aplicar Aps o preenchimento do Cdigo de Autorizao ou obteno do <numero_aleatorio>.ret, gerados pelo Desenvolvedor do sistema, o boto Aplicar deve ser pressionado para enviar ao plugue as novas configuraes. Sobre

Manual do Desenvolvedor 38

Exibe informaes sobre o atualizador de datas. Cancelar Fecha a caixa de dilogo do Sistema de Autorizao Remota. Aplicar autenticao atravs de arquivos

O Desenvolvedor poder enviar arquivo, gerado pelo DATE para nova configurao de data. Neste caso, a opo Aplicar autenticao atravs de arquivos deve ser habilitada

Como gerar o Cdigo de Autorizao?

O programa de gerao do Cdigo de Autorizao, no poder ser distribudo para seus clientes, e s funcionar quando um plugue formatado com Cdigo Interno igual a DATEDATE estiver conectado no computador. A senha para este programa ser a prpria Senha de Acesso. Segue abaixo a descrio dos campo: Cdigo de Pedido

A string do Cdigo de Pedido ser enviada pelo usurio. Contador

Manual do Desenvolvedor 39

Definio do nmero mximo de acessos a aplicao. Data de Expirao

Definio da nova data de expirao. Checar atravs de arquivo Para envio da nova configurao por arquivo. O <numero_aleatorio>.ida dever estar no diretrio da aplicao, assim ser gerado o <numero_aleatorio>.ret correspondente.

Desabilitar controle de datas

Cdigo de Autorizao

Com base nos campos acima definidos o Cdigo de Autorizao ser gerado e enviado ao usurio para que obtenha o acesso ao sistema. Aplicar Aps definir as novas configuraes do controle de datas o boto Aplicar deve ser pressionado para que possa gerar o Cdigo de Autorizao. Sobre Exibe informaes sobre o aplicativo DATE. Cancelar Fecha o aplicativo DATE.

Manual do Desenvolvedor 40

Lista de status de retorno da funo C500(), utilizando Controle de Datas


I = retorno de erro com a mesma descrio da funo C500() I = -50 Contador igual a zero I = -51 Data do sistema incorreta I = -52 Horrio do sistema incorreto I = -54 Erro no cdigo de autorizao I = -55 Data invlida I = -60 <numero_aleatorio>.ida ou <numero_aleatorio>.ret invlido

Manual do Desenvolvedor 41

Acessando o Compact-500 NET


O Pserv (Pserv16.exe ou Pserv32.exe) atua como um servidor de acesso ao Compact-500 NET, sendo responsvel por organizar e efetuar as tarefas solicitadas pelas aplicaes em execuo na rede.

Esta aplicao dever ser instalada somente na mquina onde o Compact-500 NET, estiver conectado. O procedimento de acesso ao Compact-500 e Compact-500 NET igual, sendo completamente transparente ao desenvolvedor, no requerendo nenhuma programao especial, exceto pela funo (5) Finalizao, que faz liberao da licena de uso daquela aplicao. O acesso aos servios feito por meio de um diretrio compartilhado(PSERV32 e Pserv16) ou pelo protocolo TCP/IP(PSERV32), onde os requerentes deixam as solicitaes e recebem as respostas. Isto feito automaticamente pela chamada as funes da C50016.DLL e C50032.DLL. Para utilizar o protocolo TCP/IP, somente no PSERV32.EXE, no necessria nenhuma configurao especial. Feita a chamada a funo, a dll verificar a presena de um Compact-500 (mono) na mquina, verificado a ausncia, verifica se h algum PSERV.EXE executando, e ento, lhe envia a mensagem com a operao desejada, tudo isso ocorre mesmo no existindo os arquivos de configurao PSERV.INI e C50032.INI. O PSERV.INI e o C50032.INI so os arquivos responsveis pelas configuraes especiais do PSERV32.EXE e da C50032.dll, como o acesso atravs de arquivos ao invs de Socket(TCP). ATENO! importante que os servios de TCP/IP de seu Windows e sua instalao de rede estejam funcionando adequadamente.(O cabo de rede deve estar conectado a mquina, seno os servios de rede de seu Windows no so inicializados). O diretrio compartilhado deve permitir que todas as estaes da rede tenham acesso com direitos de criao, leitura, gravao e eliminao de arquivos. Por exemplo: F:\SHARED\TEMP

O Pserv determina este diretrio com base no .INI, na forma: [Pserv]

Manual do Desenvolvedor 42

DirCompart=<via onde est o diretrio compartilhado> Exemplos: a) [Pserv] DirCompart=F:\SHARED\TEMP\ b) [Pserv] DirCompart=\\SERVIDOR\SHARED\TEMP\ O caminho para este diretrio, que deve ter sido criado previamente, tanto pode ser por meio de um drive compartilhado (exemplo a - acima), como por meio de UNC (exemplo b acima). Restries e limites 1. O Pserv suporta um mximo de 255 conexes, ou o limite definido no Compact-500 NET. 2. Quando uma estao faz a primeira chamada operao 3 (Inicializao), esta consome uma licena do Compact-500 NET. Se o programa for encerrado, sem executar uma chamada operao 5(Finalizao), essa licena ficar perdida por 1 minuto quando o acesso for via (TCP) ou at uma recarga do Pserv. 3. O aplicativo protegido deve executar a operao 5 antes de encerrar sua execuo, para que outra estao possa fazer uso da licena do Compact-500 NET. Para o correto funcionamento da verso em rede existem arquivos de configurao de nome C50016.INI e C50032.INI, que so a definio do diretrio compartilhado para as DLLs C50016.DLL e C50032.DLL, respectivamente. Estes arquivos devem apontar para o mesmo diretrio compartilhado pelo PSERV.INI. Caso o arquivo de configurao .INI exista e tenha um diretrio vlido, o programa protegido far acessos a um plugue Compact-500 (local), assim como a um plugue Compact-500 NET automaticamente, seguindo a ordem acima. O programa Pserv32.EXE deve estar rodando no computador da rede no qual o plugue Compact-500 NET estiver conectado. Portanto, necessrio que o computador esteja logado na rede para que o Pserv32.EXE possa ser executado no Windows 95/98/Me. No Windows NT/2000/XP o Pserv32.EXE pode ser instalado como um servio, de forma que no precise ter algum usurio logado no computador, para que funcione como servidor de plugue. Opes da C50032.dll [PSERV] DirCompart=<via onde est o diretrio compartilhado> Exemplos: a) [PSERV] DirCompart=F:\SHARED\TEMP\ b) [Pserv] DirCompart=\\SERVIDOR\SHARED\TEMP\ ActivateTcp=0 Se igual a 0 desligado se no existir ou estiver igual a 1 funciona via TCP.

Manual do Desenvolvedor 43

[Options] DisableHP=1 usado para compatibilidade com alguns modelos antigos de impressora. Opes de instalao do Pserv32.exe Nesta verso, o Pserv32.EXE possui duas novidades. a) O Pserv32.exe pode rodar no Systray(Padro), ou seja, no ocupa espao na barra de programas rodando minimizados. Alm disso, permite que o microcomputador seja desligado sem a necessidade de encerrar a execuo do Pserv32.EXE primeiro. Para tanto, basta colocar no Pserv.INI a seguinte linha: systray=1 se for =1 ou no existir o programa funciona com cone no systray se for =0 fica na barra de programas minimizados. b) O programa pode ser instalado como servio no Windows NT/2000/XP/2003. Desta forma, no preciso logar no NT para depois executar o Pserv32.EXE, pois ele ser chamado aps a carga do Windows e antes de qualquer usurio logar. Leia Instalando o Pserv32.EXE como servio no Windows NT.

c) Desligando o servio de acesso via TCP . [Pserv] DirCompart=C:\temp ntservice=1 ActivateTcp=0 Se igual a 0 desligado se no existir ou estiver igual a igual a 1 funciona via TCP.

Manual do Desenvolvedor 44

Instalando o Pserv32.EXE como um servio no Windows NT


O programa pode ser instalado como servio no Windows NT/2000/XP/2003 atravs do ntserv.EXE. 1) Logar no Windows NT como administrador 2) Adicionar as linhas no Pserv.INI (systray=1 e ntservice=1) 3) Executar o NTserv.EXE O funcionamento do ntserv poder ser realizado de duas maneiras: Sileciosa seu cliente no precisar intervir no procedimento de instalao Dever ser executado conforme abaixo. Ntserv 1 <ENTER> Instala o servio do Pserv32.EXE Ntserv 2 <ENTER> Desinstala o servio do Pserv32.EXE Observaes Importantes: O Pserv.INI ser alterado ou criado automaticamente contendo ntservice=1. O ntserv.EXE e Pserv32.EXE devero estar no mesmo diretrio. Convencional- (Atravs de janelas) 4) Reiniciar o Windows importante enfatizar que o Pserv32.EXE continua compatvel com as verses Windows 95/98/Me, apenas no podendo rodar como servio. Sempre que o Pserv32.EXE for colocado como servio, a opo systray tambm no dever estar desabilitada. Se este procedimento no for seguido, no ser possvel visualizar se o Pserv32.EXE est rodando e seu funcionamento poder ser comprometido. Um exemplo de Pserv32.INI: [Pserv] DirCompart=C:\temp systray=1 ntservice=1 Neste caso, o Pserv32.EXE roda como servio e aparece no systray.

Manual do Desenvolvedor 45

Tcnicas avanadas de proteo


Para que a tecnologia do Sistema Compact-500 seja bem utilizada, garantindo uma proteo de alto nvel, necessrio utilizar as ferramentas fornecidas. Se voc simplesmente colocar uma chamada ao Compact-500 na entrada de seu programa e testar o seu retorno com um simples chama_C500() IF Cdigo_Interno OK continua_o_programa ELSE parar_o_programa , no ser preciso ser um grande especialista para simplesmente pular a instruo parar_o_programa em um executvel e regrav-lo sem a mesma. Para utilizar o sistema de proteo de uma forma eficiente, o seu programa deve criar um vnculo mais forte com o plugue Compact-500. De que forma? Veja como fcil: Imagine que voc gravou o valor de uma constante do seu programa dentro da memria do Compact-500 e, quando o seu programa for utilizar a constante para alguma operao, voc chamar a funo do Compact-500 para ler o valor da mesma. Perceba que, se for retirada a chamada ao plugue, o programa no ter o valor da constante e, consequentemente, executar uma operao incorreta. Este simples exemplo j mostra como criar um vnculo maior entre o programa protegido e o plugue de proteo Compact-500. Uma variante desta tcnica usar a memria do Compact-500 como uma extenso da memria do seu programa, utilizando-a para clculos intermedirios. Por exemplo: voc efetua um clculo e seta um flag. Chame a funo do Compact-500 e grave o valor deste flag na memria do plugue. Em um outro trecho do seu programa, quando voc precisar checar o valor deste flag, chame a funo do plugue e leia o seu valor para uma varivel local e faa a checagem necessria. Perceba que, neste caso, o valor do flag pode ser diferente cada vez que for armazenado no plugue, dependendo do trecho do programa que est sendo executado. Isto aumenta ainda mais o grau de dificuldade para uma possvel quebra da segurana. O Compact-500 possui, ainda, uma funo de criptografia / decriptografia, que pode ser utilizada para encriptar uma string alfanumrica. Isto significa que se voc utilizar a funo para criptografar um dado, antes de grav-lo em seu banco de dados, este s poder ser decriptografado e lido normalmente se voc utilizar a funo de decriptografia do Compact-500. Repare que, em todas as situaes acima, a remoo da chamada da funo do Compact-500 no estar colocando em risco a segurana do programa protegido. Uma outra forma de ataque que voc pode enfrentar a tentativa de quebra/monitorao do sistema, atravs da substituio da C50016.DLL ou C50032.DLL. Para criar uma proteo contra isto, sugerimos que o programa protegido cheque a integridade da DLL utilizada atravs de um checksum, ou qualquer outro mtodo que evite a substituio da mesma. Desta forma, o programa protegido no ir nem mesmo funcionar caso a C50016.DLL ou C50032.DLL seja substituda. Estas tcnicas, quando combinadas, garantem uma proteo forte e tornam praticamente impossvel a tarefa de um hacker na tentativa de quebra de um programa protegido.

Manual do Desenvolvedor 46

muito importante que os valores gravados/lidos do plugue sejam variveis, pois, caso contrrio, um hacker poder forar um retorno fixo para as funes do programa protegido que fazem a leitura/gravao do plugue. Outro ponto importante que o programa protegido no d mensagens claras e imediatamente aps a checagem da existncia do plugue. Ainda que o programador possa efetuar uma checagem simples na entrada do programa, indicando que o plugue no est conectado e emitindo uma mensagem clara, conveniente que nos outros pontos do programa, onde ser checado o plugue, no seja tomada uma deciso de comparao to simples quanto continuar ou parar a partir do resultado obtido da funo de acesso ao plugue. importante destacar, portanto, a necessidade de utilizao das funes de acesso ao plugue, afim de criar um vnculo intrnseco entre o programa protegido e o plugue Compact-500. O Sistema Compact-500 conta, ainda, com a caracterstica de individualidade de cada cliente SAFENET. Isto significa que os plugues Compact-500 gerados por um determinado cliente no podem ser acessados por outro, pois seus Kits de Formatao so diferentes e personalizados, garantindo total segurana. A rea de memria do Compact-500 do tipo regravvel e no-voltil. Isto quer dizer que, apesar de no utilizar nenhuma fonte de alimentao ou bateria interna, no h perda das informaes mesmo que a chave seja desconectada do computador. Esta caracterstica permite que a memria seja utilizada como contador de execues, ou eventos, dentro de um programa protegido. Por exemplo: voc pode enviar o programa protegido para demonstrao com todas as caractersticas habilitadas e armazenar na rea de memria o nmero de vezes que o mesmo poder ser executado. Desta forma, quando o limite for alcanado o programa no mais funcionar e ter dado ao cliente a possibilidade de conhec-lo totalmente, sem restries. Quando o usurio concluir a avaliao e adquirir o produto, bastar que voc grave dentro da memria do plugue um valor predefinido, de forma que o programa no mais efetuar o controle de demonstrao. Outra aplicao o aluguel de software com controle da data de renovao. Por exemplo: voc grava na rea de memria do Compact-500 a data de instalao e de expirao. O programa protegido, quando executado, checa se a data atual maior do que a data de instalao e menor do que a data de expirao. Se a checagem for vlida, o programa roda e grava a data atual em uma outra rea da memria do Compact-500. Em uma nova execuo, o programa protegido checar se a data atual est entre a data de expirao e a da ltima vez em que o programa foi executado. Se a checagem for vlida, o programa roda e, mais uma vez, atualiza a data atual para uma prxima execuo. Caso contrrio, o programa no roda. Note que, desta maneira, o usurio no poder ficar alterando a data do relgio do microcomputador no intuito de burlar o sistema. Como pode-se observar, a rea de memria do Compact-500 possui diversas aplicaes. Ela pode ser utilizada para gravar o nmero da verso do programa protegido, nome do cliente e outros dados, como n. de srie, CNPJ, configuraes do programa etc. Apresentamos acima algumas maneiras de otimizar a utilizao do Sistema de Proteo Compact-500, garantindo eficincia e segurana. Se as tcnicas forem seguidas, assim como a combinao de vrias delas, alm de outras que podero ser desenvolvidas pelo prprio programador, o trabalho dos hackers ficar impraticvel. O dispndio de tempo e os investimentos necessrios para a quebra do programa protegido no compensaro tal trabalho. ATENO! aconselhvel que as tcnicas de proteo sejam alteradas para cada nova verso do programa protegido. Seguindo este procedimento a vida til da proteo

Manual do Desenvolvedor 47

acompanhar a vida til da verso protegida, incluindo, neste caso, o fator tempo na dificuldade de quebra do sistema de proteo. A possibilidade de uma nova verso utilizar o mesmo plugue Compact-500 do cliente interessante. No entanto, aconselhvel que sejam gravadas informaes dentro da sua memria, indicando um upgrade de verso. Desta maneira, voc ter a garantia de que um cliente antigo, que no pagou pelo upgrade do software protegido, no poder utilizar a nova verso apenas porque j possui um plugue Compact-500 da verso anterior. Observao: O aplicativo envelope.exe, que acompanha o Kit do Desenvolvedor, utiliza as tcnicas acima para proteger o programa envelopado, evitando, alm da pirataria, a engenharia reversa do programa protegido.

Manual do Desenvolvedor 48

Conhea melhor o Compact-500


Pergunta: Qual a diferena entre um protetor por hardware e um protetor por software? Resposta: No incio da microinformtica, a proteo de disquetes contra cpia foi muito utilizada, mas logo em seguida foram criados os programas copiadores que quebravam estas protees. Os sistemas de proteo via software evoluram, mas chegou um momento em que mais atrapalhavam os usurios do que protegiam os desenvolvedores (necessidade de disquetes-mestre, no permitem a compactao de disco rgido, defragmentao, cpias de backup etc.). Foram desenvolvidos, ento, plugues de proteo em hardware, conhecidos como dongle no mercado internacional. Este tipo de proteo muito mais eficaz e no cria os problemas ocasionados pelos sistemas de proteo via software. Portanto, um nmero cada vez maior de empresas que se preocupam com a pirataria de seus produtos optam por esta soluo, conseguindo aumentar suas vendas com a utilizao dos plugues de proteo. O sistema de proteo por software foi deixado em segundo plano, sendo atualmente utilizado apenas em programas de pequeno valor, os quais no suportariam o suporte de um plugue de hardware, pois, como so apenas de consumo (distribudos em papelarias, bancas de jornal etc.), no apresentam o compromisso de novas verses.

Pergunta: Onde posso encontrar dongles no Brasil? Resposta: A SAFENET, antiga PROTEQ, vem desenvolvendo e fabricando dongles (plugues de proteo) no Brasil desde 1989, acumulando experincia e conhecimento que nos permitem fabricar um produto com a mais avanada tecnologia de componentes (SMD) de alta confiabilidade, baixo custo e entrega imediata, oferecendo suporte tcnico diretamente ao desenvolvedor brasileiro. O modelo atual o Compact-500 (monousurio ou de rede) para porta paralela e USB.

Pergunta: A memria do Compact-500 s RAM ou s PROM, ou pode ser parte RAM e parte PROM? Resposta: A memria do Compact-500 possui 8 bytes do tipo PROM, que pode ser gravada uma nica vez, e 480 bytes de EEPROM, que pode ser alterada byte a byte e no necessita de alimentao para manter a informao. Esta mesma rea pode ser dividida de forma a ter uma subrea que funcione como PROM em campo, mas que pode ser regravada com o aplicativo Formatador, fornecido em nosso Kit Inicial de desenvolvimento. A rea de 480 bytes pode ser regravada pelo seu aplicativo, utilizando as bibliotecas fornecidas no Kit Inicial, pelo programa Formatador fornecido com o Kit Desenvolvedor. importante frisar que o Cdigo Interno (8 bytes) pode ser gravado uma nica vez.

Pergunta: Como no existe uma placa para gravar a parte PROM do dispositivo, se algum obtiver a minha(s) senha(s) poder gerar um dispositivo igual, utilizando o seu software de gravao? Resposta: NO. Cada cliente tem um Kit Inicial de desenvolvimento que possui um aplicativo para Formatar/Gravar os plugues Compact-500. Este aplicativo personalizado, de forma que, mesmo que algum descubra sua Senha de Acesso, no

Manual do Desenvolvedor 49

conseguir Formatar um plugue idntico ao seu. As prprias bibliotecas (.OBJ e DLLs) so diferentes para cada cliente SAFENET. Apenas os elementos do conjunto de programas fornecido no seu Kit Inicial funcionam entre si, no permitindo que outro cliente tenha acesso aos seus dados. Como exemplo, voc pode ter dois plugues de clientes diferentes conectados na mesma sada paralela e cada programa protegido conseguir acessar apenas o seu plugue correspondente.

Pergunta: O Compact-500 tem recursos de criptografia? Resposta: Sim. O Compact-500 possui um algoritmo prprio de criptografia, o qual pode ser parametrizado de acordo com uma string que funciona como semente de criptografia. Desta forma, cada plugue pode ter um funcionamento diferente, garantindo sua segurana.

Pergunta: De que forma o meu programa consegue acessar o plugue de proteo Compact-500? Resposta: Dispomos de mdulos-objeto (.OBJ), bibliotecas dinmicas (DLL) e drivers virtuais (VXD e SYS) que podem ser utilizados conforme sua necessidade e a linguagem que estiver sendo utilizada para o desenvolvimento do programa a ser protegido. No caso de aplicativos Windows 32 bits (Windows 95/98 e NT), pode-se complementar a proteo com recursos antiengenharia-reversa, introduzidos diretamente no executvel, sem a necessidade de modificao de cdigo fonte, utilizando-se o Envelopador fornecido juntamente com o Kit Formatador.

Pergunta: O Compact-500 tem alguma incompatibilidade com algum modelo de microcomputador? Resposta: No. O Compact-500 compatvel com microcomputadores padro IBM-PC, desde o modelo XT at o Pentium IV, tanto desktop quanto notebook, onde, inclusive, devido ao seu baixo consumo, no interfere de maneira alguma no seu funcionamento.

Pergunta: O plugue de proteo Compact-500 pode ser acoplado em LPT1, 2 ou 3? Resposta: Para voc Formatar o plugue na primeira vez, ele deve ser acoplado na LPT1 junto com o plugue Formatador (vermelho). Para voc acess-lo de dentro do seu programa (ler/gravar) ele pode estar em qualquer LPT, pois a busca automtica, ou seja, o seu programa no precisa especificar a porta onde o plugue de proteo est conectado. O plugue USB pode ser conectado em qualquer porta USB do computador tanto para a formatao quanto para a utilizao do software protegido.

Pergunta: Qual o meio fsico (chip) onde a memria do dispositivo gravada e quais as formas de segurana para que ela no seja diretamente copiada? Resposta: Utilizamos chips de memria e controladores que no so encontrados normalmente em nosso mercado. Os chips no tm identificao nenhuma e passam por um banho especial de resina para evitar qualquer tentativa de engenharia reversa de hardware.

Manual do Desenvolvedor 50

Suporte tcnico
Qualquer dvida sobre este produto, entre em contato com o Suporte Tcnico da SafeNet: techsupportbrazil@safenet-inc.com

Manual do Desenvolvedor 51

Glossrio
Compact-500 - plugue eletrnico de proteo contra pirataria (pode ser paralelo ou USB). Compact-500 NET - mesmo que Compact-500, apenas contm um determinado n.. de licenas para controlar sozinho, em uma rede local, o n. de usurios autorizados a utilizar a aplicao protegida. Plugue Formatador - plugue eletrnico que permite que o programador formate e grave informaes em um plugue Compact-500 ou Compact-500 NET virgem, modelo paralelo. O modelo USB no utiliza plugue formatador. Programa Formatador - arquivo FC500.EXE, personalizado para cada cliente, utilizado com o Plugue Formatador para formatar e gravar informaes em um plugue Compact500 ou Compact-500 NET (roda sob Windows 3.x ou Windows 95/98/Me/NT/2000 e XP). Programa Envelopador (ENVELOPE.EXE) - um aplicativo que protege um programa de 32 bits de forma automtica, sem a necessidade de alterao do programa fonte. Driver Virtual - arquivo de nome Proteq.VXD para o Windows 3.1 e Windows 95/98/Me, ou Proteq.SYS para Windows NT/2000 e XP. C50016.DLL - biblioteca de carga dinmica que contm funes de acesso ao plugue Compact-500 e Compact-500 NET. Utilizada por aplicativos protegidos gerados em 16 bits. C50016.INI - arquivo de configurao que indica o path do diretrio compartilhado pelo Plugserv.exe na verso em rede. C50032.DLL - biblioteca de carga dinmica que contm funes de acesso ao plugue Compact-500 e Compact-500 NET. Utilizada por aplicativos protegidos gerados em 32 bits. C50032.INI - arquivo de configurao que indica o path do diretrio compartilhado pelo Pserv.EXE na verso em rede. C500DOS.INI - arquivo de configurao que indica o path do diretrio compartilhado pelo Pserv.EXE na verso em rede, utilizando mdulo objeto em programas DOS. C500NT.DLL - biblioteca de carga dinmica de apoio ao driver para Windows NT. CompactDrivers.EXE - quando acionado, instala, automaticamente, os drivers necessrios para o funcionamento do Compact-500 nas verses Windows 95/98/Me e NT/2000/XP. Este aplicativo de instalao (CompactDrivers.exe) poder ser enviado junto com o aplicativo de instalao do seu sistema. Assim, fica muito mais fcil instalar os drivers virtuais (Proteq.VXD, Proteq.SYS e C500NT.DLL). ATENO: as DLLs (C50016.DLL ou C50032.DLL) devero estar no diretrio de sua aplicao, pois estas no so instaladas com o CompactDrivers.EXE. Date.EXE - Este aplicativo responsvel pela atualizao remota do controle de datas do Compact-500. Pserv16.EXE - aplicativo de 16 bits servidor de plugue em rede. Pserv32.EXE - aplicativo de 32 bits servidor de plugue em rede. O nome Pserv ser utilizado daqui para a frente para nos referirmos aos aplicativos Pserv16.EXE e Pserv32.EXE indistintamente, pois os aplicativos so iguais, apenas em verses de 16 e 32 bits.

Manual do Desenvolvedor 52

Proteq.INI - arquivo de configurao utilizado para registrar o driver virtual. Proteq.SYS - biblioteca de carga para registrar em uma mquina rodando Windows NT. As DLLs e os drivers devem estar em diretrios que constem do path do microcomputador; de forma geral, aconselhamos o seguinte: Proteq.VXD - Colocar no diretrio \windows\system C50016.DLL ou C50032.DLL - Colocar no diretrio do aplicativo protegido. C50016.INI ou C50032.INI - Colocar no diretrio do aplicativo protegido. Pserv16.EXE ou Pserv32.EXE - Colocar no diretrio compartilhado. Pserv.INI - Colocar no diretrio compartilhado.

Proteq.SYS - Colocar no diretrio \winnt\system32\drivers.

Manual do Desenvolvedor 53