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
Tai-e — Un marco de análisis estático fácil de aprender/usar para Java y Android | Kitploit
Herramientas/GitHubGitHub/pascal-lab/tai-e
Seguridad AndroidAnálisis EstáticoAnálisis de VulnerabilidadesAnálisis de CódigoAprendizaje y Educación
GitHubpascal-lab/tai-e

Tai-e

Un marco de análisis estático fácil de aprender/usar para Java y Android

Ver Repositorio
1.8k1983hace 4 díasRevisado por Kitploit

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
Sitio web

Tai-e

test java maven-central codecov DOI

✨Noticias

  • Lanzamiento v0.5.4:
    • Tai-e incluye un nuevo frontend que proporciona una conversión más rápida y confiable de programas Java a IR de Tai-e.
    • Se admite el análisis de aplicaciones Android a través de un complemento basado en PacDroid integrado con análisis de punteros.
    • Se admite el análisis de Spring DI y WEC a través del complemento de análisis de Spring.
  • Nuestro artículo "Two Approaches to Fast Bytecode Frontend for Static Analysis" ha sido aceptado en OOPSLA'25. Este artículo presenta el nuevo frontend de bytecode de Tai-e, que es significativamente más rápido y confiable que los frontends existentes.
  • Nuestro artículo "Pointer Analysis for Database-Backed Applications" ha sido aceptado en PLDI'25. Este artículo describe un análisis de punteros de extremo a extremo para aplicaciones Java con respaldo de base de datos desarrollado sobre Tai-e.
  • Nuestro artículo "PacDroid: A Pointer-Analysis-Centric Framework for Security Vulnerabilities in Android Apps" ha sido aceptado en ICSE'25. Este trabajo demuestra la nueva capacidad de Tai-e en análisis de Android, proporcionando un enfoque simple pero efectivo para el análisis de seguridad de aplicaciones. Este trabajo obtuvo el Best Artifact Award🏅.
  • Nuestro artículo "Bridge the Islands: Pointer Analysis for Microservice Systems" ha sido aceptado en ISSTA'25. Este artículo describe el primer análisis de punteros para sistemas de microservicios Java desarrollado sobre Tai-e.
  • Nuestro artículo "Interactive Cross-Language Pointer Analysis for Resolving Native Code in Java Programs" ha sido aceptado en ICSE'25. Este es el primer análisis de punteros entre lenguajes entre Java y C. Este trabajo ganó el Distinguished Paper Award🏅.
  • Nuestro artículo "Context Sensitivity without Context: A Cut-Shortcut Approach to Fast and Precise Pointer Analysis" ha sido aceptado en PLDI'23. Este es el primer trabajo de investigación publicado desarrollado sobre Tai-e.
  • Nuestro artículo "Tai-e: A Developer-Friendly Static Analysis Framework for Java by Harnessing the Good Designs of Classics" ha sido aceptado en ISSTA'23. Este artículo describe los diseños de los componentes principales de Tai-e.

Tabla de Contenidos

  • ¿Qué es Tai-e?
  • ¿Cómo Obtener Tai-e Ejecutable?
  • ¿Cómo Incluir Tai-e en tu Proyecto?
    • Versión Estable
    • Última Versión
  • Documentación
    • Documentación de Referencia
    • Registro de Cambios
  • Asignaciones de Tai-e

¿Qué es Tai-e?

Tai-e (chino: 太阿; pronunciación: [ˈtaɪə:]) es un nuevo marco de análisis estático para Java (consulte nuestro artículo de ISSTA 2023 para más detalles), que presenta los diseños "mejores" tanto de los novedosos que propusimos como de los marcos clásicos como Soot, WALA, Doop y SpotBugs. Tai-e es fácil de aprender, fácil de usar, eficiente y altamente extensible, lo que permite desarrollar fácilmente nuevos análisis sobre él.

Actualmente, Tai-e proporciona los siguientes componentes principales de análisis (y más análisis están en camino):

  • Potente marco de análisis de punteros
    • Construcción de grafo de llamadas sobre la marcha
    • Varias técnicas clásicas y avanzadas de abstracción de heap y sensibilidad al contexto para análisis de punteros
    • Sistema de complementos de análisis extensible (permite desarrollar y agregar convenientemente nuevos análisis que interactúan con el análisis de punteros)
  • Análisis de seguridad configurable
    • Análisis de contaminación, que permite configurar fuentes, sumideros, transferencias de contaminación y sanitizadores
    • Detección de diversas fugas de información y vulnerabilidades de inyección
    • Varios compromisos entre precisión y eficiencia (beneficiándose del marco de análisis de punteros)
  • Varios análisis fundamentales / de utilidad
    • Análisis fundamentales, por ejemplo, análisis de reflexión y análisis de excepciones
    • Análisis de características modernas del lenguaje, por ejemplo, análisis de lambdas y referencias a métodos, y análisis de invokedynamic
    • Herramientas de utilidad como temporizador de análisis, verificador de restricciones (para depuración) y varios volcadores de grafos
  • Marco de análisis de flujo de control/datos
    • Construcción de grafos de flujo de control
    • Análisis clásicos de flujo de datos, por ejemplo, análisis de variables vivas, propagación de constantes
    • Tus análisis de flujo de datos
  • Sistema de detección de bugs similar a SpotBugs
    • Detectores de bugs, por ejemplo, detector de puntero nulo, detector de clone() incorrecto
    • Tus detectores de bugs

Tai-e está desarrollado en Java y puede ejecutarse en los principales sistemas operativos, incluidos Windows, Linux y macOS.

Como cortesía para los desarrolladores, esperamos que por favor cite el artículo de ISSTA 2023 que describe el marco Tai-e en tu trabajo de investigación:

Tian Tan and Yue Li. 2023. Tai-e: A Developer-Friendly Static Analysis Framework for Java by Harnessing the Good Designs of Classics. In Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA '23), July 17–21, 2023, Seattle, WA, USA (pdf, bibtex).

¿Cómo Obtener Tai-e Ejecutable?

La forma recomendada es descargar el ZIP de distribución desde GitHub Releases. El ZIP contiene Tai-e, todas las dependencias de ejecución, documentación fuera de línea y scripts de inicio para Windows, Linux y macOS.

Alternativamente, puedes compilar la última versión de Tai-e tú mismo desde el código fuente. Esto se puede lograr simplemente mediante Gradle (asegúrate de que Java 17 (o una versión superior) esté disponible en tu sistema):

root@kitploit:~
./gradlew distZip

El ZIP de distribución se generará en tai-e/build/distributions/. Después de extraerlo, ejecuta Tai-e mediante el script de inicio:

root@kitploit:~
# en Linux/macOS
./tai-e-<version>/bin/tai-e -h
# en Windows
.\tai-e-<version>\bin\tai-e.bat -h

Para compatibilidad con versiones anteriores y scripts, Tai-e aún proporciona un JAR todo-en-uno heredado:

root@kitploit:~
./gradlew fatJar
java -jar build/tai-e-all-<version>.jar -h

¿Cómo Incluir Tai-e en tu Proyecto?

Tai-e está diseñado como una herramienta independiente, pero también tienes la opción de incluirlo en tu proyecto como dependencia. Está disponible en repositorios Maven, lo que te permite integrarlo fácilmente en tus proyectos Java utilizando herramientas de compilación como Gradle y Maven. Mantenemos tanto versiones estables como la última versión de Tai-e, y aquí están las coordenadas correspondientes en formatos de script de Gradle y Maven:

Versión Estable

Para Gradle:

root@kitploit:~
dependencies {
    implementation("net.pascal-lab:tai-e:0.5.4")
}

Para Maven:

root@kitploit:~

<dependencies>
    <dependency>
        <groupId>net.pascal-lab</groupId>
        <artifactId>tai-e</artifactId>
        <version>0.5.4</version>
    </dependency>
</dependencies>

Última Versión

Para Gradle:

root@kitploit:~
repositories {
    mavenCentral()
    maven { url = uri("https://central.sonatype.com/repository/maven-snapshots/") }
}

dependencies {
    implementation("net.pascal-lab:tai-e:0.5.5-SNAPSHOT")
}

Para Maven:

root@kitploit:~
<repositories>
    <repository>
        <id>snapshots</id>
        <name>Servidor de snapshots de Sonatype</name>
        <url>https://central.sonatype.com/repository/maven-snapshots/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>net.pascal-lab</groupId>
        <artifactId>tai-e</artifactId>
        <version>0.5.5-SNAPSHOT</version>
    </dependency>
</dependencies>

Puedes usar estas coordenadas en tus scripts de Gradle o Maven para incluir la versión deseada de Tai-e en tu proyecto.

Documentación

Documentación de Referencia

Hemos proporcionado información detallada de Tai-e en la Documentación de Referencia, que cubre varios aspectos como Configuración en IntelliJ IDEA, Opciones de Línea de Comandos y Desarrollo de Nuevos Análisis.

Ten en cuenta que la documentación de referencia mencionada anteriormente corresponde a la última versión de Tai-e. Si necesitas documentación para una versión estable específica, consulta el Índice de Documentación. Además, la documentación está incluida dentro del repositorio y se mantiene junto con el código fuente. Puedes acceder a la documentación de referencia para una versión particular de Tai-e (en formato AsciiDoc) explorando el directorio docs/en, comenzando desde index.adoc. Esto te permite acceder a la documentación específica de la versión de Tai-e.

Además de la documentación de referencia, Javadocs para Tai-e también están disponibles como un recurso de referencia útil.

Registro de Cambios

Dado que estamos desarrollando y actualizando activamente Tai-e, registramos los cambios notables que realizamos, especialmente las nuevas funciones y los cambios importantes, en CHANGELOG. Si encuentras algo incorrecto después de actualizar Tai-e, quizás puedas consultar CHANGELOG para obtener información útil.

Asignaciones de Tai-e

Además, hemos desarrollado una versión educativa de Tai-e donde se han diseñado cuidadosamente ocho asignaciones de programación para entrenar sistemáticamente a los aprendices en la implementación de diversas técnicas de análisis estático para analizar programas Java reales. La versión educativa comparte una gran cantidad de código con Tai-e, por lo que realizar las asignaciones sería una buena manera de familiarizarse con Tai-e.

Descargar herramienta