entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Explorador de archivos haciendo uso de sockets

Pues eso, me encuentro creando una aplicacion en java y deseo realizar esta funcion y la verdad no se como implementarla.

Esta funcion que realizan por ejemplo los troyanos mas conocidos como bifrost(por ejemplo) como la implementa, se conecta via ftp, ssh, etc...? O se trae todo las rutas, directorios, ficheros desde la victima? O lo realiza todo por medio de sockets?

Todo lo que he conseguido es de manera local, File root[] = File.listRoots(), jFileChooser...La verdad no tengo entiendo una logica de como empezar a desarrollarlo.

Un saludo!

1 Respuesta

1voto

Leonardo-Tadei Puntos227320

Hola @pabeni,

para acceder al sistema de archivo vía sockets, necesitás primero un servicio ejecutándose que tenga acceso al sistema de archivos.

Puede ser un servidor FTP, HTTP, SMB/CIFS, etc.

Para que te sea más simple, pensá que los socket son una conexión TCP como cualquier otra, con la salvedad de que en vez de conectarte a una IP y puerto, te "conectás" al socket.

Técnicamente, el socket es un archivo especial en que un servidor escucha peticiones y las responde según los pedidos de los clientes... luego, el cliente es un cliente normal de un servicio, que tiene que implementar el protocolo correspondiente.

En vez de hablar por una IP y puerto, se habla vía el socket, pero todo lo demás permanece sin cambios.

La gracia de esto es que este tipo de "conexiones" no pasan por los firewall, ya que al pasar todo en la misma PC, se asume a la fuente como confiable. Espero haberte orientado un poco.

Saludos cordiales!

0voto

pabeni comentado

Buenos dias maestro,

Queria comentarte que en realidad si que he implementado haciendo uso de sockets aplicaciones cliente/servidor haciendo uso de sockets orientados a conexion TCP y sin conexion UDP.

Yo por ejemplo una aplicacion tipica el cliente envia una cadena llamada X el servidor la recibe y comprueba dicha cadena y si es la que espera ejecuta la funcion correspondiente y luego mediante streams envia otra cadena con la respuesta de la funcion hacia el cliente y es el cliente quien la formatea o la muestra en un componente de swing, fx...

Pero yo por ejemplo no entiendo la logica de como implementar un explorador de archivos remoto(por ejemplo sin hacer uso de ftp ni ssh) solo via sockets, como seria la logica luego entendiendola yo creo que tengo la capacidad de desarrollarlo.

Resumiendo, desde mi cliente envia la peticion de mostrar el explorador remoto(se resume en una cadena que indica que se desea esa funcion) la envia al servidor, este obtiene las unidades medienate File.listDir... y va recorriendo todos los archivos y sus correspondientes archivos y lo va concatenando en una cadena que despues la envia al cliente y este labformatea en un jtree de java o algo asi?

Espero que entendais lo que deseo hacer.

Un saludo!

0voto

Leonardo-Tadei comentado

Creo entender tu cuestión... además de escribir un cliente, querés escribir un servidor que funcione vía sockets para acceder al sistema de archivos.

A mi me parece un despropósito, existiendo ya servidores que hacen esto escribir uno nuevo, pero a veces necesidades puntuales o las ganas de investigar nos embarcan en estas cosas.

Volviendo a tu cuestión, es tal como decís al final: del lado del servidor necesitás ejecutar un "servicio" que tenga acceso al sistema de archivos de forma local, y que escuche las peticiones de los clientes, para acceder a la lista de archivos o contenido solicitado, y luego devolverla. Para el caso de Java será mediante File, pero el esquema de funcionamiento es independiente del lenguaje.

Por simplicidad, muchos servidores tienen un comando para devolver una lista de archivos, y otro para devolver solo 1 archivo. De esta manera queda del lado del cliente en el caso de tener que acceder a muchos archivos, la tarea de leer la lista, recorrerla y pedir cada archivo por separado. El motivo de esto es que se agrega mucha más complegidad de la que parece el devolver varios archivos a la vez.

Saludos!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta