
Um plugin que fornece recursos para iniciantes aprenderem engenharia reversa usando o Binary Ninja. Ele instala automaticamente vários outros plugins e fornece exemplos que demonstram as funcionalidades desses plugins.
Ferramentas educacionais para Binary Ninja
Este plugin fornece recursos para iniciantes aprenderem engenharia reversa usando Binary Ninja. Ele instala automaticamente vários outros plugins e fornece exemplos que mostram os recursos desses plugins.
Este projeto é um produto do programa de estágio de verão de 2017 da NCC Group. Atualizações futuras serão acompanhadas em https://github.com/ehennenfent/binja_sensei. A NCC Group não é responsável por quaisquer alterações adicionais feitas no repositório após 18 de agosto de 2017.
Para garantir compatibilidade futura, o Binja Sensei instala plugins por meio da API ainda incompleta do Plugin Manager. Como o gerenciador de plugins atualmente não possui uma GUI, a instalação deve ser realizada executando o trecho a seguir no console de scripts do Binary Ninja (acessado via Ctrl+`).
manager = RepositoryManager()
manager.enable_plugin('binja_sensei', install=True)
Nota: Dependendo de quando você instalou o Binja, pode ser necessário executar manager.check_for_updates() e reiniciar o Binja para que este plugin apareça. Recomendo fortemente instalar em uma VM limpa.
Se você estiver usando isto antes de 31 de agosto de 2017, será necessário usar a versão de desenvolvimento do Binary Ninja, pois a instalação de dependências depende de b0778fc e 326253a.
Em seguida, reinicie o Binary Ninja. Quando carregado, o Sensei atualizará todos os plugins incluídos para a versão mais recente e instalará as dependências Python de cada um deles. Ele não executará scripts de instalação automaticamente; portanto, se você estiver no Ubuntu e pretende instalar o binja_dynamics, será necessário navegar até ~/.binaryninja/repositories/default/plugins/binja_dynamics e executar ./install.sh.
Se alguma das instalações de plugins falhar, você pode obter mais sucesso realizando uma instalação manual. Com a Issue #753 pendente, alguns plugins que dependem de caminhos de arquivo absolutos podem não funcionar, a menos que sejam instalados manualmente. Para instalar manualmente, copie os links dos repositórios relevantes abaixo e clone-os dentro do seu diretório de plugins.
https://github.com/carstein/Annotator.git
https://github.com/ehennenfent/binja_arch_ref.git
https://github.com/ehennenfent/binja_dynamics.git
https://github.com/ehennenfent/binja_explain_instruction.git
https://github.com/carstein/Syscaller.git
Observe que as ferramentas incluídas permanecem propriedade de seus respectivos autores. Embora este plugin seja oferecido sob uma Licença MIT, essa licença não se estende a nenhum dos plugins abaixo.
Para demonstrar possíveis casos de uso desses plugins, são incluídas soluções para os cinco desafios de overflow do PicoCTF 2013. Observe que pequenas alterações em termos de funcionalidade, esquema de cores e correções de bugs podem ter sido implementadas desde a criação dos writeups.
O Annotator usa uma pilha virtual para anotar chamadas a funções da libc com protótipos de argumentos.

Este plugin exibe uma folha de referência com as informações internas do Binary Ninja sobre a arquitetura.

Este plugin adiciona uma interface Qt ao Binjatron, incluindo destaques que visam ajudar iniciantes a identificar locais de memória importantes.

Adiciona uma janela pop-up que explica em inglês simples o que uma instrução de assembly faz.

Anota chamadas de sistema com argumentos.
