Jump to content
Fivewin Brasil

Como Proteger os Nossos Sistemas


Valdir

Recommended Posts

Olá Pessoal...

Antes de mais nada, não quero e não vou entrar em discussão do Tópico http://www.fivewin.com.br/forum/TOPIC_ID=4920, porém acredito que devemos aproveitar para discutir o assunto numa forma mais produtiva e que possa beneficiar a todos. Acredito ser possível desenvolvermos uma lógica de Encriptação que venha a nos ajudar a proteger os nossos Sistema.

Nos meus Sistemas em Clipper/Dos, utilizo o aplicativo HandProt, que até onde sei, foi ganhador de inúmeros prêmios, inclusive no exterior, por proteger os executáveis das aplicações através da encriptação do Arquivo .EXE, impossibilitando a descompilação pelos aplicativos específicos (VALK,,,,etc.), inclusive protegendo contra a Engenharia Reversa.

Infelizmente a Empresa Squadra Informática não está interessada, pelo menos por enquanto, em desenvolver nenhuma ferramenta que pudesse nos atender, pois se aprofundaram no Nhecaa...(Delphi).

Por esta razão acabei desenvolvendo uma rotina de segurança, impedindo a pirataria dos meus Sistemas, porém ainda não consegui desenvolver uma encriptação que evitasse a Engenharia Reversa, ficando assim todos os meus Sistemas desprotegidos contra este tipo de Pirataria.

Diante de tudo isto, venho propor a todos os participantes que tenham conhecimentos na Linguagem "C" e aos mestres deste maravilhoso fórum que se envolvam e ajudem-nos a criar uma sistemática de Proteção.

Por favor opinem e dêem as suas sugestões para solucionarmos este problema, pois acredito que se uma empresa pode fazer algo neste sentido, nós também podemos. É só nos agruparmos que com certeza a solução será alcançada...

Um abraço

Valdir - Jundiaí - S.P.

FW23/CLIP52E/BLINKER7

Prestigiem o III Encontro de Usuários de Fivewin

Link to comment
Share on other sites

Olá Pessoal...

Antes de mais nada, não quero e não vou entrar em discussão do Tópico http://www.fivewin.com.br/forum/TOPIC_ID=4920, porém acredito que devemos aproveitar para discutir o assunto numa forma mais produtiva e que possa beneficiar a todos. Acredito ser possível desenvolvermos uma lógica de Encriptação que venha a nos ajudar a proteger os nossos Sistema.

Nos meus Sistemas em Clipper/Dos, utilizo o aplicativo HandProt, que até onde sei, foi ganhador de inúmeros prêmios, inclusive no exterior, por proteger os executáveis das aplicações através da encriptação do Arquivo .EXE, impossibilitando a descompilação pelos aplicativos específicos (VALK,,,,etc.), inclusive protegendo contra a Engenharia Reversa.

Infelizmente a Empresa Squadra Informática não está interessada, pelo menos por enquanto, em desenvolver nenhuma ferramenta que pudesse nos atender, pois se aprofundaram no Nhecaa...(Delphi).

Por esta razão acabei desenvolvendo uma rotina de segurança, impedindo a pirataria dos meus Sistemas, porém ainda não consegui desenvolver uma encriptação que evitasse a Engenharia Reversa, ficando assim todos os meus Sistemas desprotegidos contra este tipo de Pirataria.

Diante de tudo isto, venho propor a todos os participantes que tenham conhecimentos na Linguagem "C" e aos mestres deste maravilhoso fórum que se envolvam e ajudem-nos a criar uma sistemática de Proteção.

Por favor opinem e dêem as suas sugestões para solucionarmos este problema, pois acredito que se uma empresa pode fazer algo neste sentido, nós também podemos. É só nos agruparmos que com certeza a solução será alcançada...

Um abraço

Valdir - Jundiaí - S.P.

FW23/CLIP52E/BLINKER7

Prestigiem o III Encontro de Usuários de Fivewin

Link to comment
Share on other sites

Olá Pessoal...

Antes de mais nada, não quero e não vou entrar em discussão do Tópico http://www.fivewin.com.br/forum/TOPIC_ID=4920, porém acredito que devemos aproveitar para discutir o assunto numa forma mais produtiva e que possa beneficiar a todos. Acredito ser possível desenvolvermos uma lógica de Encriptação que venha a nos ajudar a proteger os nossos Sistema.

Nos meus Sistemas em Clipper/Dos, utilizo o aplicativo HandProt, que até onde sei, foi ganhador de inúmeros prêmios, inclusive no exterior, por proteger os executáveis das aplicações através da encriptação do Arquivo .EXE, impossibilitando a descompilação pelos aplicativos específicos (VALK,,,,etc.), inclusive protegendo contra a Engenharia Reversa.

Infelizmente a Empresa Squadra Informática não está interessada, pelo menos por enquanto, em desenvolver nenhuma ferramenta que pudesse nos atender, pois se aprofundaram no Nhecaa...(Delphi).

Por esta razão acabei desenvolvendo uma rotina de segurança, impedindo a pirataria dos meus Sistemas, porém ainda não consegui desenvolver uma encriptação que evitasse a Engenharia Reversa, ficando assim todos os meus Sistemas desprotegidos contra este tipo de Pirataria.

Diante de tudo isto, venho propor a todos os participantes que tenham conhecimentos na Linguagem "C" e aos mestres deste maravilhoso fórum que se envolvam e ajudem-nos a criar uma sistemática de Proteção.

Por favor opinem e dêem as suas sugestões para solucionarmos este problema, pois acredito que se uma empresa pode fazer algo neste sentido, nós também podemos. É só nos agruparmos que com certeza a solução será alcançada...

Um abraço

Valdir - Jundiaí - S.P.

FW23/CLIP52E/BLINKER7

Prestigiem o III Encontro de Usuários de Fivewin

Link to comment
Share on other sites

Grande Valdir,

Todo mundo pensando que o Katrina tinha passando em Jundiaí, e o cidadão tinha apenas trocado de telefone, heim??? HAHAHAHAHAHA

Agora sim, tô dentro. Esse é um tópico decente.

Há muito tempo (e não lembro onde) obtive uma instrução num site de HACKERs que, se num programa de biblioteca de funções tiver essa:

PROCEDURE ERRORSYS()

MEMVAR ERRORSYS

PRIVATE ERRORSYS

ERRORSYS:=9876543210

RETURN NIL

Me recordo que um há código secreto entre eles, no qual, quando lido pelo descompilador, aborta na hora.

O Kapiaba também falou sobre o PACKCODE e o PACKDATA do Blinker como fator de proteção.

Você mencionou o Handprot.

Vamos ver como a comunidade se manifesta.

Um grande abraço

Paulo/CONTATO SISTEMAS

Clipper53b / FW26 / Blinker70

Ajudar é um prazer, agradecer é uma obrigação

PRESTIGIEM O III ENCONTRO DE USUÃRIOS DE FIVEWIN - 2005

Link to comment
Share on other sites

Ola amigos...

Eu usei o hand nos antigos sistemas q eu tinha mas hj nao o uso mais. Agora ha uma duvida q tenho e gostaria q os grandes sanassem...

o xHarbour é um codificador do clipper pra C++ certo... ou seja ... ele tem suas funcoes e rotinas proprias... tipo ... c abrir um aruqivo fonte compilado com xHarbour agente nota que nao tem nada haver com nosso fonte original... agora a pergunta é... se eu compilar meu sistema com xharbour ha como alguem conseguir o codigo fonte? Devido ao codigo fonte nao ser mais o meu prg e sim o .C e este .C nao é legivel como uma strutura C mesmo ele é um emaranhado de funcoes para trabalhar o clipper ... tipo posso ter falado besteiras sobre como funciona mas no teor do negocio é q talvez o xharbour nao permita q o cidadao mau intencionado chegue ao nosso codigo fonte na real...

valeu pelo topico...

Um Xharbraço. *** Karate-DO *** Conter o Espirito de Agreção ****

Uso Fwh 2.5 (xharbour 0.99) e Xmate Para Compilar

Link to comment
Share on other sites

Boa tarde a todos...

quando eu comecei a trabalhar na area (a muitos anos atras rsss) eu tinha uma grande preocupação com esta questão... depois de "penar" muito e perder alguns fios de cabelo, eu cheguei a conclusão que por mais que eu procurasse protejer meu codigo sempre teria alguem que conseguiria burlar esta proteção... vejam voces mesmo... nao existe hoje no mercado nenhum programa que tenha este tipo de proteção e que seja infalivel... as empresas de software já fizeram de tudo pra protejer os programas... protecao contra copia de disco, de CD, travas via hardware (hardlocks), encriptação de codigo... n tentativas... e sempre alguem conseguia abrir... más esse "alguem" ma maioria das vezes é uma pessoa que tá fazendo isso só pra conseguir fazer... basta ver um codigo aberto pelo Valkire... caras nenhuma empresa iria perder tempo e investimento pra decodificar, analisar, entender o codigo de um sistema aberto por engenharia reversa... nao valeria a pena... se isso nao fosse verdade hoje nos teriamos ai varios Windows, Words, Excels, Corel, etc..etc..etc..

Por outro lado, eu penso que nós nao podemos simplesmente deixar nossos sistema ai abertos... sem nenhuma proteção...

O que eu fiz foi simplesmente criar uma forma que meu sistema não poderá ser utilizado sem que eu tenha passado uma chave de liberacao... ai sim... nesta chave eu criei um mecanismo de criptografia (nao uso as funcoes padrao do Clipper/Harbour) que gera uma contra senha e permite o uso do sistema... resumindo.. qualquer um pode baixar ou solicitar meu sistema por e-mail e usar o ambiente de testes sem restricao.... más para usar o sistema com os dados da empresa... (Nome, Razao Social, CNPJ, endereço..etc) tem que solicitar a chave de liberacao para mim... algum esperto até pode tentar reverter o EXE para fonte... más vai ter que penar pra analizar 300 mil linhas de codigo para tentar descobrir como usar o sistema sem a chave...

Bom é esta a minha modesta opiniao...

abraçcos

Marllon Figueiredo

Analista de Sistemas ERP/CRM

Porto Alegre - RS

siscatsoftware@hotmail.com

FWH,(x)Harbour,xMate,Bcc,Clipper,Blinker,Exospace,MySQL,MsSQL,Oracle,Postgres,TopConn,ADS,SQLLib

Link to comment
Share on other sites

No .LNK do Blinker adicionar a sequinte linha:

# String que será gravada no Executável.

BLINKER EXECUTABLE SERIAL QuinfoPEPE 3.00 20050913

QuinfoPEPE C 15 => Nome do sistema ou outra coisa.

3.00 C 5 => Versão do sistema

20050913 C 08 => Data de validade do aplicativo

O formato da string é livre, vai da necessidade de cada um.

NO PROGRAMA PRINCIPAL FAZEMOS:

.

.

.

TmpSerNum := BliSerNum() && Função do Blinker lê string

&& da aplicação.exe.

PUBLIC SeNr_Sistema := SubStr(TmpSerNum, 1,15)

PUBLIC SeNr_Versao := SubStr(TmpSerNum,16, 5)

PUBLIC SeNr_DtValid := SubStr(TmpSerNum,21, 8)

SenrDtValid( DTOS(DATE()), SeNr_DtValid ) && rotina de

&& verificação

&& da validade.

.

.

.

ROTINA DE VERIFICAÇÃO DE VALIDADE

FUNCTION SenrDtValid( Arg1, Arg2 )

IF Arg1 > Arg2

TONE(1000,3)

TONE(1000,1)

TONE(1000,3)

MsgStop("ATENÇÃO"+CRLF+"Validade do Sistema

expirado! Favor entrar em contato com;

Empresa Desenvolvedora - Fone: (xx)

9999-9999;Para a substituicao da Versao!")

CLOSE ALL

QUIT

ENDIF

Simples não?

Abraços e espero que esta, possa ser útil.

Link to comment
Share on other sites

Acho importante proteger nossos sistemas mas tambem acho que essas proteções são um saco.

Empresas pequenas não são organizadas como empresas grandes.

Não tem um servidor, trocam de micro, jogam o sistema pra cá e pra lá para esconde-lo e outras coisas mais.

Se o sistema é instalado numa empresa de porte, até acho que a trava vai bem, mas em pequenas empresas.....

Acho que o melhor é uma trava como disse o Marllon onde se tem uma chave de bloqueio/desbloqueio, mas mesmo assim ainda vai dar dor de cabeça.

Acho tambem que quem pirateia é porque não tem cabeça para criar e dessa forma mesmo que obtenha os fontes pode faze-lo funcionar num certo período, mas um dia a casa irá cair.

José Carlos

Guarulhos-SP

FW 2.0 / Clipper 5.2e / WS | FWH 2.5 / xHarbour / xMate / Pelles

Link to comment
Share on other sites

Bem eu uso muito parecido com o Marllon, apenas sou um pouco

cruel, com que por ventura conseguir copiar fazer funcionar

o sistema.

Deixo que o camarada use durante um certo periodo, período este

que ele se sentira seguro o suficiente, para que se tiver

outro, seja substituido pelo meu, depois deste tempo, começo

a colocar mensagens de software pirateado.

Porem antes disto, algumas mensagens oferecendo regularização. Bem cordial.

Mas se o camarda teimar, aí pau come.

Se for notas fiscais, coloco bem em negrito no primeiro item da nota e no campo de observações.

Se for cupom fiscal, idem.

Isto sem falar de uma bela tela bem chamativa, com direito a

caveira e tudos mais.

rodape_fw.jpg

Link to comment
Share on other sites

Amigos,

Também temos algo semelhante ao que o Marllon colocou.

Mas, além de proteger contra as cópias indevidas, também mantém sob rédea curta OS CALOTEIROS.

Nós optamos por não vender sistemas, nem cobrar por implantação, mas sim locá-los.

É como um casamento: eles ficam conosco enquanto o sistema/suporte/etc atendê-los bem, e nós enquanto eles nos pagarem o que foi acordado.

Mantemos os dados cadastrais dos clientes no próprio EXE, tendo apenas o número de série em dbf. Dá mais trabalho, mas é muito mais seguro. Só essa medida já inviabiliza uma cópia indevida, pois em Ordens de Compra, recibos, relatórios, etc, apareceriam os dados de outra empresa.

De 3 em 3 meses, ou mês a mês (dependendo do cliente), o sistema mostra um número de série e pede a contra-senha, cujo cálculo (bem maluco), a partir do número de série, não dá qualquer possibilidade de se descobrir. FORNECEMOS ANTECIPADAMENTE SOMENTE AOS CLIENTES EM DIA, OBRIGANDO OS INADIMPLENTES A NOS LIGAREM.

Eles podem voltar a data interna para escapar, certo??

Errado, todas as datas principais (NF/contas a receber/contas a pagar/compras/contratos/etc) estão amarradas com a data interna, tornando os controles totalmente inviáveis.

Agora, QUE O PERSONAL ME DEU IDEIAS, ELE DEU ................

Abraços

Paulo/CONTATO SISTEMAS

Clipper53b / FW26 / Blinker70

Ajudar é um prazer, agradecer é uma obrigação

PRESTIGIEM O III ENCONTRO DE USUÃRIOS DE FIVEWIN - 2005

Editado por - pauloaraujo on 13/09/2005 20:15:11

Link to comment
Share on other sites

Olá amigos. Faço da mesma forma que o Paulo araujo falou. Loco os sistemas.

E a cada tempo o usuario precisa relicenciar através de contra senha. Se não me pagar o sistema simplesmente para. Voltar data não travo porque a aqueles micros velhos que dá problema de bateria, ferrando com a data, porém trabalhar com data errada é completamente inviável para o usuário.

Quando o Usuário me passa a Senha solicitando a Licença, eu sei através dela se ele está no mesmo PC e se sua data está correta. Se o Sistema estiver em Rede, cada terminal e inclusive o servidor tem que ser licenciado separadamente evitando assim que apareça uma CPU sem autorização.

Gravo a licença em um arquivo DBF visivel com uma criptografia que é tão fácil de decifrar quanto acertar na Megasena 100 vezes seguidas. ehehehehehehe.

Caso o esperto tente violar este arquivo de licença, me sistema detecta e para de funcionar. Mesmo se o usuario fez uma copia do original e depois restaurou, o sistema não funcionará mais. Ele é obrigado a me procurar e me confessar o ocorrido.

Se for feito um clone de HDD o sistema tambem para de funcionar.

Bom, acho minha trava 99.9% segura e acho que é bastante confiável contra expertos. Abraços a todos.

ADELSON - (A&F Soft)

Pelles 3.00.4, FWH 2.6, xHarbor Comercial 0.99.5, Drive RDDSQL

Link to comment
Share on other sites

Olá pessoal...

Obrigado pelas postagens até aqui, o que demonstra ser um assunto polêmico, cada qual com a suas criações e definições de proteção contra a Pirataria ou contra a falta de pagamentos nos casos de locação de Software.

Também utilizo uma proteção parecida como a que voces comentaram, inclusive controlando por data e quantidades de acessos. No caso dos micros antigos que podem perder o Setup da CMOS, inclui uma rotina de comparação de Datas progressivas e quando estas datas diferem, antes de liberar o acesso, é apresentada uma mensagem solicitando a atualização da Data, ou até mesmo a intervenção de um Técnico para solucionar o Problema.

Estas informações ficam armazenadas em dois arquivos DBFs, sendo o primeiro aculto, encryptado e instalado em outro Diretório em qualquer parte aleatória do HD do Cliente. O Segundo é apenas um disfarce onde coloco um número de série fictício num Campo encryptado, junto as informações de Cadastro do Usuário do Sistema.

Isto torna o grau da segurança bastante alta, tornando impossível a sua comercialização por outras pessoas, ou seja, deixo piratear a vontade, porém após algum tempo, o Usuário terá que entrar em contato comigo para continuar a utilizar os meus Sistemas.

A preocupação em relação a Engenharia Reversa, praticamente não existe nos dias de hoje, conforme postei no Fórum Off Tópic http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=5029, porém como ainda não estamos 100% seguros, acho que é um assunto para ser diariamente acompanhado e discutido.

Um abraço

Valdir - Jundiaí - S.P.

FW23/CLIP52E/BLINKER7

Prestigiem o III Encontro de Usuários de Fivewin

Link to comment
Share on other sites

Já vi sistema com proteção via porta da LPT1 / USB, onde o usuário recebe um conector com informações gravadas dentro, e o software só funciona com esse conector aclopado atráz do micro, não interferindo no funcionamento das impressoras.

nesse caso o usuário poderá instalar o sistema em qualquer lugar, mas precisará do conector para fazer funcionar.

mas o problema é o custo do tal conector dependendo do valor do software... é uma solução.

NÚMERO DE SÉRIO DO HD.

se voce fizer uma trava com o numero de série do HD ficará eternamente ligado nesse cliente, pois se voce vender um software que não tem manutenção mensal. e esse cliente trocar de comp. ou HD... pronto ! lá vai ele te ligar e as vezes voce nem se lembra mais dele. e o que voce vai fazer ? cobrar novamente ? é complicado. pois o cliente pode dizer que pagou pelo sistema e ele tem o direito de colocar onde ele quizer dentro do seu escritorio e isso é previsto em lei. daí voce terá que ficar ceder a ele uma nova chave. isso se ainda estiver trabalhando com informática. rs.

Hélio

xHarbour

Link to comment
Share on other sites

  • 3 months later...

citação:

No .LNK do Blinker adicionar a sequinte linha:

# String que será gravada no Executável.

BLINKER EXECUTABLE SERIAL QuinfoPEPE 3.00 20050913

QuinfoPEPE C 15 => Nome do sistema ou outra coisa.

3.00 C 5 => Versão do sistema

20050913 C 08 => Data de validade do aplicativo

O formato da string é livre, vai da necessidade de cada um.

NO PROGRAMA PRINCIPAL FAZEMOS:

.

.

.

TmpSerNum := BliSerNum() && Função do Blinker lê string

&& da aplicação.exe.

PUBLIC SeNr_Sistema := SubStr(TmpSerNum, 1,15)

PUBLIC SeNr_Versao := SubStr(TmpSerNum,16, 5)

PUBLIC SeNr_DtValid := SubStr(TmpSerNum,21, 8)

SenrDtValid( DTOS(DATE()), SeNr_DtValid ) && rotina de

&& verificação

&& da validade.

.

.

.

ROTINA DE VERIFICAÇÃO DE VALIDADE

FUNCTION SenrDtValid( Arg1, Arg2 )

IF Arg1 > Arg2

TONE(1000,3)

TONE(1000,1)

TONE(1000,3)

MsgStop("ATENÇÃO"+CRLF+"Validade do Sistema

expirado! Favor entrar em contato com;

Empresa Desenvolvedora - Fone: (xx)

9999-9999;Para a substituicao da Versao!")

CLOSE ALL

QUIT

ENDIF

Simples não?

Abraços e espero que esta, possa ser útil.


id=quote>id=quote>

quicussi, estou implementando essa sua dica, acontece que da erro que não encontra a função blisernum() na hora de linkeditar.

Abraços.

Beto

betovsp@hotmail.com

(16)9148-1515

CL53B + FW2.0 + @ SAY + BLINKER 7

Ribeirão Preto/SP

Link to comment
Share on other sites

  • 2 years later...

desculpem a postagem aqui.. é que este assunto é muito importante para todos...

Acabo de disponibilizar na minha pagina ( www.siscat.com.br ) a versão de avaliação de duas ferramentas que podem vir a ser muito uteis para os desenvolvedores que desejam tem seus programas protejidos contra copias piratas e/ou uso indevido.

App Siscat License - ferramenta de gerenciamento de licenças para software, esta ferramenta possibilita voce efetuar uma configuração nos seus programas de forma que os mesmos só funcionem caso a App Siscat License dê permissão, ou seja, voces não precisariam mais escrever códigos para proteger seus programas contra uso e/ou cópias ilegais. Esta ferramenta utiliza os mais novos recursos de proteção por chave de hardware e alem disso ela conta com gerenciamento de licenças, e bloqueio por data, ideal para quem trabalha no regime de locação!

App Siscat Server - ferramenta que possibilita voce interagir com sua base de dados a partir de paginas web utilizando o proprio navegador... utiliza o conceito de CGI más de uma forma bem otimizada, onde todo codigo é escrito em xharbour puro. Conta tambem com gateway SMTP/POP, servidor TELNET, servidor de números, servidor RPC e algumas outras implementaçoes.

quem desejar maiores informações me envie um e-mail em siscat@siscat.com.br ou siscatsoftware@hotmail.com

[]s..

Marllon Figueiredo

Analista de Sistema

Porto Alegre - RS

siscatsoftware@hotmail.com

FWH + xHB + SQL + SQLRDD + xDevStudio

aplicacoes.gif

Link to comment
Share on other sites

Helio,

conforme toda essa conversa referente a este tópico, vc pode observar minhas colocações acima... eu não faço bloqueios deste tipo ... serial HD, numero de BIOS, entre outras...

A ideia por traz da App Siscat License é permitir que voce instale seu software em um cliente defina a quantidade de licenças (acessos concorrentes) que seu programa poderá aceitar e tenha certeza que ninguem poderá copia-lo e instalar em outro cliente.

Quando voce integra seu software com a App Siscat License o mesmo somente vai funcionar se a ASL estiver sendo executada, e por outro lado a ASL é protejida com chave de hardware (conectada na porta USB) que não pode ser clonada em hipotese alguma, ou seja, somente copiar a ASL + seu software e instalar em outro local sem ter a chave de hardware não será possivel a execução dos mesmos.

[]s..

Marllon Figueiredo

Analista de Sistema

Porto Alegre - RS

siscatsoftware@hotmail.com

FWH + xHB + SQL + SQLRDD + xDevStudio

aplicacoes.gif

Link to comment
Share on other sites

Oscar, boa noite

vai funcionar normalmente até o limite de licenças que voce definir para sua aplicação!

[]s..

Marllon Figueiredo

Analista de Sistema

Porto Alegre - RS

siscatsoftware@hotmail.com

FWH + xHB + SQL + SQLRDD + xDevStudio

aplicacoes.gif

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...