Tutoriales

Complemento GUI para una fácil interacción con ninjas binarios

multifuncional (Maticore User Interface), proporcionamos un complemento GUI para Binary Ninja que permite a los usuarios interactuar fácilmente y ver el progreso con el motor de ejecución simbólica de Manticore para analizar contratos inteligentes y binarios nativos.

Tenga en cuenta que este proyecto está en desarrollo activo y puede ser inestable o no estar disponible. Abra un problema si encuentra alguna dificultad para usar la funcionalidad existente. El desarrollo de nuevas características se considerará caso por caso.

Exigir

Además de los requisitos de Python, necesitamos lo siguiente:

  • Binary Ninja con GUI (última versión de desarrollo)
  • git submodule update --init --recursive para submódulos Manticore

Instalar en pc

MUI requiere una copia de Binary Ninja con GUI.Actualmente estamos probando la última dev lanzamiento(s)(2.4.2901-dev en el momento de escribir).

Manticore se ejecuta solo en binarios nativos en un entorno Linux. La compatibilidad con EVM solo se ha probado en Mac y Linux y requiere la instalación de ethersplay.

Usar antes de las dependencias de Python requirements.txt y requirements-dev.txt. Tu puedes correr make init Cree un entorno de desarrollo.

  • Haga que el proyecto esté disponible para Binary Ninja creando un enlace simbólico al directorio de complementos. En el directorio raíz de este repositorio, ejecute los siguientes comandos:

Para Mac
ln -s “$(pwd)/mui” “${HOME}/Library/Application Support/Binary Ninja/plugins/mui”
para linux
ln -s “$(contraseña)/mui” “${HOME}/.binaryninja/plugin
seg/mu»

  • Asegúrese de que Binary Ninja comprenda nuestro entorno virtual de Python.
    • Abra las «Preferencias» de Binary Ninja -> «Configuración» -> «Python» y asegúrese de que «Python Interpreter» esté configurado correctamente en la ruta de Python asociada con el entorno virtual actual.Referirse a venv/pyvenv.cfg Encuentre la ruta base.
    • Copie y pegue la ruta absoluta del proyecto MUI en «Paquetes del sitio del entorno virtual de Python» de Binary Ninja y agregue la información necesaria /venv/lib/python3./site-packages Sufijo para la ruta de los paquetes del sitio.
    • Reinicie Binary Ninja si es necesario.

desarrollando

Instale las dependencias enumeradas actualmente:

inicializar
Para Mac (similar a Linux)
exportar PYTHONPATH=”/Aplicaciones/Binary Ninja.app/Contents/Resources/python:/Applications/Binary Ninja.app/Contents/Resources/python3”

Active el entorno virtual de python (haga esto antes de ejecutar otros comandos make):

$ .venv/bin/activar

Ejecute los siguientes comandos para seguir el estilo del código y la pelusa:

$ make format
$ make lint

Si tiene disponible una versión sin cabeza de ninja binario, puede ejecutar pruebas de código sin interacción de ninja binario; de lo contrario, solo se ejecutarán pruebas de ninja no binario:

$ make test

La adición de nuevas dependencias se puede hacer editando requirements.txt o requirements-dev.txt Luego ejecute los siguientes comandos en el entorno virtual:

$ pip install -r requirements-dev.txt -r requirements.txt

Uso (Nativo)

Se puede acceder a todas las funciones de MUI a través del menú contextual del botón derecho o la paleta de comandos. Las características comunes incluyen:

  • Encuentre la ruta a esta directiva/elimine la directiva de la lista de búsqueda
  • Evitar esta directiva/eliminar directiva de la lista para evitar
  • Agregar/editar ganchos personalizados
  • Resolver/Detener Manticore con Manticore

y los siguientes widgets están disponibles:

  • El widget de lista de estado muestra todos los estados activo/en espera/completado/error durante la ejecución de Manticore. Al hacer doble clic en un estado, navegará a la instrucción actual para ese estado y representará su árbol de procedencia en el widget de gráficos.
  • El widget de diagrama de estado muestra el árbol de procedencia de un estado específico seleccionado en el widget de lista. Tab Se puede usar para expandir/contraer el gráfico y hacer doble clic en cualquier nodo de estado para navegar a la instrucción actual para ese estado.
  • ejecutar diálogo cuando llame Solve with Manticore Pedido.Le permite configurar varias opciones de manticora y los cambios se guardarán en bndb documento.Algunas configuraciones de ejemplo incluyen el uso LD_PRELOAD y LD_LIBRARY_PATH Variables de entorno para ejecutar binarios con glibc personalizada.
  • Diálogo de gancho personalizado El diálogo de gancho personalizado puede usar Add/Edit Custom Hook Pedido. Le permite definir anzuelos de manticora personalizados en direcciones seleccionadas. También obtiene acceso completo a la API de Binary Ninja, que le permite agregar destacados, comentarios y más. Los ganchos definidos se pueden eliminar configurando el campo de entrada de código en blanco.

uso (EVM)

El soporte de EVM es actualmente un poco limitado. MUI EVM solo admite Herramientas CLI de ManticoreLos comandos disponibles incluyen:

  • Cargue el contrato de Ethereum
  • Resolver/Detener Manticore con Manticore

e implementó las siguientes vistas:

  • Diálogo de ejecución de EVM cuando llama Solve with Manticore Pedido.Le permite configurar varias opciones de manticora y los cambios se guardarán en bndb documento.
  • Ejecución de informes La página Informes muestra los resultados de una ejecución de manticora. Muestra todos los archivos generados con la interfaz de usuario de Binary Ninja.

LEER  Herramienta de análisis de código estático basada en Elastic Search

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba