Determina o uso da rede de um processo conhecido sem raiz / elevação

1

Meu aplicativo está iniciando outro processo e gostaria de acompanhar quantos dados esse novo processo leu / gravou de / para soquetes de rede.

Eu encontrei ferramentas como nethogs, mas elas exigem elevação para encontrar o uso de processos arbitrários. Também não é algo que eu possa usar para obter o total de execução a partir de 'agora' programaticamente.

    
por PhonicUK 27.08.2017 / 00:22

1 resposta

1

Não é simples, mas você pode usar ptrace no processo filho e acompanhar:

  1. Quais FDs são soquetes.
  2. Bytes em read e write chamadas.
  3. Faça referência cruzada à lista em 1 e aos tamanhos em 2 para determinar bytes lidos / gravados em soquetes de rede.
por 27.08.2017 / 03:50