Simples Encriptador [fonte]

Started by Anonymous, 06 de March , 2007, 05:51:15 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Anonymous

Bom não é bem um projeto mas achei melhor postar aqui...

Antes eu quero dizer uma coisa,não sei o q há na cabeça desse povo que nao libera o código fonte desses programas fajutos, como trojans,backdoors, entre outros, isso nao leva vcs a nada!Liberem para o povo estudar!
Vendo isso eu decidi postar aqui o fonte de um simples encriptador, q era pra ser usado num worm aí :) , agora q vo postar aqui vo ter q mudar é claro, mas enfim, é um sistema simples um pouco melhor do q basear-se na substituição de letras, fiz isso só pra q o conteúdo nao aparece-se nos editores hexa e afins, é só pro pessoal ter uma base de uma simples criptografia.

/* Algoritmo simples de criptografia for Sonics Worm Win32
 * Private!
 * www.dimensionx.orgfree.com
 */
 
#include <stdio.h>

void memclean(char *mem,int tam);
void cripto(unsigned char *name);
void decrip(unsigned char *name);

unsigned char word[] = {
65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,
80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,
101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,
116,117,118,119,120,121,122,65,66,67,68,69,70,71,72,73,74,
75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,
101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,
116,117,118,119,120,121,122
};


void cripto(unsigned char *name){
unsigned int tam;
unsigned int con,con2;
char info[50];
tam = strlen(name);
memclean(info,sizeof(info));
for(con = 0;con < tam;con++){

for(con2 = 0;con2 < 52;con2++){

if(name[con] < 65 || name[con] > 122 || (name[con] > 90 && name[con] < 97)){
info[con] = 1;
break;
}

if(name[con] == word[con2]){
name[con] = con2;
break;
}
}
}
for(con = 0;con < tam;con++){
if(info[con]){
continue;
}else{
/*if((name[con] + tam) > 51){
name[con] = 0;
}*/
name[con] = word[name[con] + tam];
}
}

fprintf(stdout,"%s\n",name);
}

void decrip(unsigned char *name){
unsigned int tam,recon;
unsigned int con,con2;
char info[50];
memclean(info,sizeof(info));
/* name = ~name;*/
tam = strlen(name);
for(con = 0;con < tam;con++){

for(con2 = 0;con2 < 52;con2++){

if(name[con] < 65 || name[con] > 122 || (name[con] > 90 && name[con] < 97)){
info[con] = 1;
break;
}

if(name[con] == word[con2]){
name[con] = con2;
break;
}
}
}
for(con = 0;con < tam;con++){
if(info[con]){
continue;
}else{
if((int)(name[con] - tam) < 0){
recon = (name[con] - tam);
name[con] = word[51 + recon + 1];
}else{/*if((name[con] + tam) < 27 && (name[con] - tam) > 0){
name[con] = 0;
name[con] = word[name[con] - tam];
}else*/
/*if((name[con] - tam) < 0){
name[con] = 51;
}*/
name[con] = word[name[con] - tam];
}

}
}
fprintf(stdout,"%s\n",name);
}

int main(int argc,char *argv[]){
if(argc < 2){
fprintf(stdout,"Algoritmo de criptografia for Sonics Worm\n\tcripto [string] \
\n\t-d for decrip\n\n");
exit(0);
}
if(argv[1][0] == '-' && argv[1][1] == 'd') decrip(argv[2]);
else cripto(argv[1]);

exit(0);
}

void memclean(char *mem,int tam){
while(tam){
*mem++ = 0;
tam--;
}
}


Exemplos:

sonic@wonderland:~/V&W/sw/criptos$ cripto Darkers
Khyrlyz

sonic@wonderland:~/V&W/sw/criptos$ cripto -d Khyrlyz
Darkers

O algoritmo além de se basear no array de letras a substituir ele leva em conta tbm
o tamanho da string, logo "aaaa" criptografado é diferente de "aaaaaa".

Bom é isso gent, flw