Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
AudioServer-Voip-Recorder — 🔬 Uma ferramenta avançada de pesquisa para Android para captura de áudio VoIP em tempo real (Uplink/Downlink) por meio de hooking dinâmico do libaudioflinger.so. Testada e desenvolvida em WhatsApp, Signal e Telegram no Android 14. | Kitploit
Ferramentas/GitHubGitHub/nighthawkk/audioserver-voip-recorder
Segurança AndroidEngenharia ReversaSegurança Móvel
GitHubnighthawkk/audioserver-voip-recorder

AudioServer-Voip-Recorder

🔬 Uma ferramenta avançada de pesquisa para Android para captura de áudio VoIP em tempo real (Uplink/Downlink) por meio de hooking dinâmico do libaudioflinger.so. Testada e desenvolvida em WhatsApp, Signal e Telegram no Android 14.

Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
3199há 1 mêsAinda não revisado

Objetivo: Demonstrar a captura de fluxo VoIP ao hookear o audioserver do Android (especificamente libaudioflinger.so) e gravar buffers PCM de uplink (microfone) e downlink (alto-falante) quando o sistema está em modo comunicação.

Design do Projeto e Metodologia

Arquitetura:

  • App Controlador (Android)
    Interface com 9 botões para gerenciar a configuração da política SELINUX, injeção de payload, movimentação de dados e reprodução.

  • Payload (libaudiohook.so)
    Biblioteca compartilhada em C++ (compilada como parte do projeto do app) que hookeia métodos internos de AudioFlinger usando Dobby e grava buffers PCM brutos em um diretório de sessão.

  • Pós-processamento
    Ferramenta adicional, tools/audioparser.py converte arquivos brutos .ac (Downlink)/.bc (Uplink) para WAV. O gerenciador de arquivos do app também pode converter e reproduzir no próprio aplicativo.

  • Utilitários de Pesquisa
    Scripts Frida para rastreamento inicial de funções e descoberta de offsets; arquivos de análise para símbolos/offsets e outros trechos.

App Controlador

Este aplicativo Android fornece uma interface gráfica para gerenciar a gravação de VoIP através do audioserver. Ele se integra a um payload nativo que hookeia a pilha de áudio do Android para capturar áudio do microfone e do alto-falante de aplicativos VoIP.

O aplicativo serve como um centro de controle, permitindo injetar as políticas SELinux necessárias, iniciar/parar o monitoramento, gerenciar os dados gravados e reproduzir arquivos de áudio VoIP capturados.

Recursos

A atividade principal contém 9 botões de controle:

  1. Injetar Políticas
    Injeta as políticas SELinux necessárias para que audioserver e este aplicativo funcionem juntos.

  2. Iniciar Monitoramento
    Injeta o payload da biblioteca compartilhada no audioserver, habilitando a captura de áudio VoIP ao hookear RecordTrack e PlaybackTrack. Usa AndKittyInjector para injeção de processo.

  3. Parar Monitoramento
    Reinicia o processo audioserver, interrompendo o monitoramento e removendo os hooks injetados.

  4. Copiar Dados
    Copia o áudio PCM bruto capturado do diretório temporário /data/local/tmp/voip para /sdcard/voip.

    • Limpa o diretório temporário em seguida.
  5. Ver Logs
    Exibe logs relacionados à injeção, hooking e status da gravação.

  6. Habilitar SELinux
    Restaura o modo enforcing do SELinux.

  7. Desabilitar SELinux
    Define o SELinux para o modo permissivo. Use quando as políticas injetadas falharem.

  8. Reproduzir Áudios
    Abre o Gerenciador de Arquivos VoIP personalizado (/sdcard/voip/):

    • Converte arquivos PCM brutos para o formato WAV em memória.
    • Reproduz o áudio convertido diretamente no aplicativo.
  9. Excluir Dados
    Exclui todos os dados de áudio de /data/local/tmp/voip e /sdcard/voip. NOTA: Após excluir os dados, precisamos reinjetar no audioserver para que o diretório de salvamento seja criado.

+----------------------+    
|                      |    
|   App MainActivity   |    
|                      |    
|                      |    
|(9 Control Buttons UI)|    
|                      |    
|                      |    
+----------+-----------+    
           |                
           |                
           |                
+----------v-----------+    
|                      |    
|       JNI Layer      |    
|                      |    
| Selinux, Process Inje|    
| ction,               |    
|                      |    
|                      |    
+----------------------+    

Payload de Hooking

Esta biblioteca compartilhada é injetada no audioserver para detectar AUDIO_MODE_IN_COMMUNICATION e capturar fluxos de áudio VoIP diretamente da pilha de áudio do Android para um conjunto predefinido de nomes de pacotes.

Ela usa o framework de hooking inline Dobby para interceptar métodos críticos dentro de libaudioflinger.so.
Os fluxos de áudio de uplink (microfone) e downlink (alto-falante) são capturados e gravados em arquivos de sessão para processamento posterior.

Pontos de Hook

A biblioteca instala hooks nas seguintes funções dentro de AudioFlinger e classes relacionadas:

FunctionPurpose
AudioFlinger::setModeRastreia transições de entrada/saída do modo IN_COMMUNICATION (VoIP ativo).
RecordTrack::getNextBufferCaptura quadros de áudio do microfone (uplink).
PlaybackThread::Track::getNextBufferCaptura quadros de áudio do alto-falante (downlink).
Track::stopFecha e finaliza o arquivo de downlink.
RecordTrack::stopFecha e finaliza o arquivo de uplink.

Aplicativos Alvo

A biblioteca filtra fluxos com base no mapeamento UID → Pacote.

Aplicativos atualmente monitorados:

  • com.whatsapp
  • com.whatsapp.w4b (WhatsApp Business)
  • org.thoughtcrime.securesms (Signal)
  • org.telegram.messenger
  • org.telegram.messenger.web

Você também pode adicionar outros aplicativos dentro de audioserver_hook.cpp:

static const char* kTargetPackages[] = {  
    "com.whatsapp",  
    "com.whatsapp.w4b",  
    "org.thoughtcrime.securesms",  
    "org.telegram.messenger",  
    "org.telegram.messenger.web"  
};

Saída de Arquivos

  • Um diretório de sessão é criado no momento da injeção no audioserver em: /data/local/tmp/voip/audioserver_session_<timestamp>/

  • Os arquivos são criados primeiro com a extensão .tmp e depois renomeados na parada do track:

    • Uplink (mic) → <packageName>_<sampleRate>_<timestamp>.bc
    • Downlink (alto-falante) → <packageName>_<sampleRate>_<timestamp>.ac
  • Exemplo de sessão:

	/data/local/tmp/voip/audioserver_session_1725389200/
	├── com.whatsapp_48000_1725389201_123456.ac
	├── com.whatsapp_48000_1725389201_123789.bc
	

Offsets

Como a biblioteca alvo é stripped (sem símbolos) e os métodos não são exportados em libaudioflinger.so, precisamos de offsets exatos dos métodos e de outros componentes relacionados para um hooking bem-sucedido.

Podemos extrair esses offsets a partir de análise estática usando IDA-PRO ou de análise dinâmica usando frida. Uma vez que os offsets são conhecidos, podemos substituí-los dentro do arquivo de cabeçalho offsets.h.

Offsets Necessários:
Métodos:
Baixar ferramenta