Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - goto C

#1
Hola, estoy haciendo unos sockets en C con la idea de luego añadirlos a un código de keylogger. Pero me ha surgido una duda, cuando pongo la IP del servidor al que se tiene que conectar el cliente, no sé si debo poner la IP pública o privada del servidor.

Muchas gracias.
#2
Foro Libre / Ayuda a Snowden
21 Enero 2014, 13:30 PM
http://www.avaaz.org/es/send_snowden_home_loc/?bEHnHab&v=34277

Os dejo un enlace para intentar conseguir que Snowden no vaya a la cárcel, ya que desveló todo el espionaje por parte de Estados Unidos...

Saludos! Podéis difundirlo...
#3
Hola, estoy desesperado... si alguien me puede explicar que pasa en este programa...
Os pongo una parte del código, que es lo que falla, y es que los caracteres que se guardan en el while no son los que se muestran en el for que hay después... y no sé por qué!!!! Que desesperación!!!! Ya no sé qué hacer jajaja.

#include<stdio.h>
#include<stdlib.h>

int main()
{
   char *texto; //texto a cifrar
   char nombre[20]; //nombre que le vamos a dar al fichero de texto
   FILE *pf; //puntero de tipo FILE, necesario para manejar ficheros
   int i=0, numerocaracteres=0;

   printf("Introduce el nombre del archivo\n");
   printf("segun la forma nombre.tipo)\n");

   scanf("%s", &nombre);
   getchar();

   pf=fopen(nombre,"r");

   //comprobamos que no haya errores al abrir el fichero
   if(pf==NULL)
   {
      printf("Error al abrir el fichero. Pulsa Enter para salir\n");
      getchar();
      exit(1);
   }

   texto=(char *)malloc(1*sizeof(char));
   while(!feof(pf) && !ferror(pf))
   {
      texto[numerocaracteres]=fgetc(pf);
      printf("texto[numerocaracteres] es %c\n", texto[numerocaracteres]);
      getchar();
      numerocaracteres++;

      texto=(char *)realloc(texto,numerocaracteres*sizeof(char));
   }

   for(i=0;i<numerocaracteres;i++)
      printf("texto[i] es %c\n", texto[i]);
   getchar();

   fclose(pf);

//..........................


Muchas gracias y saludillos.
#4
Programación C/C++ / ¿Qué hago mal?
23 Agosto 2013, 11:43 AM
Hola, creo que tengo un poco de error de concepto, pero he buscado por Google ya y no me he conseguido aclarar. Os agradecería que me dijerais que hay mal en este código, ya que no cifra correctamente.

#include<stdio.h>
#include<stdlib.h>

char cifrar(char *,int);

int main()
{
char texto[200]; //texto a cifrar
char nombre[20]; //nombre que le vamos a dar al fichero de texto en el que se va a guardar el texto cifrado
FILE *pf; //puntero de tipo FILE, necesario para manejar ficheros
int i=0;
char textoencriptado[200]; //textoencriptado es el array en el que vamos a guardar el texto cifrado

printf("            ENCRIPTADOR DE TEXTOS!!!\n\n");
printf("Introduce todo el texto a cifrar y despues Enter\n");
gets(texto);

printf("Introduce el nombre del fichero que contendra\n");
printf("el texto cifrado (se debe dar segun la forma nombre.txt)\n");
scanf("%s", &nombre);
getchar();

pf=fopen(nombre,"w");

//comprobamos que no haya errores al abrir el fichero:
if(pf==NULL)
{
printf("Error al abrir el fichero. Pulsa Enter para salir\n");
getchar();
exit(1);
}

while(texto[i]!='\0' && ferror(pf)==0) //respectivamente, mientras que no lleguemos al final del texto y no haya error
//ferror devuelve 0 cuando no hay error, por eso ponemos que tiene que ser 0
{
textoencriptado[i]=cifrar(texto,i);
printf("%c", textoencriptado[i]);
getchar();
//esto escribe caracter por caracter el texto en el fichero, se puede hacer directamente con la cadena de caracteres,
//pero como lo que queremos es cifrar, aplicamos una operacion matematica sobre cada caracter, es decir,
//convertimos el caracter a entero, aplicamos un algoritmo, y volvemos a pasar el textoencriptado resultante a caracter
fputc(textoencriptado[i],pf);
i++;
}

printf("El texto se ha cifrado correctamente!\n");

fclose(pf);

printf("Enter para salir del programa\n");
getchar();
return 0;
}

char cifrar(char *texto, int i)
{
char textoencriptado[200];

//aqui aplicamos la operacion matematica que queramos
//pero como el texto saldra cifrado, quien lo lea no podra saber en principio la operacion de encriptacion que se ha aplicado
if(texto[i]=='A') //asignamos unos valores aleatoriamente antes de ver, con los ultimos 6 else if, si el caracter a cifrar se encuentra en el rango especificado de valores,
//de esta manera, hacemos muy complicado encontrar una regla para descifrar el texto
textoencriptado[i]='.';
else if(texto[i]=='.')
textoencriptado[i]=' ';
else if(texto[i]==' ')
textoencriptado[i]='a';
else if(texto[i]=='b')
textoencriptado[i]='B';
else if(texto[i]=='e')
textoencriptado[i]='l';
else if(texto[i]=='+')
textoencriptado[i]='=';
else if(texto[i]=='?')
textoencriptado[i]='t';
else if(texto[i]=='3')
textoencriptado[i]='b';
else if(texto[i]=='9')
textoencriptado[i]='0';
else if(texto[i]=='e')
textoencriptado[i]='k';
else if(texto[i]=='n')
textoencriptado[i]='H';
else if(texto[i]=='i')
textoencriptado[i]='p';
else if(texto[i]=='Q')
textoencriptado[i]='s';
else if(texto[i]=='R')
textoencriptado[i]='x';
else if(texto[i]=='r')
textoencriptado[i]='E';
else if(texto[i]=='u')
textoencriptado[i]='0';
else if(texto[i]=='p')
textoencriptado[i]='d';
else if(texto[i]=='@')
textoencriptado[i]='Q';
else if(texto[i]=='d')
textoencriptado[i]='D';
else if(texto[i]==')')
textoencriptado[i]='I';
else if(texto[i]>='{')
textoencriptado[i]='(';
else if(texto[i]>='0' && texto[i]<=';')
textoencriptado[i]=texto[i]+'STX';
else if(texto[i]>='<' && texto[i]<='M')
textoencriptado[i]=texto[i]+'VT';
else if(texto[i]>'M' && texto[i]<='Z')
textoencriptado[i]=texto[i]+'SOH';
else if(texto[i]>=']' && texto[i]<='i')
textoencriptado[i]=texto[i]-'DC4';
else if(texto[i]<='j' && texto[i]<='u')
textoencriptado[i]=texto[i]-'ETX';

return textoencriptado[i];
}


PD: no pretendo debatir si la manera de cifrar es más o menos segura, únicamente busco saber por qué no funciona.

GRACIAS. SALUDILLOS.
#5
Hola, necesitaría saber cómo puedo obtener, a partir de mi código escrito, el archivo ejecutable, no digo para depurar, sino la aplicación ya lista para ejecutarse (.exe en Windows). Además, una de las cosas que hace el programa es generar un archivo de texto, pero no sé dónde se guardará ese archivo cuando se ejecute el programa, ¿alguno lo sabe?

Muchas gracias, saludillos.
#6
Programación C/C++ / ¿Algoritmo existente?
28 Julio 2013, 13:54 PM
Hola, este es mi primer mensajito jeje, me he visto obligado a pedir ayuda, al principio me veía capaz, pero después de probar mil códigos diferentes y ver que siempre todos fallan en algún punto acudo para pedir que me echéis una mano, plissss.

El caso, tengo un array (correctamente inicalizado y comprobado que contiene bien los caracteres y todo ok), así, suponiendo que contiene los caracteres; a b c d, el programa debe hacer las siguientes combinaciones:

ab
ac
ad
bc
bd
cd
abc
abd
bcd
abcd

Nota: si se conoce el número de caracteres es relativamente sencillo, pero se trata de hacer combinaciones del modo que explico sin saber el número de caracteres, es decir, el usuario introduce por teclado el número, y a continuación los caracteres, pero el código del programa debe estar preparado para funcionar sea cual sea el número, si no me explico me lo decís jeje.

No importa el orden, únicamente importa que estén todas las combinaciones. Me extraña que no haya ningún algoritmo ya desarrollado que haga esto, ¿no tiene ningún nombre realizar combinaciones de esta manera?, pregunto par poder googlear jeje.
Bueno, si a alguien se le ocurre cómo hacerlo, aunque sea la idea, no es necesario que me de el código, se lo agradezco mucho. El programa es en C, aunque si alguno sabe hacerlo en otro lenguaje que lo haga en ese y ya lo "traduciremos" jeje.

Muchísimas gracias. Saludos.