Este repositório contém o código-fonte do cliente do AutoDroid Watcher, um projeto desenvolvido para coletar dados de telemetria e conduzir experimentos do software AutoDroid da Malware DataLab.
Este cliente deve ser instalado nas máquinas onde o AutoDroid Worker está instalado. O cliente é responsável por coletar os dados de telemetria e enviá-los para o servidor, além de iniciar os experimentos e a coleta de dados.
Estas instruções irão ajudá-lo a obter uma cópia deste projeto e executá-lo em sua máquina local para fins de desenvolvimento e teste.
Antes de configurar este cliente, é necessário ter o AutoDroid Worker instalado e configurado em sua máquina. Siga as instruções de instalação disponíveis no repositório do Worker.
Configuração deste AutoDroid Watcher Client
Clone este repositório em sua máquina local:
git clone https://github.com/MalwareDataLab/autodroid-watcher-client.gitEntre no diretório do projeto:
cd autodroid-watcher-clientEste software foi desenvolvido para ser executado em um ambiente Linux.
Para executar o projeto, você precisará ter o Node.js e o npm instalados em sua máquina. Você pode baixar o Node.js aqui ou através do comando abaixo:
# Gerenciador de versões do Node.js:
curl -o- https://fnm.vercel.app/install | bash
# Baixar e instalar o Node.js:
fnm install 22.14.0
# Definir a versão do Node.js:
fnm use 22.14.0Após clonar o repositório, entre no diretório do projeto e instale as dependências:
npm installO cliente requer os seguintes parâmetros para execução:
--token, -t TOKEN # Token de autenticação do worker
--url, -u URL # URL do servidor
--name, -n NAME # Nome do workerExemplo de uso:
node dist/index.js --token abc123 --url http://server:3000 --name worker1
# ou usando formas curtas
node dist/index.js -t abc123 -u http://server:3000 -n worker1Para instalar e executar o cliente automaticamente, você pode usar o script de instalação:
curl -s https://raw.githubusercontent.com/MalwareDataLab/autodroid-watcher-client/main/install.sh | bash -s -- --token abc123 --url http://server:3000 --name worker1O script irá:
- Verificar os pré-requisitos (Node.js v22+, npm)
- Instalar o PM2 se necessário
- Clonar/atualizar o repositório
- Iniciar o serviço com os parâmetros fornecidos
- Configurar o serviço para iniciar automaticamente
Opções adicionais do script:
-d, --dir DIR # Diretório de instalação (padrão: ./autodroid-watcher-client)
-h, --help # Mostrar mensagem de ajudaExemplos:
# Instalação padrão
curl -s https://raw.githubusercontent.com/MalwareDataLab/autodroid-watcher-client/main/install.sh -H "Cache-Control: no-cache" | bash -s -- --token abc123 --url http://server:3000 --name worker1
# Instalação em diretório específico
curl -s https://raw.githubusercontent.com/MalwareDataLab/autodroid-watcher-client/main/install.sh -H "Cache-Control: no-cache" | bash -s -- -t abc123 -u http://server:3000 -n worker1 -d /opt/autodroidApós a instalação, você pode usar os seguintes comandos para gerenciar o serviço:
pm2 logs autodroid-watcher # Visualizar logs
pm2 monit # Monitorar recursos
pm2 stop autodroid-watcher # Parar o serviçoPara executar o cliente em modo de desenvolvimento, utilize o comando abaixo:
npm run devPara executar o cliente em modo de debug:
npm run dev:debugPara compilar o projeto:
npm run buildPara verificar o código:
npm run lint- TypeScript - Linguagem de programação
- Node.js - Ambiente de execução
- Socket.io - Biblioteca para comunicação em tempo real
- Axios - Cliente HTTP
- Winston - Sistema de logging
- Sentry - Monitoramento de erros
- Dockerode - Cliente Docker
- System Information - Coleta de informações do sistema
- Zod - Validação de dados
- Yargs - Parsing de argumentos de linha de comando
É importante mencionar as demais ferramentas que serão utilizadas nas duas partes do projeto:
- Git - Controle de versão
- Husky - Hooks do Git
- Lint Staged - Ferramenta para verificar arquivos commitados
- Commitizen - Auxiliar para mensagens de commit do Git
- Commitlint - Verificador de mensagens de commit do Git
- Standard Version - Gerador de changelog
- Eslint - Framework de verificação de código
- Prettier - Formatador de código
- Semver - Versionamento semântico