|
32
|
Seguridad Informática / Análisis y Diseño de Malware / Re: Ayuda para analizar lo que hace este virus.
|
en: 7 Abril 2011, 21:37 pm
|
Felicidades, un nuevo infectado! El troyano se propaga simulando ser otro programa que supuestamente falla. No lo he mirado, pero es evidente. Ahora modifico... 1. Programado en VB. Creo que 6.0. 2. Troyano bien claro, y de los malos. Lo normal es que sea muy detectado (no lo he analizado), por varias razones. 3. Tiene funciones de captura de webcam, de keylogger, etc... (creo, pues tiene funciones para tales fines). 4. Tiene alguna función para controlar los procesos, las aplicaciones... Me lo imagino como el "Demonio" de Paju. Bah, de los super-detectados. 5. Vaya virus raros en *.com. Único y penoso PS: No te preocupes, pasa el antivirus, mira las configuraciones del firewall, y restaura algún cambio que haya hecho... Un saludo. Sagrini
|
|
|
33
|
Programación / Programación C/C++ / Re: Ayuda con codigo C++
|
en: 7 Abril 2011, 21:36 pm
|
Remarcaré mi respuesta, seguís teniendo fallos ya indicados. Y de paso ya indico lo del GeShi... 1) No tienes todas las llaves cerradas. Revísalas 2) Eso no es programación estructurada, eso son muchos espacios. Usa el tabulador y estructura bien el código. 3) Tienes faltas de ortografía en los printf (); 4) Usas las funciones inseguras fflush () y gets (). 5) El código es muy largo, se puede acortar. 6) NUNCA uses Conio. 7) Main se debe declarar como un "int main". PS: La próxima vez usa las etiquetas GeShi #include <stdio.h> int main () { printf ("Esto es un ejemplo de etiqueta GeShi.\n"); printf ("A que se ve mejor?\n"); return 0; }
[/b] Y luego... sí, piensa cómo quieres dividirlas. Mira ejemplos, no hay forma...
|
|
|
38
|
Programación / Programación C/C++ / Re: Ayuda con codigo C++
|
en: 6 Abril 2011, 10:09 am
|
1) No tienes todas las llaves cerradas. Revísalas 2) Eso no es programación estructurada, eso son muchos espacios. Usa el tabulador y estructura bien el código. 3) Tienes faltas de ortografía en los printf (); 4) Usas las funciones inseguras fflush () y gets (). 5) El código es muy largo, se puede acortar. 6) NUNCA uses Conio. 7) Main se debe declarar como un "int main". PS: La próxima vez usa las etiquetas GeShi #include <stdio.h> int main () { printf ("Esto es un ejemplo de etiqueta GeShi.\n"); printf ("A que se ve mejor?\n"); return 0; }
Un saludo. Sagrini
|
|
|
39
|
Programación / Programación C/C++ / Re: [Problema] Conexión Sockets
|
en: 5 Abril 2011, 21:13 pm
|
Pues yo veo el mismo código que el de farresito, eso sí, con menos espacios Tienes varios errores en las funciones socket, bind, accept... El error es cuando devuelve -1, no 1. Te recomiendo que uses las constantes simbólicas AF_INET, SOCK_STREAM, etc. y no los valores asociados. No, el mío corre bien. El error del primer código es que necesita poner entre paréntesis asignaciones. Y se lo puse porque esperaba que le ayudase Luego... cierto, me has pillado. Fallo mío, o más bien del teclado xD. Nunca me acostumbraré a estas cosas xD. Ahora modifico, gracias. Y... me ahorra espacio y memoria. Y sé que son cada uno, pero es pura pereza PS: Un detalle, haz siempre caso de todos los warnings. Te ahorrará problemas Sagrini
|
|
|
40
|
Programación / Programación C/C++ / Re: [Problema] Conexión Sockets
|
en: 4 Abril 2011, 21:15 pm
|
#include <iostream> #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <stdio.h> using namespace std; int main() { struct sockaddr_in servidor; struct sockaddr_in cliente; //Otras variables int desc_cliente, desc_servidor; int puerto = 3550, max_conex = 2, size; //Funcinn SOCKET if ((desc_servidor = socket(AF_INET, SOCK_STREAM, 0)) == -1) { printf("Hubo un error en SOCKET"); exit (-1); } //Estructura SOCKADDR_IN servidor.sin_family = AF_INET; servidor.sin_port = htons(puerto); servidor.sin_addr.s_addr = INADDR_ANY; memset(servidor.sin_zero, 0, 8); //Funcion BIND if (bind(desc_servidor, (struct sockaddr*) &servidor, sizeof(struct sockaddr)) == -1) { printf("Error en BIND"); exit(-1); } //Funcion listen if (listen(desc_servidor, max_conex) == -1) { printf("Error en LISTEN"); exit(-1); } //Bucle + accept while (1) { size = sizeof(struct sockaddr_in); if ((cliente = accept(desc_servidor, (struct sockaddr *) &cliente, &size))==-1) { printf("Error en ACCEPT"); exit(-1); } printf("Tienes una conexión de %s \n", inet_ntoa(cliente.sin_addr)); send(desc_cliente, "Bienvenido al servidor \n", 22, 0); close (desc_cliente); } }
Me dice que tengo un parásito en un puñado de líneas, y el código se debería mejorar mucho, pero ahí queda. Te pongo otro código, el tuyo es muy largo y enrevesado. 100% casero #include <stdio.h> //Funciones basicas #include <string.h> //StrCmp #include <stdlib.h> //Exit y otras #include <arpa/inet.h> //struct sockaddr_in #include <sys/socket.h> //Socket, Connect... struct sockaddr_in host, client; //Declaraciones int a=sizeof (struct sockaddr); int newsock; int sockfd; int main (int argc, char *argv []) { printf ("Code 1.0 By Sagrini (2010)\n"); if ((sockfd=socket (2, 1, 0))==-1) { printf ("Error abriendo socket...\n\n"); return 1; } host.sin_port=htons(31337); host.sin_family=AF_INET; host.sin_addr.s_addr=0; if(bind(sockfd,(struct sockaddr*)&host,sizeof(host))==-1) { printf ("Error haciendo binding...\n\n"); return 1; } if(listen(sockfd,5)==-1) { printf ("Error escuchando...\n\n"); return 1; } while (1) { if((newsock=accept(sockfd, (struct sockaddr*)&client, &a))==-1) { printf ("Error esperando conectando...\n\n"); return 1; } printf ("Got connection from %s:%d\n", inet_ntoa (client. sin_addr), ntohs (client. sin_port)); send (newsock, "Hola!\r\n", 7, 0); close (newsock); } close (sockfd); return 0; }
|
|
|
|
|
|
|