elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: 1 ... 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 123 124 125
1111  Programación / Programación General / Re: "Source code" en: 19 Julio 2013, 19:11 pm
Tienes que compilarlos... y esa es una tarea que no tiene una forma única y exacta de hacerse, depende de si tiene dependencias, si viene con un makefile o no, si viene preparado para compilar en Windows o en Linux o ambos...

Debido a que no sabes esto quizás debieras empezar por aprender a programar en c o c++ y luego lanzarte a la aventura con programas más avanzados
1112  Programación / PHP / Re: decodificar imagenes en: 19 Julio 2013, 11:10 am
Código
  1.  
  2. background: url(index.php?img=gifLogo) 0 0 no-repeat;
  3.  

Esa línea está cargando una imagen a través de una página php.

Lo que tienes que hacer es que la página php a la que se llama sea capaz de volcar el contenido html correspondiente a una imagen.

Para eso tienes que preparar la página php para que no vuelque nada más que lo siguiente:
* en primer lugar, los header correspondientes. Solo hay uno obligatorio y es el que indica el tipo mime de la imagen.
* en segundo lugar el código de la imagen. Para facilitar esta tarea, php dispone de funciones que te facilitan esta parte del trabajo.

Código
  1. <?php
  2. header( 'Content-Type: image/png' );
  3.  
  4. $img = imagecreatefrompng( 'ruta_imagen' );
  5. imagepng( $img );
  6. imagedestroy( $img );
  7.  
1113  Programación / Programación General / Re: "Source code" en: 19 Julio 2013, 09:38 am
si ya tienes el código fuente... cual es el problema ??

* No sabes cómo funciona ??
No creo que nadie vaya a empollarse el código por ti para explicarte su funcionamiento paso a paso.

* No sabes qué hacer con el ??
Pues no se, primero intenta entender el código y después si quieres pruébalo en un entorno seguro.

* No sabes cómo añadirle funcionalidad ??
Para eso primero deberías conocer cómo funciona el troyano y el entorno en el que se mueve... si es de IRC, por ejemplo, deberías mirarte la documentación sobre el protocolo IRC, posibles vulnerabilidades, etc.

* No sabes qué funcionalidad añadirle ??
Todo es cuestión de dedicarle tiempo... o lo mismo es que el programa está bien tal cual está. Hay un dicho que dice "se sabe que se ha alcanzado la perfección en algo no cuando no hay más que añadir, sino cuando no queda nada que quitar". Dicho en cristiano... las cosas, cuanto más simples, mejor.

* otras cuestiones ??
Adelante, no te cortes y expón tus inquietudes.
1114  Programación / Programación C/C++ / Re: scanf y gets en: 19 Julio 2013, 08:40 am
entonces si por ejemplo quiero ingresarle no se... 5 nombres cualquieras:

char *a[5]
 
*(a+0)="Maria";
*(a+1)="Jose";
etc...

pero no quiero estar contando el numero de letras cada vez que tenga que asignar memoria para cada nombre, como se le asignaria la memoria??

perdona que pregunte tanto pero es que los punteros no se me dan

Los arrays de caracteres no se pueden copiar "a pelo" con el operador igual... tienes que utilizar funciones de copia ( strcpy, memcpy, etc ).

Para el caso que planteas necesitarías tener por un lado el array de cadenas de caracteres y por otro una variable que te indique cuántas posiciones están ocupadas. Esto mismo lo puedes agrupar en una estructura para que su uso sea más cómodo:

Código
  1. struct cadenas
  2. {
  3.  // De las dos opciones siguientes elige una:
  4.  
  5.  // * Si quieres gestionar la memoria dinámicamente con malloc y free
  6.  char **a;
  7.  
  8.  // * Si quieres que de la gestión de la memoria se encargue el sistema
  9.  char a[5][20];
  10.  
  11.  int index;
  12. };

De esta forma, si inicializas index a 0 y lo vas incrementando después de añadir un nombre al vector, gestionar las cadenas se vuelve una tarea bastante sencilla:

Código
  1. struct cadenas cadena;
  2.  
  3. // ...
  4.  
  5. // Nuevo elemento
  6. strcpy( cadena.a[ cadena.index ], "nombre" );
  7. cadena.index++;
  8.  
  9. // Preguntar por el numero de elementos
  10. int numero_elementos = cadena.index;
  11.  
  12. // Recorrer todos los elementos
  13. int i;
  14. for ( i=0; i<cadena.index; ++i )
  15. {
  16.  // ...
  17. }
1115  Programación / Programación C/C++ / Re: Duda direcciones de memoria C en: 18 Julio 2013, 17:11 pm
A ver, al compilar este programa con gcc 4.7.2:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int* a, b;
  6. int c;
  7.  
  8. b =  &c;
  9.  
  10. printf("0x%x\n", b);
  11.  
  12. return 0;
  13. }

me salta este aviso:


De lo que se deduce que b es un entero, y no un puntero.

Saludos.

Vale, entonces te pasa lo mismo que a mi compilando con msvc
1116  Programación / Programación C/C++ / Re: Movimientos de Ajedrez bugueados en: 18 Julio 2013, 17:08 pm
Has pensado quizás en dar el salto completo y hacerlo con clases??

si, se que estás aprendiendo y que no lo entiendes aún, pero la mejor forma de entender una pieza fundamental de c++ es usándola.

Este es un ejercicio estupendo para practicar un montón de características de c++: clases, polimorfismo, herencia.

En caso negativo, crea funciones más sencillas... aunque salgan más. Te ayudarán a encontrar más facilmente errores como este:

Código
  1. if ((tablero[xinic][yinic]=="t1")||(tablero[xinic][yinic]=="t2"))
  2. {
  3. saltoPieza=false;
  4. if ((xinic==xfin)||(yinic==yfin))
  5. if (xinic==xfin)
  6. {
  7. if (yfin>yinic)
  8. {
  9. for (int i=yinic;i<=yfin-1;i++)
  10. {
  11. if ((tablero[xinic][i]!=tablero[xinic][yinic])&&(tablero[xinic][i]!="  "))
  12. {
  13. saltoPieza=true;
  14. }
  15. }
  16. }
  17. if (yfin<yinic)
  18. {
  19. for (int i=yinic;i>=yfin+1;i--)
  20. {
  21. if ((tablero[xinic][i]!=tablero[xinic][yinic])&&(tablero[xinic][i]!="  "))
  22. {
  23. saltoPieza=true;
  24. }
  25. }
  26. }
  27. }
  28. if (yinic==yfin)
  29. {
  30. if (xfin>xinic)
  31. {
  32. for (int i=xinic;i<=xfin-1;i++)
  33. {
  34. if ((tablero[i][yinic]!=tablero[xinic][yinic])&&(tablero[i][yinic]!="  "))
  35. {
  36. saltoPieza=true;
  37. }
  38. }
  39. }
  40. if (xfin<xinic)
  41. {
  42. for (int i=xinic;i>=xfin+1;i--)
  43. {
  44. if ((tablero[i][yinic]!=tablero[xinic][yinic])&&(tablero[i][yinic]!="  "))
  45. {
  46. saltoPieza=true;
  47. }
  48. }
  49. }
  50. }
  51. if (saltoPieza==false)
  52. {
  53. return true;
  54. }
  55. else
  56. {
  57. return false;
  58. }
  59. }
  60. else
  61. {
  62. return false;
  63. }

Ese último else es el que te está matando...

mira, lo simplifico para que se vea mejor:

Código
  1. if ((tablero[xinic][yinic]=="t1")||(tablero[xinic][yinic]=="t2"))
  2. {
  3.                 // ...
  4. }
  5. else
  6. {
  7. return false;
  8. }

Si no es torre te va a devolver false siempre.


1117  Programación / Programación C/C++ / Re: Duda direcciones de memoria C en: 18 Julio 2013, 16:53 pm
Si puedes evitar este tipo de líneas mejor. Por lo que he podido ver en este hilo depende del compilador a utilizar...

En un programa la claridad es un factor clave.

Mejor lo dejas así:

Código
  1. int *ptr1, *ptr2, *ptr3;

Que compila y te quitas de problemas.


1118  Programación / Programación C/C++ / Re: Movimientos de Ajedrez bugueados en: 18 Julio 2013, 16:50 pm
Y concretamente... en qué consiste el error??
1119  Programación / Programación C/C++ / Re: Duda direcciones de memoria C en: 18 Julio 2013, 16:40 pm
Para programar en C hace falta un poco mas que conocer el lenguaje  ;)

Yo más bien diría que lo suyo es no optar por código tan peregrino y, visto lo visto, tan propenso a segundas interpretaciones.
1120  Programación / Programación C/C++ / Re: Duda direcciones de memoria C en: 18 Julio 2013, 16:28 pm
No me había dado cuenta de ese detalle... también es cierto que evito ese tipo de declaraciones.

bueno ojo OxDani

Código
  1. void main( )
  2. {
  3.  int* a, b;
  4.  
  5.  b = 1;
  6.  a = &b;
  7.  b = a;
  8. }

resultado:

error: C2440: '=' : cannot convert from 'int *' to 'int'
There is no context in which this conversion is possible
Páginas: 1 ... 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 123 124 125
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines