
Alta análise de triagem de alta octanagem
[][docs]
[
][tests]
[
][codecov]
[
][pypi]
__ __ High Octane Triage Analysis __
|| _||______ __ __________ _____ ||
|| \||___ \__| ____/ ______/___ / ____\ ||
==||=====|| | __/ |/ \ /==| / __ \ __\===]|
'======|| | \ | | \_ _| \ ___/| | ||
||____ /__|___|__/ / | \____]| | ||
=========''====\/=========/ /==|__|=====|__|======'
\ /
\/
O Binary Refinery™ é uma coleção de scripts Python que implementam transformações de dados binários, como compressão e criptografia.
Frequentemente nos referiremos a ele simplesmente como refinery, que também é o nome do pacote correspondente.
Os scripts são projetados para ler entrada exclusivamente de stdin e escrever saída em stdout.
A filosofia principal é que cada script deve ser uma unidade no sentido de que faz uma tarefa,
e unidades individuais podem ser combinadas em pipelines com o operador de pipe | na linha de comando para realizar tarefas mais complexas.
O foco principal do projeto é a triagem de malware,
e é uma tentativa de implementar algo como o CyberChef na linha de comando.
Crie um ambiente virtual Python. Você precisa do Python 3.11 ou superior. Instale o refinery assim:
python -m pip install -U pip
python -m pip install -U binary-refinery[extended]
Execute as unidades com -h para aprender como funcionam, pesquise na [documentação][docs] ou use o comando binref para encontrá-las.
Assista [a um vídeo recente][VOD3] se quiser vê-lo em ação.
Mas também, leia o restante deste readme.
Não há cronograma de lançamentos, mas os lançamentos acontecem com muita frequência e é recomendado atualizar periodicamente. Correções de bugs não são documentadas fora do GIT, mas todas as outras mudanças (ou seja, novos recursos) são documentadas no changelog. Siga-me no [Mastodon][] para atualizações sobre lançamentos particularmente impactantes.
O texto de ajuda exibido ao executar uma unidade com a opção -h ou --help é sua documentação principal.
A [documentação gerada automaticamente][docs] contém uma compilação dessa saída para cada unidade no nível superior,
mas também contém a especificação dos três conceitos fundamentais do kit de ferramentas:
[framing][frame], [argumentos multibin][argformats] e [meta variáveis][meta].
A busca em texto completo da descrição e do texto de ajuda para cada unidade também está disponível na linha de comando,
por meio do comando binref fornecido. Reconhecendo o fato de que a documentação de referência pode ser um tanto árida,
há um esforço contínuo para produzir uma série de tutoriais; recomendo muito que você os confira.
Além disso, coleciono recursos adicionais (incluindo alguns produzidos por terceiros) abaixo.
[!NOTE]
O Refinery ainda está em alpha e a interface às vezes pode mudar, ou seja, unidades e parâmetros podem ser removidos ou renomeados. Portanto, pode acontecer que linhas de comando específicas de vídeos e postagens de blog mais antigos não funcionem mais.
2021/08] O [OALabs][OA] foi gentil o suficiente para me deixar [demonstrar o kit de ferramentas em um vídeo de destaque][VOD1].
No vídeo, eu essencialmente percorro o conteúdo do
primeiro tutorial.2021/11] [Johannes Bader][JB] escreveu uma incrível [postagem de blog][BLOG] sobre análise de malspam com binary refinery.2024/03] O [Malware Analysis For Hedgehogs][MH] fez [um vídeo sobre desempacotar uma amostra de XWorm][VOD2] usando o refinery.2024/11] O [CyberYeti][CY] me convidou [para uma transmissão apresentando o refinery][VOD3].2025/06] Eu estive [em transmissão novamente][VOD4] com o [CyberYeti][CY], esta um pouco mais crua.
Todos os bugs que você pode ver aqui foram corrigidos. 😉As demonstrações novamente incluem amostras da seção de exemplos abaixo e dos tutoriais.
O Binary Refinery é (c) 2019 Jesko Hüttenhain, e publicado sob uma [Licença BSD de 3 Cláusulas][license]. Este repositório também contém uma cópia do texto completo da licença. Se você quiser fazer algo com ele que não seja coberto por esta licença, sinta-se à vontade para contatar o autor.
O refinery requer pelo menos Python 3.11. Recomenda-se instalá-lo em seu próprio [ambiente virtual][venv]: O pacote pode trazer muitas dependências, e instalá-lo no seu Python global é um tanto propenso a conflitos de versão. Além disso, como o kit de ferramentas introduz um grande número de novos comandos, há uma boa chance de que alguns deles entrem em conflito em alguns sistemas, e mantê-los em seu próprio ambiente virtual separado é uma forma de evitar isso.
Se você quiser ter todos os comandos do refinery disponíveis no seu shell o tempo todo (ou seja, sem precisar alternar para um ambiente virtual personalizado),
você também tem a opção de escolher um prefixo para a instalação,
que será colocado na frente de cada shim de comando instalado.
Por exemplo, se você escolher r. como prefixo, então a unidade [emit][] será instalada como o comando r.emit.
Um benefício adicional é que você pode digitar r. e apertar Tab duas vezes para obter uma lista de todos os comandos disponíveis do refinery.
Note, no entanto, que nenhum prefixo é assumido na documentação e é uma meta de desenvolvimento do refinery não entrar em conflito na maioria dos sistemas.
O autor não usa um prefixo e fornece esta opção como uma rede de segurança.
A maneira mais direta de instalar e atualizar o refinery é via pip. Certifique-se de executar a versão mais recente primeiro:
python -m pip install -U pip
Depois basta instalar o pacote refinery:
pip install -U binary-refinery
Se você quiser escolher um prefixo para todas as unidades, pode especificá-lo via a variável de ambiente REFINERY_PREFIX.
Por exemplo, o seguinte comando instalará o refinery no ambiente Python atual com o prefixo r. no Linux:
REFINERY_PREFIX=r. pip install -U binary-refinery
No Windows, você teria que executar os seguintes comandos:
set REFINERY_PREFIX=r.
pip install -U binary-refinery
Especificar o prefixo especial ! terá o efeito de que nenhum comando de shell será criado,
e o binary refinery será instalado apenas como uma biblioteca.
Se você quiser instalar o HEAD atual do refinery, pode repetir todos os passos acima, especificando este repositório em vez do pacote pip.
Por exemplo, o seguinte instalará o commit mais recente do refinery:
pip install -U git+git://github.com/binref/refinery.git
Finalmente, se você estiver usando o [REMnux][remnux-main], pode usar o [container docker do refinery][remnux] deles.
Se você quiser ensinar seu [claude][] local de análise de malware a usar o binary refinery, confira a [Binary Refinery Skill][agent].
O seguinte é um resumo de quão bem vários ambientes de shell são atualmente suportados: