Está disponível o USB Raw Gadget, um módulo Linux para emulação de dispositivos USB

Andrey Konovalov do Google está desenvolvendo um novo módulo Gadget USB Raw, permitindo emular dispositivos USB no espaço do usuário. Pendente ordem para inclusão deste módulo no kernel principal do Linux. Gadget USB Raw já aplicada no Google para simplificar o teste fuzz da pilha de kernel USB usando ferramentas syzkaller.

O módulo adiciona uma nova interface de programação ao subsistema do kernel Dispositivo USB e está sendo desenvolvido como uma alternativa ao GadgetFS. A criação de uma nova API foi impulsionada pela necessidade de obter acesso direto e de baixo nível ao subsistema USB Gadget a partir do espaço do usuário, permitindo-lhe processar todas as solicitações USB possíveis (o GadgetFS processa algumas solicitações de forma independente, sem passá-las para o espaço do usuário) . O USB Raw Gadget é controlado por meio do dispositivo /dev/raw-gadget, semelhante a /dev/gadget no GadgetFS, mas a interação usa uma interface baseada em ioctl() em vez de um pseudo-FS.

Além do processamento direto de todas as solicitações USB por um processo no espaço do usuário, a nova interface também apresenta a capacidade de retornar quaisquer dados em resposta a uma solicitação USB (o GadgetFS verifica a exatidão dos descritores USB e filtra determinadas respostas, o que impede a detecção de erros durante o teste fuzz da pilha USB). O Raw Gadget também oferece a capacidade de selecionar um dispositivo UDC (USB Device Controller) específico e um driver para conectar, enquanto o GadgetFS se conecta ao primeiro dispositivo UDC disponível. Nomes previsíveis são atribuídos a UDCs diferentes Ponto final para separar diferentes tipos de canais de troca de dados dentro de um dispositivo.

Fonte: opennet.ru

Adicionar um comentário