Manual

Embed Size (px)

Citation preview

Manual do Desenvolvedor 1

ndiceComponentes .................................................................................................................. 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

ComponentesCompact-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

ApresentaoParabns! 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

GarantiaOs 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

DireitosO 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 iniciaisOs 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 desenvolvedor1. 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-500A 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-500Para 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 bitsO 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.xAqui 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 .ida ou .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