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.
#181
Dudas y pedidos generales / Re:Guardar string con espacios en C
Octubre 31, 2018, 12:58:52 PM #182
Dudas y pedidos generales / Re:Puertos cerrados
Octubre 30, 2018, 06:06:54 PM
Cuando tu entras a una página de internet tu te conectas al servidor, por lo que no tienes puertos abiertos.
En cambio cuando ellos se conectan a tu página web tu eres quien escucha los puertos.
Por eso cuando tu montas un servidor debes redireccionar los puertos en el router, en cambio cuando tu te conectas a una no.
Piensa en los troyanos de conexiones normales y los de conexiones inversas.
Saludos,
En cambio cuando ellos se conectan a tu página web tu eres quien escucha los puertos.
Por eso cuando tu montas un servidor debes redireccionar los puertos en el router, en cambio cuando tu te conectas a una no.
Piensa en los troyanos de conexiones normales y los de conexiones inversas.
Saludos,
#183
Dudas y pedidos generales / Re:Ayuda Java (Salta lectura de teclado "consola")
Octubre 26, 2018, 04:33:14 PM #184
Dudas y pedidos generales / Re:Problema de red local
Octubre 26, 2018, 04:12:44 PM
Chequea esto:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Saludos,
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Saludos,
#185
Dudas y pedidos generales / Re:Problema con sockets en c
Octubre 26, 2018, 02:27:58 PM
Haceme un favor subile los tiempos de espera en el server y el client a ver que pasa:
struct timeval tv;
tv.tv_sec = 6;
tv.tv_usec = 3000;
setsockopt(sock_client, SOL_SOCKET, SO_RCVTIMEO, (const char*)&tv, sizeof tv);
Me parece que puede ser el mismo problema que tenía yo.
Saludos,
struct timeval tv;
tv.tv_sec = 6;
tv.tv_usec = 3000;
setsockopt(sock_client, SOL_SOCKET, SO_RCVTIMEO, (const char*)&tv, sizeof tv);
Me parece que puede ser el mismo problema que tenía yo.
Saludos,
#186
Dudas y pedidos generales / Re:Problema con sockets en c
Octubre 26, 2018, 01:38:13 PM
Qué te muestra el client cuando entras a shell?
#187
Dudas y pedidos generales / Re:Problema con sockets en c
Octubre 26, 2018, 11:24:51 AM
Lo primero que veo es que nunca lee los datos del servidor por que llegada esa instancia la variable intentos nunca es mayor a 0:
Código: c
Saludos,
int intentos = 0;
if(intentos > 0){
read(sock_client, PC, 512);
read(sock_client, USER, 512);
read(sock_client, OS, 512);
read(sock_client, IP, 512);
}
intentos++;Saludos,
#188
Dudas y pedidos generales / Re:Base de Datos y Visual Studio
Octubre 26, 2018, 09:58:20 AM
El error podría ser que en el select obtenes una imagen y cuando hace el fill y quiere meter la imagen en el datagridview te explota.
Probá de sacar del select el campo de imagen, creando un SQLCommand y pasandoselo a tu adaptador:
Me.FechaConsultaTableAdapter.SelectCommand = new SqlCommand("SELECT id, fecha, nombre, etc from tabla where id=" + d_id_datos.ToString(), _Conexion);
También podrías poner un
try{
}catch(Exception ex)
}
Para que no explote y ver que pasa.
En caso como este es bueno debuguear pasando línea por linéa para ver cual crashea.
Si sin la imagen no crashea, entonces ya sabes donde esta el problema.
Saludos,
Probá de sacar del select el campo de imagen, creando un SQLCommand y pasandoselo a tu adaptador:
Me.FechaConsultaTableAdapter.SelectCommand = new SqlCommand("SELECT id, fecha, nombre, etc from tabla where id=" + d_id_datos.ToString(), _Conexion);
También podrías poner un
try{
}catch(Exception ex)
}
Para que no explote y ver que pasa.
En caso como este es bueno debuguear pasando línea por linéa para ver cual crashea.
Si sin la imagen no crashea, entonces ya sabes donde esta el problema.
Saludos,
#189
Dudas y pedidos generales / Re:C# No se depura mi proyecto
Octubre 24, 2018, 04:45:21 PM
Claro tu programa comienza por el main, y lo cierras sin hacer nada.
Fíjate que las llaves del main {} abren y cierran el método sin ninguna acción.
Dentro del main tendrás que llamar a las funciones que declaraste luego, siguiendo la lógica del programa.
De dónde estás sacando todo eso ?
Saludos,
Fíjate que las llaves del main {} abren y cierran el método sin ninguna acción.
Dentro del main tendrás que llamar a las funciones que declaraste luego, siguiendo la lógica del programa.
De dónde estás sacando todo eso ?
Saludos,
#190
Presentaciones y cumpleaños / Re:Aprendiendo desde 0
Octubre 22, 2018, 03:23:32 PM
Me alegra que estés aprendiendo, si necesitas un manual de programación desde 0 avisame que tengo uno online, te lo envío por MP.
Saludos,
Saludos,
#191
GNU/Linux / Re:Dos formas de finalizar procesos en Linux
Octubre 19, 2018, 06:05:23 PM
Esta lindo cuando se cuelga el entorno gráfico aprietas alt + ctrl + f2 y entras al modo consola, matas los procesos o restableces el GUI y aprietas alt+ctrl+f7 para volver al entorno gráfico con el problema solucionado.
#192
GNU/Linux / Re:Cómo resetear la contraseña root cuando se te olvida
Octubre 19, 2018, 06:00:26 PM
Hola, no estoy del todo seguro pero en ubuntu con cuenta de administrador que te dan normalmente, solo necesitas poner sudo passwd, entonces siendo administrador puedes cambiar la password de la cuenta root.
Avisenme si estoy equivocado o que.
Ademas una vez una amiga perdió la password root en otra distro y le pase ese método y me dijo que le funcionó.
Saludos,
Avisenme si estoy equivocado o que.
Ademas una vez una amiga perdió la password root en otra distro y le pase ese método y me dijo que le funcionó.
Saludos,
#193
Dudas y pedidos generales / Re:Sonido de celular roto!!! Ayuda!!!
Octubre 19, 2018, 02:18:09 PM
Con auriculares funciona?
#194
Dudas y pedidos generales / Re:Problema con MSCOMCTL.OCX
Octubre 18, 2018, 12:24:15 PM
Probá registrar el ocx no solo desde system32 si no también desde SysWOW64.
En qué lenguaje hiciste el programa?
Probá instalar el Visual C++ Redistributable. Es requerido por muchas aplicaciones.
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Del mismo modo si la aplicación fue creada en visual basic 6.0 seguramente requiera del common controls y el service pack 6.0
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Saludos,
En qué lenguaje hiciste el programa?
Probá instalar el Visual C++ Redistributable. Es requerido por muchas aplicaciones.
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Del mismo modo si la aplicación fue creada en visual basic 6.0 seguramente requiera del common controls y el service pack 6.0
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Saludos,
#195
Dudas y pedidos generales / Re:Panel de control para Dendroid
Octubre 18, 2018, 09:52:34 AM
No sé como se usa Dendroid, pero suponiendo tu tienes el server y que pusiste tu ip pública en el client, me pregunto si hiciste la re dirección de puertos correspondiente para que el client pueda conectarse al server.
Saludos,
Saludos,
#196
Dudas y pedidos generales / Re:[SOLUCIONADO] Expulsar un cliente de un servidor
Octubre 17, 2018, 07:35:11 PM
Eso es por que vos no tenes un bucle en un proceso padre que espere clientes, vos esperas uno solo y seguís el flujo de tu programa hacia el final.
En internet tenés ejemplos de como aceptar múltiples clientes y usar fork.
Por ejemplo mira este: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Mira si lo pones así logras que el server no se cierre y vuelva a aceptar clientes: (Pero seguis aceptando solo 1 cliente por vez no podes aceptar muchos simultaneos si no implementas lo que te dije antes):
Código: c++
Saludos,
En internet tenés ejemplos de como aceptar múltiples clientes y usar fork.
Por ejemplo mira este: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Mira si lo pones así logras que el server no se cierre y vuelva a aceptar clientes: (Pero seguis aceptando solo 1 cliente por vez no podes aceptar muchos simultaneos si no implementas lo que te dije antes):
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/sendfile.h> //Sirve para poder enviar archivos
#include <sys/types.h> //Sirve para poder recivir archivos
#include <linux/if_packet.h>
#include <sys/ioctl.h> // Estas 2 librerias son para poder saber algunos datos sobre el
#include <net/if.h> // Cliente en cuention
#define BUFFSIZE 1
#define ERROR -1
// Funciones //
int login(int socket_cliente, char user[9], char pass[8]);
void direccip(int socket_cliente, struct sockaddr_in addr);
void salir(int socket_servidor, int socket_cliente);
void enviar(int socket_cliente, FILE* archivo);
int intentos = 0;
int main(){
int socket_servidor; //Socket del servidor para escuchar mensajes
int socket_cliente; //Socket del cliente para enviar mesajes
int puerto = 15560; //Numero de puerto en /etc/service
char indicered[100]; //Inidece de red
char texto[50]; //Mensaje para usar los comandos
char pass[8]; //Contrasena
char user[9]; //Usuario
FILE * archivo; //Archivo sin formato
socket_servidor = socket(AF_INET, SOCK_STREAM, 0);
socklen_t longc;
// Declaracion de las escructuras;
struct sockaddr_in servidor, cliente; //Creamos las estructuras del cliente y servidor al mismo tiempo
bzero((char *)&servidor, sizeof(servidor)); //Primero llenamos de 0's la struct
servidor.sin_family = AF_INET; //Asiganamos la estructura
servidor.sin_port = htons(puerto); //Indicamos el puerto
servidor.sin_addr.s_addr = INADDR_ANY; //Esta macro especifica nuestra direccion
if(bind(socket_servidor, (struct sockaddr *)&servidor, sizeof(servidor)) < 0){ //asignamos un puerto al socket
printf("Error al asociar el puerto a la conexion\n");
return 1;
}
listen(socket_servidor,3); //Escuchamos por este puero maximo 2 clientes distintos
while(true){
intentos = 0;
printf("Escuchando en el puerto %d\n", ntohs(servidor.sin_port));
longc = sizeof(cliente); //Asignamos el tamano de la estructura a esta variable
socket_cliente = accept(socket_servidor, (struct sockaddr *)&cliente, &longc); // Esperamos una conexion
if(socket_cliente == -1){
printf("Error en al conexion\n");
return 1;
}
printf("Conectando con %s:%d\n",inet_ntoa(cliente.sin_addr),htons(cliente.sin_port));
//Login con el servidor
int conexion = login(socket_cliente, user, pass);
//Hablar con el servidor
if(conexion == 1){
while(free){
bzero(texto, sizeof(texto));
recv(socket_cliente,texto,50,0);
if(strncmp(texto,"IP",2) == 0){
direccip(socket_cliente, cliente);
}
if(strncmp(texto,"EXIT", 4) == 0){
salir(socket_servidor, socket_cliente);
}
if(strncmp(texto,"DESCARGAR", 9) == 0){
enviar(socket_cliente, archivo);
}
}
}else{
printf("Ingreso 3 veces mal usuario \n\n");
System("pause");
}
}
}
int login(int socket_cliente, char user[9], char pass[8]){
bzero(user, 9);
bzero(pass, 8);
if(intentos == 3){
close(socket_cliente);
return 0;
}
send(socket_cliente,"Usuario: ",10,0);
read(socket_cliente,user,9);
send(socket_cliente, "Contrasena: ", 12, 0);
read(socket_cliente, pass, 8);
if(strncmp(user, "frijolito",9) == 0 && strncmp(pass, "abc12345",8) == 0){
return 1;
}
else{
send(socket_cliente,"Error\n", 7,0);
intentos = intentos + 1;
login(socket_cliente, user, pass);
}
}
void direccip(int socket_cliente, struct sockaddr_in addr){
write(socket_cliente, "Tu eres: ",9);
write(socket_cliente, inet_ntoa(addr.sin_addr), 16);
write(socket_cliente,"\n",2);
}
void salir(int socket_servidor, int socket_cliente){
write(socket_cliente, "ADIOS ;)\n", 10);
close(socket_servidor);
close(socket_servidor);
exit(1);
}
void enviar(int socket_cliente, FILE * archivo){
char buffer[BUFFSIZE];
char mensaje[80];
archivo = fopen("lena.png", "rb");
if(!archivo){
printf("Error al abrir el archivo\n");
send(socket_cliente,"error al abrir el archivo",26,0);
}
while(!feof(archivo)){
fread(buffer,sizeof(char),BUFFSIZE, archivo);
if(send(socket_cliente,buffer,BUFFSIZE,0) == ERROR){
perror("Error al enviar el arvhivo:");
}
}
}Saludos,
#197
Dudas y pedidos generales / Re:quisiera saber como evitar que rompan la contraseña de administrador
Octubre 17, 2018, 01:58:46 PM
La función StickyKeys tiene una vulnerabilidad que te permite acceder a la cuenta de administrador por lo que deberías deshabilitarla.
Del mismo modo el servicio programador de tareas también contiene una vulnerabilidad por lo que deberías deshabilitarlo.
También podrías poner en el orden de booteo del bios que no arranquen nunca por CD ni USB y luego de esto colocarle un password si es que el bios trae esa opción.
Con esto no tendrás una seguridad al 100% pero tendrás una seguridad más alta a la hora de que intenten robar la cuenta de administrador.
Saludos.
Del mismo modo el servicio programador de tareas también contiene una vulnerabilidad por lo que deberías deshabilitarlo.
También podrías poner en el orden de booteo del bios que no arranquen nunca por CD ni USB y luego de esto colocarle un password si es que el bios trae esa opción.
Con esto no tendrás una seguridad al 100% pero tendrás una seguridad más alta a la hora de que intenten robar la cuenta de administrador.
Saludos.
#198
Dudas y pedidos generales / Re:quisiera saber como evitar que rompan la contraseña de administrador
Octubre 17, 2018, 08:51:02 AM
Qué sistema operativo tenes?
#199
Dudas y pedidos generales / Re:Expulsar un cliente de un servidor
Octubre 16, 2018, 06:47:49 PM
Así funciona bien el login fallido y no tira error.
Lo que si fíjate cuando haces log-in bien, a mi es como que no se me limpia el buffer de entrada y me inserta un salto por lo que no me deja ingresar bien la contraseña nunca, pero si a vos te funcionaba bien esa parte la dejé igual que siempre.
Código: c++
probalo, vas a ver que no crashea y cierra la conexion tras 3 ingresos fallidos.
Saludos,
Lo que si fíjate cuando haces log-in bien, a mi es como que no se me limpia el buffer de entrada y me inserta un salto por lo que no me deja ingresar bien la contraseña nunca, pero si a vos te funcionaba bien esa parte la dejé igual que siempre.
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/sendfile.h> //Sirve para poder enviar archivos
#include <sys/types.h> //Sirve para poder recivir archivos
#include <linux/if_packet.h>
#include <sys/ioctl.h> // Estas 2 librerias son para poder saber algunos datos sobre el
#include <net/if.h> // Cliente en cuention
#define BUFFSIZE 1
#define ERROR -1
// Funciones //
int login(int socket_cliente, char user[9], char pass[8]);
void direccip(int socket_cliente, struct sockaddr_in addr);
void salir(int socket_servidor, int socket_cliente);
void enviar(int socket_cliente, FILE* archivo);
int intentos = 0;
int main(){
int socket_servidor; //Socket del servidor para escuchar mensajes
int socket_cliente; //Socket del cliente para enviar mesajes
int puerto = 15560; //Numero de puerto en /etc/service
char indicered[100]; //Inidece de red
char texto[50]; //Mensaje para usar los comandos
char pass[8]; //Contrasena
char user[9]; //Usuario
FILE * archivo; //Archivo sin formato
socket_servidor = socket(AF_INET, SOCK_STREAM, 0);
socklen_t longc;
// Declaracion de las escructuras;
struct sockaddr_in servidor, cliente; //Creamos las estructuras del cliente y servidor al mismo tiempo
bzero((char *)&servidor, sizeof(servidor)); //Primero llenamos de 0's la struct
servidor.sin_family = AF_INET; //Asiganamos la estructura
servidor.sin_port = htons(puerto); //Indicamos el puerto
servidor.sin_addr.s_addr = INADDR_ANY; //Esta macro especifica nuestra direccion
if(bind(socket_servidor, (struct sockaddr *)&servidor, sizeof(servidor)) < 0){ //asignamos un puerto al socket
printf("Error al asociar el puerto a la conexion\n");
return 1;
}
listen(socket_servidor,3); //Escuchamos por este puero maximo 2 clientes distintos
printf("Escuchando en el puerto %d\n", ntohs(servidor.sin_port));
longc = sizeof(cliente); //Asignamos el tamano de la estructura a esta variable
socket_cliente = accept(socket_servidor, (struct sockaddr *)&cliente, &longc); // Esperamos una conexion
if(socket_cliente == -1){
printf("Error en al conexion\n");
return 1;
}
printf("Conectando con %s:%d\n",inet_ntoa(cliente.sin_addr),htons(cliente.sin_port));
//Login con el servidor
int conexion = login(socket_cliente, user, pass);
//Hablar con el servidor
if(conexion == 1){
while(free){
bzero(texto, sizeof(texto));
recv(socket_cliente,texto,50,0);
if(strncmp(texto,"IP",2) == 0){
direccip(socket_cliente, cliente);
}
if(strncmp(texto,"EXIT", 4) == 0){
salir(socket_servidor, socket_cliente);
}
if(strncmp(texto,"DESCARGAR", 9) == 0){
enviar(socket_cliente, archivo);
}
}
}else{
printf("Ingreso 3 veces mal usuario");
system("pause");
close(socket_servidor);
}
}
int login(int socket_cliente, char user[9], char pass[8]){
bzero(user, 9);
bzero(pass, 8);
if(intentos == 3){
close(socket_cliente);
return 0;
}
send(socket_cliente,"Usuario: ",10,0);
read(socket_cliente,user,9);
send(socket_cliente, "Contrasena: ", 12, 0);
read(socket_cliente, pass, 8);
if(strncmp(user, "frijolito",9) == 0 && strncmp(pass, "abc12345",8) == 0){
return 1;
}
else{
send(socket_cliente,"Error\n", 7,0);
intentos = intentos + 1;
login(socket_cliente, user, pass);
}
}
void direccip(int socket_cliente, struct sockaddr_in addr){
write(socket_cliente, "Tu eres: ",9);
write(socket_cliente, inet_ntoa(addr.sin_addr), 16);
write(socket_cliente,"\n",2);
}
void salir(int socket_servidor, int socket_cliente){
write(socket_cliente, "ADIOS ;)\n", 10);
close(socket_servidor);
close(socket_servidor);
exit(1);
}
void enviar(int socket_cliente, FILE * archivo){
char buffer[BUFFSIZE];
char mensaje[80];
archivo = fopen("lena.png", "rb");
if(!archivo){
printf("Error al abrir el archivo\n");
send(socket_cliente,"error al abrir el archivo",26,0);
}
while(!feof(archivo)){
fread(buffer,sizeof(char),BUFFSIZE, archivo);
if(send(socket_cliente,buffer,BUFFSIZE,0) == ERROR){
perror("Error al enviar el arvhivo:");
}
}
}probalo, vas a ver que no crashea y cierra la conexion tras 3 ingresos fallidos.
Saludos,
#200
Dudas y pedidos generales / Re:Expulsar un cliente de un servidor
Octubre 16, 2018, 05:47:30 PM
Hola no estoy seguro que sea esto pero podrías probar.
Cuando le haces un close socket cliente, luego sigues enviandole cosas, deberìas poner un return si fallo 3 veces:
Código: c++
Y lo mismo luego, al salir de la función aunque el login haya fallado sigues usando socket_cliente, deberías hacer que en lugar de retornar void, login retorne un int o un bool, que si se conecta bien devuelva 1 y si no 0, entonces si devuelve 0 no utilizas más socket_cliente ya que lo cerraste, si no te sale ahora en un rato vengo y te ayudo a modificarlo.
Saludos,
Cuando le haces un close socket cliente, luego sigues enviandole cosas, deberìas poner un return si fallo 3 veces:
void login(int socket_cliente, char user[9], char pass[8]){
int intentos = 0;
bzero(user, 9);
bzero(pass, 8);
if(intentos == 3){
close(socket_cliente);
return;
}
send(socket_cliente,"Usuario: ",10,0);
read(socket_cliente,user,9);
send(socket_cliente, "Contrasena: ", 12, 0);
read(socket_cliente, pass, 8);
Y lo mismo luego, al salir de la función aunque el login haya fallado sigues usando socket_cliente, deberías hacer que en lugar de retornar void, login retorne un int o un bool, que si se conecta bien devuelva 1 y si no 0, entonces si devuelve 0 no utilizas más socket_cliente ya que lo cerraste, si no te sale ahora en un rato vengo y te ayudo a modificarlo.
Saludos,

