Página 1 de 1

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

Enviado: 13 Abr 2010 21:42
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

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

Enviado: 13 Abr 2010 21:48
por Pablo César
Utilize as funções de baixo nível

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

Enviado: 13 Abr 2010 21:58
por victorale07
Mas eu preciso de alguns exemplos por favor.

Obrigado

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

Enviado: 13 Abr 2010 22:10
por Pablo César
Utilize a opção de "Busca", tem farto material, como por exemplo:

viewtopic.php?f=1&t=7471&hilit=FREAD

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

Enviado: 16 Abr 2010 16:44
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.

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

Enviado: 16 Abr 2010 16:54
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.

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

Enviado: 16 Abr 2010 16:58
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.

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

Enviado: 16 Abr 2010 17:27
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.

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

Enviado: 16 Abr 2010 21:27
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.