Leia e escrobir uma seqüência de texto no executável.

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

victorale07
Usuário Nível 2
Usuário Nível 2
Mensagens: 67
Registrado em: 20 Ago 2009 19:55
Localização: chile

Leia e escrobir uma seqüência de texto no executável.

Mensagem por victorale07 »

Olá
Eu preciso saber ler e escrobir uma seqüência de texto que está dentro do meu executável é operado miestras .-

Muito obrigado
:xau
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Re: Leia e escrobir uma seqüência de texto no executável.

Mensagem por Pablo César »

Utilize as funções de baixo nível
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
victorale07
Usuário Nível 2
Usuário Nível 2
Mensagens: 67
Registrado em: 20 Ago 2009 19:55
Localização: chile

Re: Leia e escrobir uma seqüência de texto no executável.

Mensagem por victorale07 »

Mas eu preciso de alguns exemplos por favor.

Obrigado
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Leia e escrobir uma seqüência de texto no executável.

Mensagem por Pablo César »

Utilize a opção de "Busca", tem farto material, como por exemplo:

viewtopic.php?f=1&t=7471&hilit=FREAD
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Leia e escrobir uma seqüência de texto no executável.

Mensagem por Maligno »

...emitindo mensagem para o usuário indexar a tabela.
Acho que mais esperto seria se, ao abrir o DBF o próprio programa, ao identificar a falta do índice, o recriaria automaticamente. Não falo do auto-open da SIX, que nunca usei, mas de um sub-sistema inteiro. À época que fiz o meu, já incluí esse recurso. E mais ainda: na pesquisa do índice, o próprio programa, ao identificar uma anomalia (é possível), ele encarra como corrupção, fecha todos os índices e os recria. O usuário só sabe que "alguma coisa" aconteceu porque a janela de acompanhamento de indexação aparece. Ficou muito bom. Mas ele mesmo, em qualquer situação, nunca indexa. Nada de mágica. Apenas coisas simples.

Quanto a econtrar um "buraco" no EXE, depende. Pra quem utiliza BLinker não é possível, por causa da compressão (mínima que seja) que sempre tem. A não ser que haja algum comando, que não conheço, que desligue realmente isso. Mas no RTLink é sempre possível "reservar" um espaço dentro do EXE. Usei esse recurso por muito tempo para inserir informações dentro do EXE depois que ele já estava montado. Usava um programa à parte, feito em ASM. Mas pode-se usar qualquer coisa pra editar essa área.

Quanto ao problema do colega: não sei se entendi direito qual é idéia dele. Se a intenção for criar uma área, como citei acima, fica a questão do linker utilizado. Um programa à parte pode fazer a edição dessa área. Mas se for utilizado o BLinker, infelizmente não dá.
Talvez a idéia dele seja apenas encriptar uma string qualquer dentro do EXE, para que ninguém a leia. Uma senha, talvez (?). Mesma coisa: se for o BLinker, pode ficar tranquilo. Ninguém lerá, uma vez vez que o EXE é comprimido. Além disso, ele não permite a descompilação. Se usar o RTLink, pode-se criar um algoritmo qualquer. Um simples "scrambler" já serviria. Mas não adiantaria muito, já que alguém poderia descompilar o programa. Então, se for o caso dele, sugiro começar a usar o BLinker.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Leia e escrobir uma seqüência de texto no executável.

Mensagem por alxsts »

Olá!

Não precisa achar um "buraco" no arquivo .EXE. Depois que ele é gerado, qualquer coisa que se escreva após o último byte é ignorada.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Leia e escrobir uma seqüência de texto no executável.

Mensagem por Maligno »

Não sei se é o caso do BLinker, até porque nunca testei, mas alguns EXE tem checagem sobre o conteúdo do EXE. Nesse tipo de EXE, se algo for agregado, o programa não roda. Aliás, havia um utilitário do Norton que fazia isso artificialmente nos programas que não contavam com o recurso.
Se a intenção do colega for proteção, isso é totalmente obsoleto hoje em dia, já que se pode usar a Internet. Muito melhor.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Leia e escrobir uma seqüência de texto no executável.

Mensagem por Maligno »

Como é OFF-TOPIC, depois dessa mensagem, não postarei mais aqui. Se quiser continuar o assunto, crie outro tópico.

Eu me referi a um sub-sistema, como o que criei, que contém tudo. Mas nem precisa de fato. Um função genérica é perfeitamente possível. Mas nesse sub-sistema, tudo é feito automaticamente. É óbvio que, não havendo possibilidade de reindexação (vários usuários), ele vai parar e emitir o aviso ao usuário em cuja máquina foi detectada a falha. Ainda assim, não havendo essa possibilidade, a função trava, mas o usuário pode fazer qualquer outro serviço. O sistema, no entanto, continua tentando apagar o índice corrompido, em background. Assim que possível, ele o apagará. Há um alerta visual. Um tipo de "ícone" que informa quando há uma falha pendente. Assim que ele conseguir apagar o índice problemático, o usuário saberá que pode voltar àquela função. E ao voltar, o índice será criado automaticamente, em função de sua inexistência.

Voltando ao assunto do TÓPICO:
Apenas para ajudar a resolver o problema do colega, seria interessante que ele descrevesse seus objetivo. Assim, talvez ficasse mais fácil compor uma solução precisa, ao invés de ficarmos "divagando" sobre possibilidades.

Em tempo: lá em cima, quando me referi a uma função genérica, eu quis dizer funções, no plural. Mas é coisa simples. Se o programador utiliza os comandos padrão, deve ficar praticamente transparente, com poucas alterações nos fontes.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Leia e escrobir uma seqüência de texto no executável.

Mensagem por rochinha »

Amiguinhos,

A questão levantada aqui também foi colocada no seguinte tópico, Guardar y leer información dentro del mismo ejecutable

Portanto a solução apresentada ainda é a mesma e não existem diferenças.

A solução que coloquei lá direcionada para um tópico em contribuições que possui o código original e completo para o trabalho solicitado.

O código apresentado é de um módulo de registro de aplicativo com tela onde apresenta o serial do HD e exige que o usuário coloque uma contrasenha para liberar o botão de registro.

Após isto a rotina de proteção pesquisa uma string dentro do executável e re-escreve com outra.

Na versão ali presente eu não criptografei a string deixando o código o mais didático possivel.

Originalmente o código foi escrito para Clipper e a rotina funcionava com o sistema em execução, ou seja, era possivel re-escrever o executável ativo na memória.

Já no Harbour isto não era possivel, então elaborei a rotina para que estivesse dentro de um pequeno executável de registro que abria o sistema e fazia a proteção.

Proteção entre aspas, pois se trata de gravar informações personalizadas do cliente dentro do executável.

A rotina faz leitura de blocos de 512k do executável para encontrar uma sequencia, ao encontrá-la esta mesma é modificada e o arquivo é fechado.

Basta analisar o código e retirar o conteúdo que não será usada na programação e teremos as funções de leitura e escrita.

Comecei a usar esta solução com Clipper 5.2 e BLinker 7, sem compressão.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder