Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
yaraast — Uma poderosa biblioteca Python e ferramenta CLI para parsing, análise e manipulação de regras YARA através de representação em Árvore Sintática Abstrata (AST) | Kitploit
Ferramentas/GitHubGitHub/seifreed/yaraast
Análise EstáticaAnálise de VulnerabilidadesAnálise de CódigoScripting e AutomaçãoAnálise de MalwareUtilitários e Frameworks
GitHubseifreed/yaraast

yaraast

Uma poderosa biblioteca Python e ferramenta CLI para parsing, análise e manipulação de regras YARA através de representação em Árvore Sintática Abstrata (AST)

Ver Repositório
54546há 12 diasRevisado pelo Kitploit

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

YARAAST

yaraast

Analise, analise e transforme regras YARA com um kit de ferramentas AST em Python

CI License: MIT Python 3.11-3.14

GitHub Stars GitHub Issues Docs


Visão Geral

yaraast é uma biblioteca Python para analisar e manipular regras da família YARA usando Árvores Sintáticas Abstratas (AST). Suporta fluxos de trabalho clássicos de YARA, YARA-L e YARA-X com detecção automática de dialeto e ferramentas de CLI.

Principais Recursos

RecursoDescrição
Análise Multi-dialetoAnalisa YARA, YARA-L e YARA-X a partir de arquivos ou strings
Detecção Automática de DialetoAnalisador unificado detecta automaticamente dialetos de regras
Ferramentas ASTConstrói, transforma, compara e serializa ASTs
Formatação e ValidaçãoComandos CLI para fluxos de trabalho de análise/formatação/validação
Suporte a StreamingAnalisa arquivos muito grandes com modo de streaming
Integrações com EcossistemaCapacidades opcionais relacionadas a LSP e libyara

Ecossistema de Regras Suportado

root@kitploit:~
Dialetos   YARA, YARA-L, YARA-X
Analisadores    Analisador padrão, analisador unificado, analisador de streaming
Saídas    YARA, JSON, YAML, visualizações de árvore AST
Ferramentas    CLI, visitantes, construtores, serialização, verificações semânticas

Os níveis de suporte diferem por dialeto. O YARA clássico é estável, o YARA-X está em beta, o YARA-L é experimental, e a detecção automática de dialeto é de melhor esforço. Consulte a matriz de compatibilidade para os motores e capacidades exatos exercitados pelo CI.


Instalação

A partir do PyPI (Recomendado)

root@kitploit:~
pip install yaraast

A partir do Código-Fonte

root@kitploit:~
git clone https://github.com/seifreed/yaraast.git
cd yaraast
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -e .

Início Rápido

root@kitploit:~
import yaraast

yara_code = """
rule example {
    strings:
        $a = "malware" nocase
    condition:
        $a
}
"""

document = yaraast.parse(yara_code)
print(document.ast.rules[0].name)

Uso

Interface de Linha de Comando

root@kitploit:~
# Analisa e imprime YARA normalizado
yaraast parse rules.yar

# Analisa para JSON
yaraast parse rules.yar --format json

# Analisa com dialeto explícito
yaraast parse rules.yar --dialect yara-x

# Valida arquivo (verificações de sintaxe + análise)
yaraast validate rules.yar

# Formata arquivo in-place (formatador baseado em AST)
yaraast fmt rules.yar

# Verifica formatação sem modificar o arquivo
yaraast fmt rules.yar --check

Comandos Principais da CLI

ComandoDescrição
parseAnalisa um arquivo de regras e gera YARA/JSON/YAML/árvore
validateValida regras e executa subcomandos de validação
fmtFormatador baseado em AST (com --check e --diff)
formatFormata entrada em um arquivo de saída de destino
validate-syntaxPonto de entrada de validação focada em sintaxe
lspInicia recursos do Language Server Protocol

Biblioteca Python

Análise Unificada

root@kitploit:~
from pathlib import Path

import yaraast

source = "rule example { condition: true }"

# Detecta dialeto automaticamente
document = yaraast.parse(source)

# Força dialeto específico
document = yaraast.parse(source, dialect="yara")

# Analisa arquivos, gera novo código-fonte e formata canonicamente
Path("rules.yar").write_text(source, encoding="utf-8")
file_document = yaraast.parse_file("rules.yar")
generated = yaraast.generate(file_document)
formatted = yaraast.format_canonical(source, dialect="yara")

# Preserva cada byte fora de uma edição explícita de byte UTF-8
offset = source.encode("utf-8").index(b"true")
rewritten = yaraast.rewrite_lossless(
    source,
    [yaraast.SourceEdit(offset, offset + 4, "false")],
)

# Os analisadores públicos aplicam padrões limitados. Substitua-os por operação quando necessário.
limits = yaraast.ResourceLimits(max_input_bytes=1024 * 1024, parse_deadline=5.0)
document = yaraast.parse(source, resource_limits=limits)

cancel = yaraast.CancellationToken()
cancel.cancel()
# yaraast.parse(source, cancellation_token=cancel) levanta ParseCancelledError

ResourceLimits() desativa todos os limites explicitamente. A análise via CLI usa os padrões públicos; a análise via LSP usa limites mais restritos de entrada, token, aninhamento, padrão e prazo e nunca armazena em cache um resultado parcial após cancelamento ou falha de limite.

Analisador Direto + Visitante

root@kitploit:~
from pathlib import Path

from yaraast.parser import Parser
from yaraast.visitor import BaseVisitor

class RuleCollector(BaseVisitor):
    def __init__(self):
        self.rules = []

    def visit_rule(self, node):
        self.rules.append(node.name)
        super().visit_rule(node)

ast = Parser(Path("rules.yar").read_text(encoding="utf-8")).parse()
collector = RuleCollector()
collector.visit(ast)
print(collector.rules)

Dependências Opcionais

root@kitploit:~
# Suporte a LSP
pip install yaraast[lsp]

# Integração com libyara
pip install yaraast[libyara]

# Ferramentas de desempenho
pip install yaraast[performance]

# Suporte a visualização
pip install yaraast[visualization]

# Pacote de suporte de runtime
pip install yaraast[all]

# Ferramentas de runtime e desenvolvimento
pip install yaraast[dev-all]

Documentação de Runtime

  • Compatibilidade de dialetos: docs/compatibility.md
  • Internos de runtime LSP: docs/lsp-runtime.md
  • Relatório de paridade LSP: docs/lsp-parity-report.md
  • Artefato de benchmark de runtime mais recente: docs/benchmarks/lsp-runtime-latest.json

Requisitos

  • Python 3.11, 3.12, 3.13 ou 3.14
  • Consulte pyproject.toml para a lista completa de dependências e extras

Contribuindo

Contribuições são bem-vindas. Consulte CONTRIBUTING.md para configuração, verificações de qualidade e diretrizes de fluxo de trabalho.

  1. Faça um fork do repositório
  2. Crie uma branch (git checkout -b feature/your-change)
  3. Faça commit das alterações (git commit -m "Add your change")
  4. Envie (git push origin feature/your-change)
  5. Abra um Pull Request

A política do projeto está documentada em SECURITY.md, CODE_OF_CONDUCT.md, CHANGELOG.md e MIGRATING.md.


Licença

Este projeto é licenciado sob a Licença MIT - consulte LICENSE.

Autor

  • Marc Rivero ([email protected])
  • Repositório: github.com/seifreed/yaraast

Construído para fluxos de trabalho de análise de malware e engenharia de detecção

Baixar ferramenta