Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
BinAbsInspector — Escáner de vulnerabilidades de binarios estático que utiliza interpretación abstracta sobre Ghidra Pcode. Detecta clases CWE como desbordamientos de búfer, use-after-free e inyección de comandos mediante ejecución simbólica con Z3. | Kitploit
Herramientas/GitHubGitHub/keensecuritylab/binabsinspector
Análisis EstáticoEscáneres de VulnerabilidadesIngeniería InversaFuzzingAnálisis de Binarios
GitHubkeensecuritylab/binabsinspector

BinAbsInspector

Escáner de vulnerabilidades de binarios estático que utiliza interpretación abstracta sobre Ghidra Pcode. Detecta clases CWE como desbordamientos de búfer, use-after-free e inyección de comandos mediante ejecución simbólica con Z3.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
1.7k2451hace 2 añosRevisado por Kitploit

¿Qué es BinAbsInspector?

BinAbsInspector (Binary Abstract Inspector) es un analizador estático para la ingeniería inversa automatizada y el escaneo de vulnerabilidades en binarios, que es un proyecto de investigación a largo plazo incubado en Keenlab. Está basado en interpretación abstracta con el soporte de Ghidra. Funciona sobre el Pcode de Ghidra en lugar de ensamblador. Actualmente soporta binarios en x86,x64, armv7 y aarch64.

Instalación

  • Instale Ghidra según la documentación de Ghidra
  • Instale Z3 (versión probada: 4.8.15)
  • Tenga en cuenta que generalmente hay dos partes para la biblioteca Z3: una es el paquete Java, la otra es la biblioteca nativa. El paquete Java ya está incluido en el directorio "/lib", pero sugerimos que lo reemplace con su propio paquete Java para la compatibilidad de versiones.
    • Para Windows, descargue un paquete precompilado desde aquí, extraiga el archivo zip y agregue una variable de entorno PATH apuntando a z3-${version}-win/bin
    • Para Linux, no se recomienda instalar con el gestor de paquetes, hay dos opciones:
      1. Puede descargar un paquete precompilado adecuado desde aquí, extraer el archivo zip y copiar z3-${version}-glibc-${version}/bin/*.so a /usr/local/lib/
      2. o puede compilar e instalar z3 según Building Z3 using make and GCC/Clang
    • Para MacOS, es similar a Linux.
  • Descargue el archivo zip de la extensión desde la página de lanzamiento
  • Instale la extensión según las Notas de extensión de Ghidra

Compilación

Compile la extensión usted mismo, si desea desarrollar una nueva funcionalidad, consulte la guía de desarrollo.

  • Instale Ghidra y Z3
  • Instale Gradle 7.x (versión probada: 7.4)
  • Obtenga el repositorio
  • Ejecute gradle buildExtension en la raíz del repositorio
  • La extensión se generará en dist/${GhidraVersion}_${date}_BinAbsInspector.zip

Uso

Puede ejecutar BinAbsInspector en modo headless, modo GUI, o con docker.

  • Con el modo headless de Ghidra.
root@kitploit:~
$GHIDRA_INSTALL_DIR/support/analyzeHeadless <projectPath> <projectName> -import <file> -postScript BinAbsInspector "@@<scriptParams>"

<projectPath> -- Ruta del proyecto Ghidra.
<projectName> -- Nombre del proyecto Ghidra.
<scriptParams> -- El argumento para nuestro analizador, proporciona las siguientes opciones:

  • Con la GUI de Ghidra

    1. Ejecute Ghidra e importe el binario objetivo en un proyecto
    2. Analice el binario con la configuración predeterminada
    3. Cuando el análisis haya terminado, abra Window -> Script Manager y busque BinAbsInspector.java
    4. Haga doble clic en la entrada BinAbsInspector.java, configure los parámetros en la ventana de configuración y haga clic en Aceptar
    5. Cuando el análisis haya terminado, puede ver los informes CWE en la ventana de la consola; al hacer doble clic en las direcciones del informe, puede saltar a la dirección correspondiente
  • Con Docker

root@kitploit:~
git clone [email protected]:KeenSecurityLab/BinAbsInspector.git
cd BinAbsInspector
docker build . -t bai
docker run -v $(pwd):/data/workspace bai "@@<script parameters>" -import <file>

Verificadores implementados

Hasta ahora, BinAbsInspector admite los siguientes verificadores:

  • CWE78 (Inyección de comandos del SO)
  • CWE119 (Desbordamiento de búfer (caso genérico))
  • CWE125 (Desbordamiento de búfer (lectura fuera de límites))
  • CWE134 (Uso de cadena de formato controlada externamente)
  • CWE190 (Desbordamiento o envoltura de enteros)
  • CWE367 (Tiempo de verificación contra tiempo de uso (TOCTOU))
  • CWE415 (Doble liberación)
  • CWE416 (Uso después de liberación)
  • CWE426 (Ruta de búsqueda no confiable)
  • CWE467 (Uso de sizeof() en un tipo puntero)
  • CWE476 (Desreferencia de puntero NULL)
  • CWE676 (Uso de función potencialmente peligrosa)
  • CWE787 (Desbordamiento de búfer (escritura fuera de límites))

Estructura del proyecto

La estructura de este proyecto es la siguiente; consulte los detalles técnicos o el artículo en versión china para más detalles.

root@kitploit:~
├── main
│   ├── java
│   │   └── com
│   │       └── bai
│   │           ├── checkers                       implementación de verificadores
│   │           ├── env
│   │           │   ├── funcs                      modelado de funciones
│   │           │   │   ├── externalfuncs          modelado de funciones externas
│   │           │   │   └── stdfuncs               modelado de std de cpp
│   │           │   └── region                     modelado de memoria
│   │           ├── solver                         módulo de análisis central y de grafos
│   │           └── util                           utilidades
│   └── resources
└── test

También puede compilar el javadoc con gradle javadoc; la documentación de la API se generará en ./build/docs/javadoc.

Agradecimientos

Empleamos Ghidra como nuestra base y con frecuencia aprovechamos JImmutable Collections para un mejor rendimiento.
Aquí nos gustaría agradecerles por su gran ayuda!

Descargar herramienta
ParámetroDescripción
[-K <kElement>]Límite de tamaño de KSet K
[-callStringK <callStringMaxLen>]Longitud máxima de la cadena de llamada K
[-Z3Timeout <timeout>]Tiempo de espera de Z3
[-timeout <timeout>]Tiempo de espera de análisis
[-entry <address>]Dirección de entrada
[-externalMap <file>]Configuración del modelo de funciones externas
[-json]Salida en formato json
[-disableZ3]Deshabilitar Z3
[-all]Habilitar todos los verificadores
[-debug]Habilitar salida de registro de depuración
[-check "<cweNo1>[;<cweNo2>...]"]Habilitar verificadores específicos