Só me metendo no assunto, você teriam uma função ou DLL, que gerasse esse tal CRC do arquivo?
[]s Em 28/07/06, ricardodeveloper <[EMAIL PROTECTED]> escreveu: > > la por 1997 fiz um programa pra uma prestadora de servicos > ela entregava um .txt pra contratante contendo em cada linha, um > serviço a ser cobrado > > mais tarde a prestadora de serviços me chamou pois achava que algumas > linhas estavam "se perdendo" quando chegavam a contratante > > entao fiz um programinha simples que imprimia um certificado de um > arquivo qualquer com crc o formato era algo hxadecimal como ffff-f > > quando os dados de cobranca eram exportados para o .txt o sistema > tanto imprimia este relatorio quanto o exibia na tela. quando o > motoboy chegava com o disquete na contratante ele executava o > programa do proprio disquete para quem estivesse recebendo visse na > tela o crc e assinasse o certificado > > a contratante nao entendeu aquele tramite e o seguiu sem reclamar > > na mesma semana alguns pagamentos haviam se perdido > iniciou a mesma discução do tipo > "voces deletaram linhas!" > "nao, o arquivo veio imcompleto!" > > entao executaram o crc e comprovou-se que nao batia com o relatorio > que a contratante havia assinado, e, que alguem havia mudado algumas > linhas. > > apos o cara q nao queria pagar ficar com a cara no chao, nunca mais > nenhuma linha dos .txt se perdeu... > > --------------------- > > quando, em 1994 eu nao tinha nada mais util pra fazer entao cai > dentro de ling.c > criei uma ide com checkbox, radiobutton, menu, janela, mouse... tudo > em DOS > > a ideia era parar de usar windows > desisti quando o w95 chegou com resolucao 800x600 e eu so sabia fazer > 640x480. poh, todos fabricantes de video fazem rotinas pra microsoft > de graça e eu teria q fazer a mao um driver pra cada modelo de placa > q meus clientes comprassem! > > bom, naquela biblioteca tb criei acesso a arquivos em rede, com locks > de registros e de arquivo, arquivos de indice, etc > > e no algoritimo de criacao de tabela colocava alguns bytes antes de > cada registro da tabela para os dados de acesso, cod de usuario... > > com algumas quedas de luz alguns dados se perderam. entao coloquei > crc no inicio de cada registro. eu testava se batia antes de devolver > pra aplicacao os dados do registro. se nao batesse, retornava um erro > > ------------------- > > tenho boa ideia de como fazer o crc em ling.c, mas nao tenho muita > ideia da sintaxe do pascal para ler um arq binario byte a byte. > sei q tem a fileread filewrite mas queria saber se posso usar as > funcoes nativas do pascal (AssignFile, write...) pra acesso byte a > byte. > > alguem sabe? > > ---------------------- > > se eh pra criar algo em conjunto, humildemente espero poder ser util > to dentro! > > > > > --- Em delphi-br@yahoogrupos.com.br, "Hayalon" <[EMAIL PROTECTED]> escreveu > > > > > Boa Walter, falou bem... > > Já tinha lido algo sobre CRC, e você colocou o tema muito bem... > > Acho que essa é uma boa oportunidade para criarmos algo muito bom > aqui... > > > > > > > > > > > > > > _____ > > > > De: delphi-br@yahoogrupos.com.br [mailto:delphi- > [EMAIL PROTECTED] Em > > nome de Walter Alves Chagas Junior > > Enviada em: sexta-feira, 28 de julho de 2006 19:12 > > Para: 'delphi-br@yahoogrupos.com.br' > > Assunto: RES: [delphi-br] CRC de arquivos. > > > > > > > > Elazar, > > > > Semana retrazada eu tentei ascender este assunto lá na lista- > delphi, a > > respeito do CRC. Postei até o link do Delphi About que tratava do > assunto: > > > > http://delphi.about.com/od/fullcodeprojects/ss/crc_filecheck.htm > > > > A ideia minha era abrir uma thread a respeito do assunto, mas > poucos lá > > interessaram. O resto ou fez algum breve comentário ou não entendeu > bem o > > que era. Uns achavam se tratar de mais algum método anticópia de um > programa > > e outros associaram o assunto com crack. Quando na verdade não é > nada disso. > > > > Este interessante recurso visa assegurar mais ainda seu executável > contra a > > mão maldita do usuário fução: O número serial CRC (Cyclic > Redundance Code). > > Primeiramente isto daí não tem absolutamente nada haver com chave de > > ativação de programa ou de senha pois este número serial não está > em lugar > > nenhum no programa, LUGAR nenhum. Nenhum. Portanto não tem um lugar > aonde > > ele fica. Ele não fica. Ele é calculado com base em infomações do > executável > > como data, hora, tamanho e agrupamento de bytes internos. O CRC > consiste em > > um código gerado com base na situação atual de seu executavel (data > e hora > > de compilação + tamanho). Caso alguém abra seu exe em um editor de > programas > > ou mesmo no Debug do DOS e mexa em alguma coisa dentro dele e salve- > o, a > > chave serial de CRC já é outra. Aliando isto ao fato também deste > número > > serial não está em lugar nenhum no programa, isto anularia a ideia > de girico > > dos espertozoides tentarem copiar o CRC antes de mexer no > executável, mexer > > nele, e depois salvar o CRC antigo nele novamente achando que, com > isto, não > > deixariam rastro algum. Então você pode, além de criar seus métodos > > anticópia, colocar um validador de CRC em seu programa de forma que > se > > alguém entrar nele pra mudar nome de autor ou de empresa filiada, > ou mesmo > > tentar quebrar a regra anticópia, o executável irá ter outro CRC e > você pode > > impedir a execução dele mediante validação desta "chave serial" > interna. > > > > PS: Não confundam CRC com registro de licença de programa. Registro > de > > programa é um metodo que você usa para que seu programa libere > > funcionalidades internas mediante a entrada de um código que seu > cliente irá > > lhe pedir. VOCÊ PROGRAMA ISTO e isto irá depender do seu algorítmo > de > > validação. Agora CRC não. CRC é calculado com base em informações > internas > > do executável aonde se aplica uma regra para ele. Esta regra > (algorítmo) é > > universal. Um programa externo (ou uma função interna) irá validar o > > executavel. Se o CRC bater com a validação, então este executável > está em > > conformidade com a compilação original. > > > > O recurso do CRC é interessante para você checar se seu executável > foi > > infectado por um virus, se foi arrombado por um crack (ou então um > cracker) > > visando burlar validação de licença, visando burlar telas > de "Registre" ou > > visando trocar nomes de empresa e de autor em telas "About". Então. > Se o > > camarada abrir se exe com um PCTools da vida e, for lá trocar > alguma coisa > > no executável, ao salvar ele, o CRC ja passa a ter outro valor. E é > esta > > mudança de valor que você pode usar para assegurar a autenticidade > de seu > > programa. Se ele está intacto ou se foi "mexido" por alguem. > qualquer mexida > > no arquivo já altera o CRC dele. > > > > Fazer a validação do CRC de dentro do próprio executável, não é das > tarefas > > faceis porque você precisa montar um código de validação, sendo que > a > > informação que irá checar com o validador, você só obterá ela > depois de > > compilado o programa. Ora, então como é que vamos codificar um if > isto igual > > a aquilo, se o isto não temos antes de compilar o produto? MAS! > Nada impede > > de você colocar o validador em uma DLL ou uma BPL vinculada a ele. > Na carga > > desta biblioteca supra-citada, ela pode validar seu programa e, já > de lá, ou > > deixar ele continuar ou abortar a continuação do mesmo. No caso do > > abortamento da execução do programa, aí sim você poderia colocar um > > algorítmo para destruir o executável. Nos bons tempos do clipper, eu > > costumava fazer um arquivo de lote compilado com o Exe2Bat que > virava um > > executor do meu programa. O programinha verificava a data do > computador e > > checava com a data do executável. Ao expirar, o programa emitia um > aviso de > > que o mesmo foi expirado e ecoava null para o arquivo: > > > > Echo Null > <nome do programa>.exe > > > > ou então > > > > Type Null > <nome do programa>.exe > > > > O resultado disto é que o executável ficava com tamanho 0. > > > > É por aí que a coisa flui. Se quiserem abrir a Thread aqui, to > dentro :) > > > > > > > > []s > > > > Walter Alves Chagas Junior > > Projeto e desenvolvimento de sistemas > > Telemont Engenharia de telecomunicações S/A > > Belo Horizonte - MG - Brasil > > [EMAIL PROTECTED] > > > Fone: (31) 3389-8215 Fax: (31) 3389-8200 > > > > Parabens Telemont - Somos a 8ª maior empresa do Brasil no segmento > de > > construção!! > > > > > > -----Mensagem original----- > > De: delphi-br@yahoogrupos.com.br [mailto:delphi- > [EMAIL PROTECTED] > > nome de .:: Elazar Dornelles Ceza ::. > > Enviada em: sexta-feira, 28 de julho de 2006 09:16 > > Para: delphi-br@yahoogrupos.com.br > > Assunto: [delphi-br] CRC de arquivos. > > > > > > Bom dia pessoal; > > > > Estava olhando algo sobre o CRC de arquivos e ocorreu o seguinte > > > > Me ocorreu o seguinte, estava 'brincando' o windows explorer e o > > winrar...(compactador) e pude perceber o que: ao trocar a data do > micro > > para alguns dias atraz, compactar, o winrar me mostrou um CRC XXXXXX > > entao acessei as propriedades do arquivo e verifiquei que o mesmo > tinha > > a data de 'acessado' em para o dia que havia trocado a data....blz, > > voltei novamente o micro para a data atual, acessei o arquivo sem > > modificar nada...fechei compactei e o CRC ainda continua XXXXX. > Voltei > > ao windows explorer e verifique a data de acesso do arquivo e como > era > > de se esperar estava datada para o dia de hoje. > > > > Entao eu pergunto. > > Onde o windows guarda as informacoes de ultimo acesso do arquivo, > > data de criacao...modificado...??? > > Se for no proprio arquivo (como eu imagino que sim)....porque > o CRC > > do arquivo não Muda??? > > Como eu faco em delphi para mudar alguma coisa em um arquivo > > qualquer...que não modifique o CRC??? > > > > Alguem já trabalhou com algum esquema semelhante??? > > > > > > Atenc. > > Elazar > > > > > > > > > > _______________________________________________________ > > Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu > celular. > > Registre seu aparelho agora! > > http://br.mobile.yahoo.com/mailalertas/ > > > > > > > > > > > > -- > > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > > > > > Links do Yahoo! Grupos > > > > > > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > -- _________________________________ Fellipe Henrique [EMAIL PROTECTED] Borland Developer Studio 2006 Certified "Venham até a borda, ele disse. Eles disseram: Nós temos medo. Venham até a borda, ele insistiu. Eles foram, Ele os empurrou... E eles voaram." (Guillaume Apollinaire) [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html