// Dicionário português -> inglês da interface. {n} marca um valor variável. export const EN = { // index.html / sidebar 'auditoria de Wi-Fi': 'Wi-Fi auditing', 'Interface': 'Interface', 'Interface Wi-Fi': 'Wi-Fi interface', 'Interfaces': 'Interfaces', 'nenhuma interface Wi-Fi encontrada': 'no Wi-Fi interface found', 'APs, clientes e ataques': 'APs, clients and attacks', 'espectro e saúde': 'spectrum and health', 'checar atualização': 'check for update', 'checando…': 'checking…', 'atualizar para {n}': 'update to {n}', 'já atualizado': 'already up to date', // topbar 'Painel de captura': 'Capture dashboard', 'selecione uma interface': 'select an interface', 'modo monitor': 'monitor mode', 'modo gerenciado': 'managed mode', // elevação / avisos 'Pedindo privilégio de administrador — necessário pra modo monitor e captura…': 'Requesting administrator privilege — needed for monitor mode and capture…', 'tentar de novo': 'try again', 'Não foi possível obter privilégio de administrador.': 'Could not get administrator privilege.', 'Use somente em redes próprias ou com autorização explícita do responsável. Toda ativação de modo monitor e sessão de captura fica registrada na trilha de auditoria local.': 'Use only on your own networks or with the explicit authorization of the responsible party. Every monitor mode activation and capture session is logged in the local audit trail.', // controles 'ativar modo monitor': 'enable monitor mode', 'desativar modo monitor': 'disable monitor mode', 'iniciar captura': 'start capture', 'parar captura': 'stop capture', // resultados 'Redes': 'Networks', 'Redes vistas': 'Networks seen', 'Linha do tempo': 'Timeline', 'Linha do tempo ·': 'Timeline ·', 'fechar': 'close', 'motivo {n}': 'reason {n}', 'Pronto pra capturar': 'Ready to capture', 'Ative o modo monitor e inicie a captura pra ver as redes no ar.': 'Enable monitor mode and start capturing to see the networks on the air.', 'Nenhuma interface Wi-Fi': 'No Wi-Fi interface', 'Conecte um adaptador compatível com modo monitor e recarregue.': 'Connect an adapter that supports monitor mode and reload.', 'Escutando o ar…': 'Listening to the air…', 'Nenhuma rede vista ainda. Isso pode levar alguns segundos enquanto os canais são varridos.': 'No network seen yet. This can take a few seconds while the channels are scanned.', 'oculta': 'hidden', 'Rede': 'Network', 'Canal': 'Channel', 'Canais': 'Channels', 'Banda': 'Band', 'Bandas': 'Bands', 'Nome': 'Name', 'Sinal': 'Signal', 'Segurança': 'Security', 'Clientes': 'Clients', 'filtrar por SSID ou BSSID': 'filter by SSID or BSSID', 'Filtrar redes': 'Filter networks', 'Ordenar por': 'Sort by', 'expandir': 'expand', 'recolher': 'collapse', 'PMF parcial': 'partial PMF', 'canal {n}': 'channel {n}', 'canal {n} · {n}': 'channel {n} · {n}', '1 cliente': '1 client', '{n} clientes': '{n} clients', '{n} de {n} redes': '{n} of {n} networks', '{n} redes · {n} BSSIDs · {n} clientes': '{n} networks · {n} BSSIDs · {n} clients', 'Nenhuma rede corresponde ao filtro': 'No network matches the filter', 'Ajuste a busca ou limpe o campo de filtro.': 'Adjust the search or clear the filter.', // erros de UI 'Não foi possível trocar o modo:': 'Could not change the mode:', 'Não foi possível iniciar a captura:': 'Could not start the capture:', 'Não foi possível retomar a captura: {n}': 'Could not resume the capture: {n}', 'Retomando a captura e localizando a rede…': 'Resuming the capture and locating the network…', 'A rede não reapareceu na varredura a tempo. Tente de novo.': 'The network did not reappear in the scan in time. Try again.', 'A captura parou:': 'The capture stopped:', 'erro desconhecido': 'unknown error', 'rota desconhecida': 'unknown route', // seletor de idioma / configurações 'Configurações': 'Settings', 'Tema': 'Theme', 'Claro': 'Light', 'Escuro': 'Dark', 'Fechar': 'Close', 'Idioma': 'Language', 'Auto': 'Auto', 'Português': 'Portuguese', 'English': 'English', // crates/sabia-core/src/error.rs 'interface `{n}` não encontrada': 'interface `{n}` not found', 'interface `{n}` não é uma interface Wi-Fi (sem phy80211)': 'interface `{n}` is not a Wi-Fi interface (no phy80211)', 'falha ao executar `{n}`: {n}': 'failed to run `{n}`: {n}', 'permissão insuficiente — operações de captura e modo monitor exigem root (CAP_NET_ADMIN/CAP_NET_RAW)': 'insufficient permission — capture and monitor mode operations require root (CAP_NET_ADMIN/CAP_NET_RAW)', 'captura crua só é suportada no Linux (AF_PACKET)': 'raw capture is only supported on Linux (AF_PACKET)', 'entrada inválida: {n}': 'invalid input: {n}', 'captura .pcap inválida: {n}': 'invalid .pcap capture: {n}', 'erro de E/S: {n}': 'I/O error: {n}', 'erro ao (de)serializar: {n}': '(de)serialization error: {n}', // crates/sabia-core/src/doctor.rs 'sem root: modo monitor, captura e injeção vão falhar (use sudo ou o app desktop)': 'no root: monitor mode, capture and injection will fail (use sudo or the desktop app)', '`iw` não encontrado no PATH — instale iw/iproute2': '`iw` not found in PATH — install iw/iproute2', '`ip` não encontrado no PATH — instale iproute2': '`ip` not found in PATH — install iproute2', 'nenhuma interface anuncia suporte a modo monitor': 'no interface advertises monitor mode support', '`curl` não encontrado — a auto-atualização não funciona': '`curl` not found — auto-update does not work', 'a trilha de auditoria existente está corrompida': 'the existing audit trail is corrupted', 'trilha de auditoria ainda não criada em {n}': 'audit trail not created yet at {n}', 'cadeia de auditoria rompida na entrada {n}': 'audit chain broken at entry {n}', 'não foi possível ler a trilha de auditoria: {n}': 'could not read the audit trail: {n}', 'indisponível nesta plataforma': 'unavailable on this platform', // crates/sabia-core/src/engine.rs '{n} está em modo managed; ative o modo monitor antes de capturar': '{n} is in managed mode; enable monitor mode before capturing', '{n} está em modo managed; ative o modo monitor antes de injetar': '{n} is in managed mode; enable monitor mode before injecting', 'nenhuma sessão de captura em {n}': 'no capture session on {n}', 'link-type não é 802.11 nem radiotap': 'link-type is neither 802.11 nor radiotap', 'handshake não encontrado': 'handshake not found', 'handshake sem quadros crus (captura antiga)': 'handshake with no raw frames (old capture)', 'nenhum handshake com quadros crus para exportar': 'no handshake with raw frames to export', 'dicionário não encontrado: {n}': 'wordlist not found: {n}', 'nenhum handshake quebrável para os filtros informados': 'no crackable handshake for the given filters', 'quantidade de quadros deve ficar entre 1 e 256': 'frame count must be between 1 and 256', 'MAC inválido: {n}': 'invalid MAC: {n}', // detalhes do alvo e ataques 'não': 'no', 'não anunciado': 'not advertised', 'quebrável': 'crackable', 'Nenhum handshake capturado para este BSSID.': 'No handshake captured for this BSSID.', 'Rede aberta.': 'Open network.', 'O tráfego não é cifrado pelo Wi-Fi; qualquer cliente pode se associar.': 'Traffic is not encrypted over Wi-Fi; any client can associate.', 'A cifra é quebrável; capture IVs na aba Ataques.': 'The cipher is breakable; capture IVs in the Attacks tab.', 'O AP anuncia configuração travada.': 'The AP advertises configuration locked.', 'PIN pode estar acessível; verifique o lock.': 'The PIN may be accessible; check the lock.', 'Desautenticação e captura de handshake podem ser ignoradas pelos clientes.': 'Deauthentication and handshake capture may be ignored by clients.', 'Sem PMF obrigatório.': 'No mandatory PMF.', 'Desautenticação tende a funcionar e facilita a captura do handshake.': 'Deauthentication tends to work and makes handshake capture easier.', 'País': 'Country', 'Último visto': 'Last seen', 'Primeiro visto': 'First seen', 'Frequência': 'Frequency', 'Largura': 'Width', 'Padrão': 'Standard', 'Sinal máximo': 'Max signal', 'Intervalo de beacon': 'Beacon interval', 'Quadros de dados': 'Data frames', 'Versão WPS': 'WPS version', 'Vistos na rede': 'Seen on network', 'Quebráveis': 'Crackable', 'Número do modelo': 'Model number', 'Nome do dispositivo': 'Device name', 'Serial': 'Serial', 'Identificação': 'Identity', 'Rádio': 'Radio', 'sim': 'yes', 'Nome exibido': 'Display name', 'Hostname': 'Hostname', 'Sistema': 'OS', 'IP': 'IP', 'Associado a': 'Associated to', 'Atual': 'Current', 'Máximo': 'Maximum', 'Sem amostras de sinal suficientes ainda.': 'Not enough signal samples yet.', 'Linha do tempo · eventos mais recentes primeiro.': 'Timeline · most recent events first.', 'Cliente · {n}': 'Client · {n}', 'A captura parou sozinha:': 'The capture stopped on its own:', 'A placa não está capturando nada': 'The adapter is not capturing anything', 'Nenhum quadro recebido depois de alguns segundos saltando canais — esta placa pode aceitar ativar o modo monitor sem conseguir capturar de verdade (comum em Wi-Fi interna de notebook). Tente um adaptador USB dedicado a modo monitor/injeção.': 'No frame received after several seconds of channel hopping — this adapter may accept turning monitor mode on without actually being able to capture (common with a laptop\'s built-in Wi-Fi). Try a USB adapter dedicated to monitor mode/injection.', 'motivo desconhecido — confira se o adaptador ainda está conectado.': 'unknown reason — check whether the adapter is still connected.', 'Clientes e handshake': 'Clients and handshake', 'Nenhum cliente visto.': 'No client seen.', 'Associe ou gere tráfego na rede para que o Sabiá identifique estações.': 'Associate or generate traffic on the network so Sabiá can identify stations.', 'senha encontrada': 'password found', 'concluído': 'done', 'quebrando': 'cracking', 'senhas testadas': 'passwords tried', '{n} senhas testadas': '{n} passwords tried', '{n} tentativas · {n} ms': '{n} attempts · {n} ms', 'Senha não encontrada no dicionário ({n} tentativas).': 'Password not found in the wordlist ({n} attempts).', '· quebrável': '· crackable', 'não especificado': 'unspecified', 'autenticação expirada': 'authentication expired', 'saindo': 'leaving', 'inativo': 'inactive', 'AP sem recursos': 'AP out of resources', 'classe 2': 'class 2', 'classe 3': 'class 3', '{n} handshake(s) visto(s); {n} quebrável(is).': '{n} handshake(s) seen; {n} crackable.', 'Nenhum handshake capturado ainda. Desautentique um cliente para estimular a reassociação.': 'No handshake captured yet. Deauthenticate a client to trigger reassociation.', 'Captura WEP': 'WEP capture', 'WEP não tem handshake: o ataque coleta IVs em um .pcap. Reinicie a captura gravando o arquivo e gere tráfego com desautenticação. A captura atual é reiniciada e a tabela começa vazia.': 'WEP has no handshake: the attack collects IVs into a .pcap. Restart the capture writing the file and generate traffic with deauthentication. The current capture is restarted and the table starts empty.', 'Arquivo pcap': 'pcap file', 'Reiniciar captura com pcap': 'Restart capture to pcap', 'Gerar tráfego': 'Generate traffic', 'Copiar comando': 'Copy command', 'Esta rede não usa WEP.': 'This network does not use WEP.', 'Somente em redes próprias ou com autorização escrita.': 'Only on your own networks or with written authorization.', 'Cada ação fica registrada na trilha de auditoria local, com interface, BSSID e estação.': 'Every action is logged in the local audit trail with interface, BSSID and station.', 'Tenho autorização para testar esta rede': 'I have authorization to test this network', 'Desautenticação': 'Deauthentication', 'Expulsa uma estação (ou todas) para forçar reassociação e captura de handshake.': 'Kicks a station (or all) to force reassociation and handshake capture.', 'Enviar desautenticação': 'Send deauthentication', 'Forçar handshake': 'Force handshake', 'Dicionário': 'Wordlist', 'Rede oculta': 'Hidden network', 'job não encontrado': 'job not found', '{n} quadro(s) enviados para {n} (motivo {n}).': '{n} frame(s) sent to {n} (reason {n}).', 'Selecione um handshake.': 'Select a handshake.', 'Informe o dicionário.': 'Enter the wordlist.', 'Informe o caminho do .pcap.': 'Enter the .pcap path.', 'Força bruta por máscara — sem dicionário, testa toda combinação do padrão.': 'Mask brute force — no wordlist, tests every combination of the pattern.', 'dígito,': 'digit,', 'minúscula,': 'lowercase,', 'maiúscula,': 'uppercase,', 'símbolo,': 'symbol,', 'qualquer um; o resto é literal.': 'any of those; the rest is literal.', 'Máscara': 'Mask', 'Força bruta por máscara': 'Mask brute force', 'Informe uma máscara (ex.: ?d?d?d?d?d?d?d?d).': 'Enter a mask (e.g. ?d?d?d?d?d?d?d?d).', 'job não iniciado': 'job not started', 'Captura gravando em {n}. Gere tráfego e aguarde IVs suficientes.': 'Capture writing to {n}. Generate traffic and wait for enough IVs.', 'Visão geral': 'Overview', 'Ver detalhes': 'View details', 'Ver clientes': 'View clients', 'Abrir ataques': 'Open attacks', 'Todos (broadcast)': 'All (broadcast)', 'associado': 'associated', 'sondando': 'probing', 'visto': 'seen', 'Alvo': 'Target', 'Handshake': 'Handshake', 'Salvar pcap em': 'Save pcap to', 'Exportar selecionado': 'Export selected', 'Exportar todos': 'Export all', 'Quebrar senha': 'Crack password', 'completo': 'complete', 'Ataques': 'Attacks', 'Cliente alvo': 'Target client', 'Ações': 'Actions', 'Atacar': 'Attack', 'Cliente não associado a este AP.': 'Client not associated with this AP.', 'Somente o cliente selecionado será desautenticado.': 'Only the selected client will be deauthenticated.', 'Todos os clientes associados (broadcast).': 'All associated clients (broadcast).', 'Fabricante': 'Manufacturer', 'Modelo': 'Model', 'Oculta': 'Hidden', 'Modo': 'Mode', 'Cifra': 'Cipher', 'Privacidade': 'Privacy', 'WPS travado': 'WPS locked', 'Associados': 'Associated', 'Senha': 'Password', 'Quadro': 'Frame', 'Quadros': 'Frames', 'ambas': 'both', 'Tentativas': 'Attempts', 'Testar PMF': 'Test PMF', 'em execução': 'running', 'iniciando': 'starting', 'erro': 'error', 'parado': 'stopped', 'Status: {n}': 'Status: {n}', 'tamanho inválido': 'invalid length', '· última: {n}': '· last: {n}', 'Clona o AP (aberto) numa segunda interface e sobe um portal pedindo a senha de novo. A senha só é aceita se bater de verdade com o handshake já capturado — não é um "aceita qualquer coisa".': 'Clones the AP (open) on a second interface and shows a portal asking for the password again. The password is only accepted if it truly matches the already-captured handshake — it is not an "accept anything" page.', 'Exige um handshake quebrável já capturado deste AP (aba Handshake). Precisa de': 'Requires a crackable handshake already captured for this AP (Handshake tab). Needs', 'instalado e de uma': 'installed and a', 'interface Wi-Fi em modo AP, diferente da que está capturando.': 'Wi-Fi interface in AP mode, different from the one capturing.', 'Iniciar Evil Twin': 'Start Evil Twin', 'Informe a interface do clone (uma segunda placa).': 'Enter the clone interface (a second adapter).', 'a interface do clone precisa ser diferente da que está capturando': 'the clone interface must be different from the one capturing', 'esse BSSID ainda não apareceu nesta sessão de captura': 'that BSSID has not appeared in this capture session yet', 'rede oculta: sem SSID não dá pra clonar': 'hidden network: no SSID, cannot clone', 'handshake sem dados suficientes pra conferir senha': 'handshake does not have enough data to verify a password', 'hostapd não está instalado (sudo apt install hostapd) — necessário pro Evil Twin': 'hostapd is not installed (sudo apt install hostapd) — needed for Evil Twin', '{n} · {n} credencial(is) capturada(s){n}': '{n} · {n} credential(s) captured{n}', 'Clona o AP numa segunda interface e deixa o hostapd-wpe aceitar a autenticação EAP de qualquer cliente. A credencial sai sozinha, como parte do próprio 802.1X — sem portal, sem ação humana.': 'Clones the AP on a second interface and lets hostapd-wpe accept the EAP authentication from any client. The credential comes out on its own, as part of 802.1X itself — no portal, no human action.', 'Rede Enterprise detectada (AKM 802.1X) — aqui a credencial é enviada automaticamente pelo cliente durante o handshake EAP, não precisa de portal. Exige': 'Enterprise network detected (AKM 802.1X) — here the credential is sent automatically by the client during the EAP handshake, no portal needed. Requires', 'instalado (não vem com o Sabiá: é um patch no build do hostapd —': 'installed (not bundled with Sabiá: it is a patch on the hostapd build —', ') e uma': ') and a', 'interface Wi-Fi em modo AP.': 'Wi-Fi interface in AP mode.', 'Iniciar Evil Twin Enterprise': 'Start Enterprise Evil Twin', 'Limitação honesta: o certificado TLS do clone é autoassinado. Dispositivo que valida a cadeia de certificado da rede (comum em perfil corporativo/MDM atualizado) vai recusar ou avisar o usuário — essa é a defesa que deveria existir. Funciona contra configuração sem essa validação.': 'Honest limitation: the clone\'s TLS certificate is self-signed. A device that validates the network\'s certificate chain (common on an updated corporate/MDM profile) will refuse or warn the user — that is the defense that is supposed to exist. It works against configurations without that validation.', 'essa rede não é WPA2/WPA3-Enterprise (802.1X) — pra rede com senha única (PSK), use o Evil Twin com portal cativo': 'this network is not WPA2/WPA3-Enterprise (802.1X) — for a single-password (PSK) network, use the Evil Twin with captive portal', 'hostapd-wpe não está instalado — não vem com o Sabiá (é um patch sobre o build do hostapd, não um binário pequeno); instale pelo repositório do Kali ou compile https://github.com/aircrack-ng/hostapd-wpe': 'hostapd-wpe is not installed — not bundled with Sabiá (it is a patch on the hostapd build, not a small binary); install it from the Kali repository or build https://github.com/aircrack-ng/hostapd-wpe', '{n} está num modo que o hostapd-wpe não consegue usar': '{n} is in a mode hostapd-wpe cannot use', 'não foi possível gerar o certificado TLS (openssl) pro hostapd-wpe': 'could not generate the TLS certificate (openssl) for hostapd-wpe', 'hostapd-wpe saiu sozinho ({n}) logo ao subir em {n} — a placa pode não suportar de verdade o canal/banda do AP real. Saída: {n}': 'hostapd-wpe exited on its own ({n}) right after starting on {n} — the adapter may not actually support the real AP\'s channel/band. Output: {n}', 'job de Evil Twin Enterprise não encontrado': 'Enterprise Evil Twin job not found', 'job de Evil Twin não encontrado': 'Evil Twin job not found', 'hostapd saiu sozinho ({n}) logo ao subir em {n} — a placa pode não suportar de verdade o canal/banda do AP real. Saída: {n}': 'hostapd exited on its own ({n}) right after starting on {n} — the adapter may not actually support the real AP\'s channel/band. Output: {n}', '{n} está num modo que o hostapd não consegue usar': '{n} is in a mode hostapd cannot use', '{n} handshake(s), {n} quadro(s) em {n}': '{n} handshake(s), {n} frame(s) in {n}', 'Motivo': 'Reason', 'Pacotes': 'Packets', 'Estado': 'State', 'Probes': 'Probes', 'Cliente': 'Client', 'WPS ativo': 'WPS active', 'WPS ativo.': 'WPS active.', 'WPS ativo ({n}).': 'WPS active ({n}).', 'PMF exigido.': 'PMF required.', 'Depois de coletar IVs suficientes:': 'After collecting enough IVs:', 'mensagens {n}': 'messages {n}', '{n} · mensagens {n}': '{n} · messages {n}', 'senha: {n}': 'password: {n}', '{n} · quebrável': '{n} · crackable', '{n} · canal {n}': '{n} · channel {n}', '{n} ({n})': '{n} ({n})', // canais, PMKID/PMF, WPS e relatório 'Ocupação dos canais em {n}': 'Channel occupancy on {n}', 'Sem dados de canal ainda': 'No channel data yet', 'Inicie a captura para o Sabiá medir ocupação e sugerir canais.': 'Start capturing so Sabiá can measure occupancy and suggest channels.', '{n} APs · {n} canais ocupados': '{n} APs · {n} busy channels', '{n} AP(s) · recomendado': '{n} AP(s) · recommended', '· recomendado': '· recommended', 'aberta/WEP': 'open/WEP', '{n} rede(s) WPA3 analisada(s) — detalhes na aba do alvo e no relatório.': '{n} WPA3 network(s) analyzed — details in the target tab and report.', 'Restrito a 1, 6 e 11 para evitar sobreposição.': 'Limited to 1, 6 and 11 to avoid overlap.', 'Menor pontuação de interferência entre os canais observados.': 'Lowest interference score among observed channels.', 'Melhor canal': 'Best channel', 'Espectro e canais': 'Spectrum and channels', // saúde do espectro (canais, estilo SMART) 'Boa': 'Good', 'Atenção': 'Attention', 'Saturado': 'Saturated', 'Boa condição': 'Good condition', 'Sem canal livre nessa banda': 'No free channel on this band', 'Até o melhor canal está saturado': 'Even the best channel is saturated', 'Recomendado é DFS — pode cair com radar por perto': 'The recommended channel is DFS — it can drop off if radar is detected nearby', 'Espectro congestionado': 'Congested spectrum', 'Canal recomendado': 'Recommended channel', 'Canais ocupados': 'Busy channels', 'APs na banda': 'APs on this band', 'Pior canal': 'Worst channel', 'Canais DFS': 'DFS channels', 'Nessa banda, prefira sempre 1, 6 ou 11 — canais no meio sobrepõem vizinhos.': 'On this band, always prefer 1, 6 or 11 — channels in between overlap neighbors.', 'Canais DFS liberam mais espaço, mas o rádio é obrigado a sair do ar se detectar radar — tenha um canal não-DFS de reserva.': 'DFS channels free up more room, but the radio must go off the air if it detects radar — keep a non-DFS channel as backup.', 'Considere mudar o AP para o canal recomendado ou mover pra outra banda.': 'Consider moving the AP to the recommended channel or to another band.', 'Canais detalhados ({n})': 'Detailed channels ({n})', 'Pontuação': 'Score', 'APs': 'APs', '{n} AP(s)': '{n} AP(s)', 'Recomendado': 'Recommended', 'Ainda sem eventos além do primeiro avistamento.': 'No events beyond the first sighting yet.', '{n} amostra(s) de sinal. Eventos mais recentes primeiro.': '{n} signal sample(s). Most recent events first.', 'nenhuma ferramenta instalada': 'no tool installed', 'Senha encontrada: {n}{n}': 'Password found: {n}{n}', 'Sem PIN, o reaver usa Pixie Dust; o bully usa o ataque padrão.': 'Without a PIN, reaver uses Pixie Dust; bully uses its default attack.', 'Instale reaver ou bully para habilitar. Ex.: sudo apt install reaver bully': 'Install reaver or bully to enable. E.g.: sudo apt install reaver bully', 'A saída do reaver/bully aparece aqui.': 'reaver/bully output appears here.', 'Orquestra reaver/bully na interface monitor. O canal do AP é usado automaticamente; o processo pode ser interrompido a qualquer momento.': 'Orchestrates reaver/bully on the monitor interface. The AP channel is used automatically; the process can be stopped at any time.', 'Ferramenta': 'Tool', 'PIN conhecido (opcional)': 'Known PIN (optional)', 'Exportar .hc22000': 'Export .hc22000', 'Todos .hc22000': 'Export all .hc22000', 'Iniciar WPS': 'Start WPS', 'Parar job': 'Stop job', '8 dígitos': '8 digits', 'nenhum cliente visto': 'no client seen', 'Direção': 'Direction', 'AP → cliente': 'AP → client', 'cliente → AP': 'client → AP', 'Dispara deauth nas duas direções e observa se a estação reassocia. Resultado prático, não prova criptográfica.': 'Sends deauth in both directions and watches whether the station reassociates. Practical result, not cryptographic proof.', 'Estação': 'Station', 'Forja um MAC local e envia association request com PMKID para tentar a mensagem 1. Muitos APs só expõem PMKID em roaming real.': 'Forge a local MAC and send an association request with PMKID to try for message 1. Many APs only expose PMKID during real roaming.', 'Caçar PMKID': 'Hunt PMKID', 'Do cliente para o AP (exige estação selecionada).': 'From client to AP (requires a selected station).', 'Nas duas direções (exige estação selecionada).': 'In both directions (requires a selected station).', '{n} quadro(s) {n} em {n} para {n} (motivo {n}).': '{n} {n} frame(s) in {n} to {n} (reason {n}).', 'Aguardando saída do reaver/bully…': 'Waiting for reaver/bully output…', 'Enviando associação com PMKID…': 'Sending association with PMKID…', '{n} quadro(s) enviados; PMKID não apareceu. {n}': '{n} frame(s) sent; PMKID did not appear. {n}', 'Nenhuma estação disponível.': 'No station available.', 'Testando por ~4 s…': 'Testing for ~4 s…', 'PMKID capturado: {n}': 'PMKID captured: {n}', 'PMF não obrigatório': 'PMF not required', 'PMF não obrigatório · {n}': 'PMF not required · {n}', 'Inconclusivo · {n}': 'Inconclusive · {n}', 'Instale reaver ou bully.': 'Install reaver or bully.', 'Canal do AP desconhecido.': 'Unknown AP channel.', 'Montando o relatório…': 'Building the report…', 'não foi possível gerar o relatório': 'could not generate the report', 'Pré-visualização A4 · {n} página(s).': 'A4 preview · {n} page(s).', 'Pré-visualização A4.': 'A4 preview.', 'Paginando o relatório…': 'Paginating the report…', 'Não foi possível abrir a impressão; baixe o HTML e abra no navegador.': 'Could not open printing; download the HTML and open it in the browser.', 'não foi possível gerar o HTML': 'could not generate the HTML', 'Relatório': 'Report', 'Relatório de auditoria': 'Audit report', 'Imprimir / PDF': 'Print / PDF', 'Baixar HTML': 'Download HTML', 'Pré-visualização paginada em A4.': 'Paginated A4 preview.', 'Visualização': 'View', 'Relatório paginado': 'Paginated report', 'handshake sem SSID, PMKID ou mensagem 2 para exportar': 'handshake without SSID, PMKID or message 2 to export', 'nenhum handshake com material para .hc22000': 'no handshake with material for .hc22000', 'direção inválida: use ap, sta ou both': 'invalid direction: use ap, sta or both', 'máscara grande demais pra calcular o total': 'mask too large to calculate the total', 'máscara tem {n} combinações, acima do limite de {n} — restrinja a máscara (ex.: menos posições ?a/?l) antes de rodar': 'mask has {n} combinations, above the limit of {n} — narrow the mask (e.g. fewer ?a/?l positions) before running', 'quadro inválido: use deauth ou disassoc': 'invalid frame: use deauth or disassoc', 'direção sta/both exige a estação alvo': 'sta/both direction requires the target station', 'inicie a captura nesta interface antes do teste PMKID': 'start capturing on this interface before the PMKID test', 'BSSID ainda não visto nesta captura': 'BSSID not seen in this capture yet', 'SSID oculto: impossível montar o association request': 'hidden SSID: cannot build the association request', 'PMKID observado; exporte em .hc22000 e quebre com hashcat ou pelo Sabiá.': 'PMKID observed; export to .hc22000 and crack with hashcat or Sabiá.', 'Nenhum PMKID apareceu. O AP pode não usar cache de PMKID ou só responder a roaming real; tente também desautenticar um cliente associado.': 'No PMKID appeared. The AP may not cache PMKID or may only answer real roaming; also try deauthenticating an associated client.', 'PIN WPS deve ter 8 dígitos': 'WPS PIN must have 8 digits', 'a ferramenta terminou sem informar PSK': 'the tool finished without reporting a PSK', 'job WPS não encontrado': 'WPS job not found', 'Auditoria Wi-Fi · {n}': 'Wi-Fi audit · {n}', '{n} está em modo managed; ative o modo monitor antes do teste PMKID': '{n} is in managed mode; enable monitor mode before the PMKID test', '{n} não encontrado no PATH; instale reaver ou bully': '{n} not found in PATH; install reaver or bully', '{n} está em modo managed; ative o modo monitor antes do ataque WPS': '{n} is in managed mode; enable monitor mode before the WPS attack', 'não foi possível executar {n}: {n}': 'could not run {n}: {n}', '{n} terminou com código {n}': '{n} exited with code {n}', // achados do WIDS (analysis.rs) 'SSID “{n}” com seguranças diferentes': 'SSID “{n}” with different security levels', 'O mesmo nome aparece em BSSIDs com níveis de segurança distintos: {n}. Pode ser um evil twin ou um AP mal configurado.': 'The same name appears on BSSIDs with different security levels: {n}. It may be an evil twin or a misconfigured AP.', 'Rajada de desautenticação': 'Deauthentication burst', '{n} quadros de desautenticação/desassociação no último minuto. Pode ser ataque de desautenticação ou um AP instável.': '{n} deauthentication/disassociation frames in the last minute. It may be a deauth attack or an unstable AP.', 'Muitos BSSIDs novos': 'Many new BSSIDs', '{n} BSSIDs apareceram no último minuto — possível beacon flood ou ambiente muito denso.': '{n} BSSIDs appeared in the last minute — possible beacon flood or a very dense environment.', 'Rede aberta: {n}': 'Open network: {n}', 'Sem cifra no Wi-Fi; o tráfego fica exposto a qualquer estação no alcance.': 'No Wi-Fi encryption; traffic is exposed to any station in range.', 'WEP em {n}': 'WEP on {n}', 'WEP é quebrável em minutos; trate a rede como aberta.': 'WEP can be cracked in minutes; treat the network as open.', 'WPA1 (TKIP) em {n}': 'WPA1 (TKIP) on {n}', 'WPA1/TKIP tem fraquezas conhecidas; migre para WPA2/CCMP ou WPA3.': 'WPA1/TKIP has known weaknesses; migrate to WPA2/CCMP or WPA3.', 'WPS ativo em {n}': 'WPS active on {n}', 'O AP anuncia WPS com configuração travada.': 'The AP advertises WPS with configuration locked.', 'WPS sem lock explícito; PIN pode ser testado com reaver/bully.': 'WPS without an explicit lock; the PIN can be tested with reaver/bully.', 'Sem PMF em {n}': 'No PMF on {n}', 'Desautenticação e desassociação não são protegidas; clientes podem ser expulsos para facilitar a captura de handshake.': 'Deauthentication and disassociation are unprotected; clients can be expelled to make handshake capture easier.', 'PMF inconsistente em {n}': 'Inconsistent PMF on {n}', 'O AP anuncia WPA3, mas não anuncia PMF; verifique a configuração.': 'The AP advertises WPA3 but not PMF; check the configuration.', 'WPA3 com WPS em {n}': 'WPA3 with WPS on {n}', 'WPS não faz parte do WPA3 e abre uma via mais fraca de associação.': 'WPS is not part of WPA3 and opens a weaker association path.', 'primeiro visto': 'first seen', 'associou': 'associated', 'desautenticado': 'deauthenticated', 'A estação voltou a se associar.': 'The station reassociated.', 'O AP pode não usar cache de PMKID.': 'The AP may not cache PMKID.', 'A estação voltou a se associar após a desautenticação: PMF não está obrigatório (ou o cliente não o usa).': 'The station reassociated after deauthentication: PMF is not required (or the client does not use it).', 'A estação continuou trocando quadros depois da desautenticação; o quadro de gerenciamento provavelmente foi aceito.': 'The station kept exchanging frames after deauthentication; the management frame was probably accepted.', 'A estação não voltou a associar na janela observada. PMF pode estar ativo, ou o cliente simplesmente ficou inativo.': 'The station did not reassociate in the observed window. PMF may be active, or the client simply stayed idle.', 'Inconclusivo': 'Inconclusive', // deauth contínuo e identificação de clientes 'Mantém os quadros saindo em série até você parar (ou até sair o handshake). O canal da captura fica travado no AP durante o job.': 'Keeps frames going until you stop (or a handshake appears). The capture channel stays locked to the AP during the job.', 'Iniciar contínuo': 'Start continuous', 'Parar': 'Stop', 'Rajada ({n})': 'Burst ({n})', 'Pronto. O job contínuo trava a captura no canal do AP e para quando você mandar.': 'Ready. The continuous job locks capture to the AP channel and stops when you say so.', 'Job {n} · {n} quadro(s){n}{n}': 'Job {n} · {n} frame(s){n}{n}', 'Handshake capturado em {n} quadro(s){n}.': 'Handshake captured in {n} frame(s){n}.', 'Job {n} {n} · {n} quadro(s){n}.': 'Job {n} {n} · {n} frame(s){n}.', 'Escolha um cliente para desautenticar nas direções sta/both.': 'Choose a client to deauthenticate in the sta/both directions.', 'Forçando reassociação e handshake…': 'Forcing reassociation and handshake…', 'Desautenticação contínua iniciada.': 'Continuous deauthentication started.', 'Nenhuma ferramenta WPS disponível.': 'No WPS tool available.', 'O reaver embutido usa Pixie Dust sem PIN. O bully aparece se estiver instalado no sistema.': 'The bundled reaver uses Pixie Dust without a PIN. bully appears if it is installed on the system.', 'O reaver embutido não pôde ser extraído nesta execução.': 'The bundled reaver could not be extracted in this run.', 'Dicionário (vazio = embutido, 9,7 milhões de senhas)': 'Wordlist (empty = bundled, 9.7 million passwords)', 'dicionário próprio, opcional': 'custom wordlist, optional', 'Dispositivo': 'Device', 'MAC aleatório': 'Random MAC', 'Cliente {n}': 'Client {n}', 'Linha do tempo · {n}': 'Timeline · {n}', 'nenhuma ferramenta disponível': 'no tool available', '· canal {n}': '· channel {n}', '· para sozinho no handshake': '· stops on handshake', 'job de deauth não encontrado': 'deauth job not found', 'já existe um job de desautenticação em execução em {n}': 'a deauthentication job is already running on {n}', 'inicie a captura em {n} antes de iniciar o job': 'start capture on {n} before starting the job', 'a captura em {n} não está ativa': 'capture on {n} is not active', '{n} não está disponível; o reaver integrado não pôde ser extraído': '{n} is not available; the bundled reaver could not be extracted', };