Documente Academic
Documente Profesional
Documente Cultură
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
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
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
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
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
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.
Manual do Desenvolvedor 13
O Contador determina o nmero mximo de execues que o sistema poder fazer. Formatar
L a configurao do plugue.
Gravar
Opo Abrir
Manual do Desenvolvedor 14
Opo Salvar
Salva a configurao ativa com o nome atual para que possa ser utilizada posteriormente. Opo Salvar Como
Opo Sobre
Manual do Desenvolvedor 15
Exibe o nmero de verso deste programa, avisos de copyright e compatibilidade. Opo Manual
Manual do Desenvolvedor 16
Manual do Desenvolvedor 17
Manual do Desenvolvedor 18
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
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
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.
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
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
Manual do Desenvolvedor 33
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
Data atual do sistema o campo no pode ser modificado. Os campos seguintes devero ser preenchidos obrigatoriamente.
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.
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
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
Manual do Desenvolvedor 39
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.
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
Manual do Desenvolvedor 41
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
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
Manual do Desenvolvedor 45
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
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.
Manual do Desenvolvedor 53