Não permitir visualização de código no binário
16/03/2005
0
Olá pessoal,
Fiz uma rotina em C para dar o comando do backup do meu banco de dados Oracle. Está funcionando bem, só tem um problema. Se você abrir o executável em um editor de texto, ele mostra parte do código... principalmente a parte composta de strings. E o problema é que uma das partes que ele mostra é minha senha de conexão ao banco!
Esse programa vai ficar no servidor de banco de dados de vários locais, e não podemos correr o risco de que outros vejam nossa senha.
Alguém sabe como eu faria pra compilar o binário de uma forma que criptografasse tudo? Estou usando o gcc no Linux para compilar, mas qualquer forma de criptografar esse binário será bem vinda.
Agradeço
Fiz uma rotina em C para dar o comando do backup do meu banco de dados Oracle. Está funcionando bem, só tem um problema. Se você abrir o executável em um editor de texto, ele mostra parte do código... principalmente a parte composta de strings. E o problema é que uma das partes que ele mostra é minha senha de conexão ao banco!
Esse programa vai ficar no servidor de banco de dados de vários locais, e não podemos correr o risco de que outros vejam nossa senha.
Alguém sabe como eu faria pra compilar o binário de uma forma que criptografasse tudo? Estou usando o gcc no Linux para compilar, mas qualquer forma de criptografar esse binário será bem vinda.
Agradeço
Moonlight
Curtir tópico
+ 0
Responder
Posts
16/03/2005
Massuda
Uma solução bem simples seria você criptografar ´na mão´ a senha e incluí-la no programa, que teria apenas a rotina para descriptografar.
A solução preguiçosa seria usar o [url=http://upx.sourceforge.net/]UPX[/url] para compactar seu programa, assim pelo menos para o usuário típico sua senha estará escondida.
A solução preguiçosa seria usar o [url=http://upx.sourceforge.net/]UPX[/url] para compactar seu programa, assim pelo menos para o usuário típico sua senha estará escondida.
Responder
17/03/2005
Moonlight
Usei a solução da criptografia. Alias, prefiro chamar de mascaramento de string. Ficou bem legal. Posto abaixo pro caso de ser útil pra alguem um dia:
No caso, é preciso alimentar as strings linha0, linha1, linha2 com strings que contenham os caracteres da senha e outros caracteres tambem, pra criptografar. Os caracteres da string devem ser os mesmos, mas colocados em ordem diferente, e aparecer só uma vez cada.
#include<stdio.h> include<stdlib.h> char linha0[30],linha1[30], linha2[30]; char senhacriptografada[30]; char senhadescriptografada[30]; void descriptografa(char pwdc[20]) { int i, j, k; int posicao, posicao1; char caracter, caracter1; for(i=0;pwdc[i]!=´\0´;i++) { caracter = pwdc[i]; for(k=0;linha1[k]!=´\0´;k++) { if (linha1[k] == caracter) { posicao = k; break; } } caracter1 = linha2[posicao]; for(j=0;linha1[j]!=´\0´;j++) { if (linha1[j] == caracter1) { posicao1 = j; break; } } senhadescriptografada[i] = linha0[posicao1]; } } void criptografa(char pwd[20]) { int i, j, k; int posicao, posicao1; char caracter, caracter1; for(i=0;pwd[i]!=´\0´;i++) { caracter = pwd[i]; for(k=0;linha0[k]!=´\0´;k++) { if (linha0[k] == caracter) { posicao = k; break; } } caracter1 = linha1[posicao]; for(j=0;linha2[j]!=´\0´;j++) { if (linha2[j] == caracter1) { posicao1 = j; break; } } senhacriptografada[i] = linha1[posicao1]; } }
No caso, é preciso alimentar as strings linha0, linha1, linha2 com strings que contenham os caracteres da senha e outros caracteres tambem, pra criptografar. Os caracteres da string devem ser os mesmos, mas colocados em ordem diferente, e aparecer só uma vez cada.
Responder
Clique aqui para fazer login e interagir na Comunidade :)