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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 ... 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 [47] 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 ... 235
461  Programación / Programación C/C++ / Re: duda con otro función en c en: 29 Noviembre 2018, 04:34 am
Por si tienes dudas

te explico para que no exista confusión.


Código:
void imprimir_ite(char *pcad)

Se declara que la variable que recibe imprimir_ite es Apuntador char *pcad
Código:
    if(*pcad!='\0')
 

*pcad nos indica o devuelve el VALOR apuntado por pcad en ese momento para realizar la comparacion
Código:
        printf("%c",*pcad);
Lo mismo que lo anterior, nos devuelve el valor apuntado por pcad, esto podria ser equivalente a

Código:
 printf("%c",pcad[0]);

Código:
    if(pcad[0]!='\0');


Código:
        pcad++;
Incrementamos el valor de apuntador en 1


Código:
        imprimir_ite(pcad);

Pasamos como argumento el apuntador pcad, sin * por que con * es el valor apuntado en ese momento. y sin * es el apuntador como tal,

Saludos
462  Programación / Programación C/C++ / Re: duda con otro función en c en: 29 Noviembre 2018, 03:24 am
Hola antes que nada en el panel cuando redactas un mensaje hay un box que dice Código GeSHi, si lo despliegas aparece una lista de lenguajes buscas C y pegas tu código adentro.

El problema es siguiente:

TU CODIGO

Código
  1. void imprimir_ite(char *pcad)
  2. {
  3.    if(*pcad!='\0')
  4.    {
  5.        printf("%c",*pcad);
  6.        pcad++;
  7.        imprimir_ite(*pcad);
  8.  
  9.    }
  10.    return;
  11. }
  12.  

En TEORIA Corregido:

Código
  1. void imprimir_ite(char *pcad)
  2. {
  3.    if(*pcad!='\0')
  4.    {
  5.        printf("%c",*pcad);
  6.        pcad++;
  7.        imprimir_ite(pcad);
  8.  
  9.    }
  10.    return;
  11. }
  12.  

No se, ni verifique tu codigo "ITERATIVO", pero como pcad ya es un apuntador, no necesitas colocarle el * antes de cada uso, eso se puede prestar para otras operaciones pero en este caso no.

Saludos
463  Programación / Programación C/C++ / Re: Resolver C++ en: 29 Noviembre 2018, 01:05 am
La verdad que es medio raro eso, se la respuesta pero no se como es que el signo ?

Es el Operador Ternario, es basicamente un mini if

Código
  1. char C = 'A';
  2. printf("%s\n",(C == 'A')? "Verdadero": "Falso");
  3.  

Se utiliza para realizar ciertas evaluaciones rapidamente.

De manera que te devuelve el primer valor el que esta antes del ":" si la evaluacion fue verdadera, encaso contrareo te devuelve lo que esta despues del ":"

Otro ejemplo seria:

Código
  1. char C = 'A',otro;
  2. otro = (C == 'A') ? 'q' : 'r' ;
  3.  


Saludos
464  Programación / Programación C/C++ / Re: Problema de memoria en miniservidor usando Winsock en: 29 Noviembre 2018, 00:42 am
Excelente con eso ya funciona muy bien  ;-)

Esos de Microsoft ni siquiera dejan utilizar el Descriptor proporcionado por accept como un File Descriptor normal para usarlo con fdopen y/o read y write. En fin es windows  :rolleyes:

Salduos!
465  Programación / Programación C/C++ / Problema de memoria en miniservidor usando Winsock (Solucionado) en: 28 Noviembre 2018, 23:13 pm
Estoy haciendo pruebas con un miniservidor, que actualmente solo lee la entrada y la muestra en pantalla.



El detalle esta en que La memoria utilizada no deja de incrementar, empieza el programa usando sobre 400 KB y mientras mas preciono F5 en el navegardor WEB, (El miniservidor es WEB), enviando Multiples GET al servidor la memoria del programa incrementa y nunca decrementa, siendo que en cada ocasion he liberado el apuntador utilizado para leer la linea, y he cerrado el socket del cliente:

Codigo:

Código
  1. #include<winsock2.h>
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include <unistd.h>
  5.  
  6. #define BACKLOG 256
  7.  
  8. WSADATA *wsaData;
  9. struct sockaddr_in *server_sa;
  10.  
  11. char *readLine(SOCKET descriptor,int *len);
  12.  
  13. int main() {
  14. SOCKET s,c;
  15. int b = 0,iResult;
  16. int read_len;
  17. char *linea;
  18. char caracter;
  19. wsaData = calloc(1,sizeof(WSADATA));
  20. iResult = WSAStartup(MAKEWORD(2,2), wsaData);
  21. if (iResult != 0) {
  22. printf("WSAStartup failed: %d\n", iResult);
  23. return 1;
  24. }
  25. if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
  26. perror("socket");
  27. return 2;
  28. }
  29. server_sa = calloc(1,sizeof(struct sockaddr_in));
  30. server_sa->sin_family = AF_INET;
  31. server_sa->sin_port   = htons(80);
  32. server_sa->sin_addr.s_addr = htonl(INADDR_ANY);
  33.  
  34. if (bind(s,(struct sockaddr *) server_sa, sizeof(struct sockaddr)) < 0) {
  35. perror("bind");
  36. return 3;
  37. }
  38. b = sizeof(struct sockaddr);
  39. listen(s, BACKLOG);
  40. while(1) {
  41. if((c = accept(s,(struct sockaddr *)server_sa, &b)) < 0) {
  42. printf("WS error code: %i\n",WSAGetLastError());
  43. perror("accept");
  44. return 4;
  45. }
  46. do{
  47. linea = readLine(c,&read_len);
  48. printf("%s\n",linea);
  49. free(linea);
  50. }while(read_len != 0);
  51. close(c);
  52. }
  53. }
  54.  
  55. char *readLine(SOCKET descriptor,int *len) {
  56. char *buffer = NULL;
  57. int i = 0,entrar = 1,len_read;
  58. do {
  59. buffer = realloc(buffer,(i+1));
  60. len_read = recv(descriptor,buffer + i,1,0);
  61. if(len_read == 1){
  62. switch(buffer[i]) {
  63. case 0xD:
  64. buffer[i] = '\0';
  65. break;
  66. case 0xA:
  67. buffer[i] = '\0';
  68. entrar = 0;
  69. break;
  70. default:
  71. i++;
  72. break;
  73. }
  74. }
  75. else {
  76. buffer[i] = '\0';
  77. entrar = 0;
  78. }
  79. }while(entrar);
  80. if(len  != NULL){
  81. len[0] = i;
  82. }
  83. return buffer;
  84. }
  85.  

El problema es que se espera que el servidor se lo mas liguero ligero posible y atienda millones de peticiones por segundo. Y no creo que el F5 del navegador supere mas de 100 peticiones por segundo.

Saludos
466  Seguridad Informática / Seguridad / Re: Extorsión por correo electrónico con hackeo. en: 28 Noviembre 2018, 17:55 pm
Hola, no se puede saber quien es por la cartera, a no ser que la publique con su nombre en algun lugar de internet, ese mensaje se paerece a uno que publique hace unos dias.

https://foro.elhacker.net/seguridad/investigando_un_intento_de_extorcion-t489642.0.html

Realmente es lo mismo solo que traducido al español.

Como recomendacion cambia las contraseñas de tus cuentas, y activa siempre que se pueda la verificacion en 2 pasos ( 2FA )

Si es falso, si es verdad que hackearon X sitio y sacaron tu password, pero solo el de ese sitio, Se tiene que usar un password diferente y de preferencia al aza para cada sitio distinto.

Saludos!
467  Programación / Programación C/C++ / Re: socket siempre me devuelve -1 en: 28 Noviembre 2018, 17:49 pm
Que tal Ethernal Idol gusto en verte por aqui :)  ;-) ;-) ;-)

Funciono, todo un maestro como siempre.

Saludos!
468  Programación / Programación C/C++ / Re: Implementación de arreglo de 2-D como función en: 28 Noviembre 2018, 06:03 am
una matriz es básicamente un arreglo lineal asi que pe podría mandar algo asi:

En main si es una matriz bidimencional, pero como solo se pasa la referencia de la matriz y indicas los tamaños, solo es necesario pasar el apuntador a mostrar y mostrar lo maneja como un arreglo lineal, tratado como matriz.

Código
  1. #include<stdio.h>
  2.  
  3. void muestra(int *matriz, int renglon, int columna);
  4.  
  5. int main() {
  6. int M, N, i, j;
  7. scanf("%d %d", &M, &N);
  8. int b_minas[M][N];
  9. for (i= 0; i < M; i++) {
  10. for (j= 0; j < N; j++) {
  11. scanf("%d",&b_minas[i][j]);
  12. }
  13. }
  14. muestra((int *) b_minas, M, N);
  15. return 0;
  16. }
  17.  
  18. void muestra(int *matriz, int renglon, int columna) {
  19. printf("\n");
  20. int i, j;
  21. for (i= 0; i < renglon; i++) {
  22. for (j= 0; j < columna; j++) {
  23. printf("%d ", matriz[(i*columna) +j]);
  24. }
  25. printf("\n");
  26. }
  27. }
  28.  

Salida:

Código:
C:\codigos>matriz.exe
5 4
1
1
1
1
2
2
2
2
3
3
3
3
4
4
4
4
5
5
5
5

1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5


Saludos!
469  Programación / Desarrollo Web / Re: pagina para compra y ventas de usuarios en: 28 Noviembre 2018, 03:41 am
Si haces esa pregunta, entonces sinceramente te recomiendo que no desarrolles nada. No es por hacer de menos tu esfuerzo y/o trabajo, pero si tu eres el único programador tu deberia de indicar a quien te contrato que hosting contratar, si lo estas haciendo para ti podrías iniciar con algun hosting básico y de ahi ir creciendo conforme se necesite, para esto necesitas hacerlo escalable.

De recomendarte X base de datos, tambien te preguntaría con cuantas sabes trabajar, lo que tambien implica cual va a ser el lenguaje del back end. Por lo general PHP o algun otro?

Si es PHP, pues podrías empezar con MySQL, quieres experimentar con otras bases de datos adelante, hoy en dia no es dificil migrar entre los módulos de php para Distintas bases de datos.

Si planeas utilizar Algun Framework en particular tambien tendrias que ver si ese Framework trabaja con alguna Base de datos en particular.

Sobre el Hosting:

En general depende del volumen de trafico que vallas a tener.

Por ejemplo si lo usuarios van a poder subir imágenes de sus productos, debes de calcular cuanto espacio va a necesitar, eso si las almacenas en disco, también esta la opcion de almacenar en la base de datos. Opciones hay muchas.

También hay hosting que te limitan el numero de procesos activos en X momento, y si en X momento el nivel de visitas de tus usuarios superan ese limite de procesos en ejecución, entonces tu pagina va a tener problemas.

Yo personalmente he realizado paginas similares y la verdad es que no requieren muchos recursos siempre y cuando programes eficientemente las llamadas al servidor.

Saludos.
470  Programación / PHP / Re: es posible desencriptear esto? en: 28 Noviembre 2018, 03:06 am
Lo primero que debes hacer es Poner tu WEB offline para que no te puedan atacar.

Encontrar el script en PHP vulnerable o la vulnerabilidad de tu servidor, parchearla y Listo

Si no lo puedes poner offline entonces saltate a la segunda parte que es encontrar el y/o los bugs y corregirlos para que no te esten injectando codigo.

Posiblemente tambien sea algun Upload de archivos que no haga las verificaciones correspondientes.

Saludos
Páginas: 1 ... 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 [47] 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 ... 235
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines