
Un plugin que proporciona recursos para principiantes que desean aprender ingeniería inversa utilizando Binary Ninja. Instala automáticamente varios otros plugins y proporciona ejemplos que muestran las características de estos plugins.
Herramientas educativas para Binary Ninja
Este plugin proporciona recursos para que principiantes aprendan ingeniería inversa usando Binary Ninja. Instala automáticamente varios otros plugins y ofrece ejemplos que muestran las funcionalidades de estos plugins.
Este proyecto es producto del programa de prácticas de verano de 2017 de NCC Group. Las actualizaciones posteriores se gestionarán en https://github.com/ehennenfent/binja_sensei. NCC Group no es responsable de ningún cambio posterior realizado en el repositorio después del 18 de agosto de 2017.
Para preparar el plugin para el futuro, Binja Sensei instala los plugins mediante la API del Administrador de plugins, aún incompleta. Dado que el administrador de plugins actualmente no tiene interfaz gráfica, la instalación debe realizarse ejecutando el siguiente fragmento en la consola de scripts de Binary Ninja (accediendo mediante Ctrl+`).
manager = RepositoryManager()
manager.enable_plugin('binja_sensei', install=True)
Nota: Dependiendo de cuándo instalaste Binja, puede que necesites ejecutar manager.check_for_updates() y reiniciar Binja para que este plugin aparezca. Recomiendo encarecidamente instalarlo en una máquina virtual limpia.
Si vas a ejecutar esto antes del 31 de agosto de 2017, necesitarás usar la versión de desarrollo de Binary Ninja, ya que la instalación de dependencias depende de b0778fc y 326253a.
A continuación, reinicia Binary Ninja. Cuando se cargue, Sensei actualizará todos los plugins incluidos a la última versión e instalará las dependencias de Python necesarias para cada plugin. No ejecutará automáticamente los scripts de instalación, así que si usas Ubuntu y tienes intención de configurar binja_dynamics, deberás navegar hasta ~/.binaryninja/repositories/default/plugins/binja_dynamics y ejecutar ./install.sh.
Si alguna de las instalaciones de plugins falla, puede que tengas más éxito realizando una instalación manual. Mientras se resuelve la Issue #753, algunos plugins que dependen de rutas de archivo absolutas pueden no funcionar a menos que se instalen manualmente. Para realizar una instalación manual, copia los enlaces de repositorio relevantes que aparecen abajo y clónalos dentro de tu directorio 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
Ten en cuenta que las herramientas incluidas siguen siendo propiedad de sus respectivos autores. Aunque este plugin se ofrece bajo una Licencia MIT, dicha licencia no se extiende a ninguno de los plugins siguientes.
Para demostrar posibles casos de uso de estos plugins, se incluyen las soluciones para los cinco retos de desbordamiento de PicoCTF 2013. Ten en cuenta que es posible que se hayan implementado cambios menores en cuanto a funcionalidad, esquema de colores y corrección de errores desde la creación de los writeups.
Annotator usa una pila virtual para anotar llamadas a funciones de libc con prototipos de argumentos.

Este plugin muestra una chuleta con la información interna de Binary Ninja sobre la arquitectura.

Este plugin añade un frontend Qt a Binjatron, incluyendo resaltados pensados para ayudar a los principiantes a localizar lugares importantes de memoria.

Añade una ventana emergente que explica en inglés sencillo qué hace una instrucción de ensamblador.

Anota las llamadas al sistema con argumentos.
