Re: Ajuda com comunicação entre aplicações
Enviado: 11 Mar 2011 11:35
Opa,
Eu faria utilizando sockets mesmo, pois além de ser possível implementar em rede, independe de plataforma.
Testei aqui em casa com dois pcs, o meu que é linux e o outro que é windows e consegui transferir arquivos inteiros, de até 20MB.
Dá pra explorar muito a comunicação via socket, pois assim como foi dito à exemplo dos arquivos ini, você pode enviar mensagens padronizadas, praticamente inventando um protocolo próprio de comunicação, com checksum e etc.
Eu transferi um arquivo rar simplesmente lendo ele com memoread, e enviando para a outra máquina um hash com informações como o nome dele, o md5, a data, o tipo mime, e claro o conteúdo propriamente. Para incrementar criptografei tudo com chave assimétrica RSA (com o openSSL), garantindo integralmente a segurança e privacidade dos dados.
Além disso realizei testes onde foi possível executar diretamente comandos na máquina remota, inclusive puxando arquivos, bastando para isso preparar a máquina receptora para executar os comandos recebidos, com CMD, START, RUN, ou OpenProcesss em multi-thread. Este processo é completamente transparente e pode ser utilizado por "softwares mal intencionados" para criar um backdoor que só mesmo um bom firewall pode interceptar. Pode ser usado pelo lado bom da força também, baixando atualizações em background por exemplo.
No caso do WIndows, o Avast antivírus nem percebe. Claro que no Linux não é tão simples porque normalmente o iptables rejeita tudo.
Abraços.
Eu faria utilizando sockets mesmo, pois além de ser possível implementar em rede, independe de plataforma.
Testei aqui em casa com dois pcs, o meu que é linux e o outro que é windows e consegui transferir arquivos inteiros, de até 20MB.
Dá pra explorar muito a comunicação via socket, pois assim como foi dito à exemplo dos arquivos ini, você pode enviar mensagens padronizadas, praticamente inventando um protocolo próprio de comunicação, com checksum e etc.
Eu transferi um arquivo rar simplesmente lendo ele com memoread, e enviando para a outra máquina um hash com informações como o nome dele, o md5, a data, o tipo mime, e claro o conteúdo propriamente. Para incrementar criptografei tudo com chave assimétrica RSA (com o openSSL), garantindo integralmente a segurança e privacidade dos dados.
Além disso realizei testes onde foi possível executar diretamente comandos na máquina remota, inclusive puxando arquivos, bastando para isso preparar a máquina receptora para executar os comandos recebidos, com CMD, START, RUN, ou OpenProcesss em multi-thread. Este processo é completamente transparente e pode ser utilizado por "softwares mal intencionados" para criar um backdoor que só mesmo um bom firewall pode interceptar. Pode ser usado pelo lado bom da força também, baixando atualizações em background por exemplo.
No caso do WIndows, o Avast antivírus nem percebe. Claro que no Linux não é tão simples porque normalmente o iptables rejeita tudo.
Abraços.