
🐍 Scanner de alto desempenho e multithread para YARA e IOC

Uma reescrita do Loki em Rust. Scanner YARA e IOC de alto desempenho e multi-thread num único binário.
Estado: Beta. Funciona, mas ainda em desenvolvimento ativo.
A digitalização da memória de processos no macOS é de melhor esforço e geralmente requer permissões de depuração ou privilégios elevados. Sem esses, o Loki-RS ainda irá digitalizar ficheiros mas não conseguirá ler a maior parte da memória de processos. Use --no-procs para saltar a digitalização de processos se necessário.
No Linux, o Loki-RS ignora mapeamentos de processos suportados por dispositivos e especiais do kernel antes de ler /proc/<pid>/mem. Isto evita instabilidade conhecida com algumas VMAs geridas por drivers, preservando a digitalização normal de memória anónima, heap/stack e ficheiros regulares. Se ainda encontrar problemas específicos do ambiente, use --no-procs para desativar a digitalização de processos.
Descarregue o binário pré-compilado para a sua plataforma a partir da Página de Versões.
# Extrair
tar -xzvf loki-linux-*.tar.gz
cd loki-linux-*
# Atualizar assinaturas (recomendado)
./loki-util update
# Executar
sudo ./loki --help
As assinaturas vêm com a versão mas ficam desatualizadas rapidamente. Execute loki-util update para obter as regras mais recentes do YARA-Forge Core.
O Loki-RS usa YARA Forge como sua fonte de assinaturas padrão. O Loki-RS é distribuído e atualizado com o conjunto de regras Core (alta precisão, baixos falsos positivos, otimizado para desempenho). Se precisar de uma cobertura mais ampla, pode trocar para os conjuntos Extended ou Full do YARA Forge.
Os ficheiros IOC em signatures/iocs/ continuam suportados como conteúdo local/personalizado opcional.
# Digitalização básica (TUI ativada por defeito)
sudo ./loki
# Digitalizar pasta específica
sudo ./loki --folder /tmp
# Desativar TUI, usar saída padrão da linha de comandos
sudo ./loki --no-tui
# Digitalizar uma imagem montada (saltar digitalização de processos, usar todos os núcleos)
sudo ./loki --no-procs --folder ~/image1 --threads 0
# Digitalização lenta e cautelosa (limite de CPU mais baixo, única thread)
sudo ./loki --cpu-limit 60 --threads 1
# Digitalizar e enviar registos para syslog remoto
sudo ./loki --remote syslog-host.internal:514 --remote-proto udp


| Opção | Predefinição | Descrição |
|---|---|---|
-f, --folder <PATH> | / | Pasta a digitalizar. Cite caminhos com espaços, ex. -f "J:\SteamLibrary\steamapps\common\SpaceCraft beta" |
| Opção | Predefinição | Descrição |
|---|---|---|
--no-procs | false | Saltar digitalização de memória de processos |
--no-fs | false | Saltar digitalização do sistema de ficheiros |
--no-archive | false | Saltar digitalização dentro de arquivos (ZIP) |
--scan-all-drives | false | Digitalizar todas as unidades incluindo montadas/rede/nuvem |
--scan-all-files | false | Digitalizar todos os ficheiros independentemente da extensão/tipo |
| Opção | Predefinição | Descrição |
|---|---|---|
-l, --log <FILE> | auto | Ficheiro de registo de texto simples |
--no-log | false | Desativar saída de registo em texto simples |
-j, --jsonl <FILE> | auto | Ficheiro de saída JSONL |
--no-jsonl | false | Desativar saída JSONL |
--no-html | false | Desativar geração de relatório HTML |
--no-tui | false | Desativar TUI, usar saída padrão da linha de comandos |
-r, --remote <HOST:PORT> | nenhum | Destino syslog remoto |
-p, --remote-proto <PROTO> | udp | Protocolo remoto (udp/tcp) |
--remote-format <FMT> | syslog | Formato remoto (syslog/json) |
| Opção | Predefinição | Descrição |
|---|---|---|
--alert-level <SCORE> | 80 | Limiar de pontuação para ALERTA |
--warning-level <SCORE> | 60 | Limiar de pontuação para AVISO |
--notice-level <SCORE> | 40 | Limiar de pontuação para NOTA |
--max-reasons <NUM> | 2 | Número máximo de razões de correspondência a exibir por descoberta |
-m, --max-file-size <BYTES> | 64000000 | Tamanho máximo de ficheiro a digitalizar (64MB) |
--yara-timeout <SEGUNDOS> | 10 | Tempo máximo de digitalização YARA para cada ficheiro ou buffer de memória de processo (mínimo: 1 segundo) |
-c, --cpu-limit <PERCENT> | 100 | Limite de utilização da CPU (1-100) |
--threads <NUM> | -2 | Número de threads (0=todas, -1=todas-1, -2=todas-2) |
| Opção | Predefinição | Descrição |
|---|---|---|
--version | - | Mostrar versão e sair |
-d, --debug | false | Mostrar saída de depuração |
--trace | false | Mostrar saída de rastreio detalhada |
--show-access-errors | false | Mostrar erros de acesso a ficheiros/processos |
O Loki-RS fornece vários mecanismos para excluir ficheiros e pastas das digitalizações.
Por defeito, o Loki-RS exclui automaticamente:
Diretórios de sistema (Linux/macOS):
/proc, /dev, /sys/kernel/debug, /sys/kernel/slab, /sys/kernel/tracing, /sys/devices/run, /var/runDiretórios de armazenamento na nuvem (a menos que --scan-all-drives seja usado):
Unidades de rede e montadas (a menos que --scan-all-drives seja usado):
/media, /volumesDiretório do programa:
| Opção | Descrição |
|---|---|
--scan-all-drives | Incluir unidades montadas, unidades de rede e armazenamento na nuvem |
--scan-all-files | Digitalizar todos os ficheiros independentemente do tipo/extensão (por defeito, apenas tipos de ficheiro relevantes são digitalizados) |
-m, --max-file-size <BYTES> | Ignorar ficheiros maiores que este tamanho (predefinição: 64MB) |
--no-procs | Ignorar completamente a digitalização de memória de processos |
--no-fs | Ignorar completamente a digitalização do sistema de ficheiros |
--no-archive | Ignorar digitalização dentro de ficheiros de arquivo (ZIP) |