Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/pascal-lab/tai-e
Sécurité AndroidAnalyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeApprentissage et Éducation
GitHubpascal-lab/tai-e

Tai-e

Un framework d'analyse statique facile à apprendre et à utiliser pour Java et Android

Voir le dépôt
1.8k1983il y a 4 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Tai-e

test java maven-central codecov DOI

✨Actualités

  • Publication de la v0.5.4 :
    • Tai-e est livré avec un nouveau frontal, offrant une conversion plus rapide et plus fiable des programmes Java vers l'IR de Tai-e.
    • L'analyse des applications Android est prise en charge via un plugin basé sur PacDroid intégré à l'analyse de pointeurs.
    • L'analyse Spring DI et WEC est prise en charge via le plugin d'analyse Spring.
  • Notre article "Two Approaches to Fast Bytecode Frontend for Static Analysis" a été accepté à OOPSLA'25. Cet article présente le nouveau frontal bytecode de Tai-e, significativement plus rapide et plus fiable que les frontaux existants.
  • Notre article "Pointer Analysis for Database-Backed Applications" a été accepté à PLDI'25. Cet article décrit une analyse de pointeurs de bout en bout pour les applications Java avec base de données, développée sur Tai-e.
  • Notre article "PacDroid: A Pointer-Analysis-Centric Framework for Security Vulnerabilities in Android Apps" a été accepté à ICSE'25. Ce travail démontre la nouvelle capacité de Tai-e dans l'analyse Android, fournissant une approche simple mais efficace pour l'analyse de sécurité des applications. Ce travail a remporté le Best Artifact Award🏅.
  • Notre article "Bridge the Islands: Pointer Analysis for Microservice Systems" a été accepté à ISSTA'25. Cet article décrit la première analyse de pointeurs pour les systèmes de microservices Java développée sur Tai-e.
  • Notre article "Interactive Cross-Language Pointer Analysis for Resolving Native Code in Java Programs" a été accepté à ICSE'25. Il s'agit de la première analyse de pointeurs inter-langages entre Java et C. Ce travail a remporté le Distinguished Paper Award🏅.
  • Notre article "Context Sensitivity without Context: A Cut-Shortcut Approach to Fast and Precise Pointer Analysis" a été accepté à PLDI'23. Il s'agit du premier travail de recherche publié développé sur Tai-e.
  • Notre article "Tai-e: A Developer-Friendly Static Analysis Framework for Java by Harnessing the Good Designs of Classics" a été accepté à ISSTA'23. Cet article décrit les conceptions des principaux composants de Tai-e.

Table des matières

  • Qu'est-ce que Tai-e ?
  • Comment obtenir Tai-e exécutable ?
  • Comment inclure Tai-e dans votre projet ?
    • Version stable
    • Version la plus récente
  • Documentation
    • Documentation de référence
    • Changelog
  • Travaux pratiques Tai-e

Qu'est-ce que Tai-e ?

Tai-e (chinois : 太阿 ; prononciation : [ˈtaɪə:]) est un nouveau framework d'analyse statique pour Java (voir notre article ISSTA 2023 pour plus de détails), qui propose sans doute les "meilleurs" designs, à la fois issus de nos propositions originales et de ceux des frameworks classiques comme Soot, WALA, Doop et SpotBugs. Tai-e est facile à apprendre, facile à utiliser, efficace et hautement extensible, vous permettant de développer facilement de nouvelles analyses sur sa base.

Actuellement, Tai-e fournit les principaux composants d'analyse suivants (et d'autres analyses sont à venir) :

  • Framework d'analyse de pointeurs puissant
    • Construction de graphe d'appels à la volée
    • Diverses techniques classiques et avancées d'abstraction du tas et de sensibilité au contexte pour l'analyse de pointeurs
    • Système de plugins d'analyse extensible (permet de développer et d'ajouter facilement de nouvelles analyses qui interagissent avec l'analyse de pointeurs)
  • Analyse de sécurité configurable
    • Analyse de flux de données (taint analysis), qui permet de configurer les sources, les puits, les transferts de contamination et les sanitizers
    • Détection de diverses fuites d'informations et vulnérabilités d'injection
    • Divers compromis entre précision et efficacité (bénéficient du framework d'analyse de pointeurs)
  • Diverses analyses fondamentales/utilitaires
    • Analyses fondamentales, par exemple l'analyse de réflexion et l'analyse d'exceptions
    • Analyses de fonctionnalités de langage modernes, par exemple l'analyse de lambda et de références de méthodes, et l'analyse invokedynamic
    • Outils utilitaires comme le minuteur d'analyse, le vérificateur de contraintes (pour le débogage), et divers dumpers de graphes
  • Framework d'analyse de flot de contrôle/données
    • Construction de graphe de flot de contrôle
    • Analyses de flot de données classiques, par exemple l'analyse de variables vivantes, la propagation de constantes
    • Vos analyses de flot de données
  • Système de détection de bugs à la SpotBugs
    • Détecteurs de bugs, par exemple détecteur de pointeur nul, détecteur de clone() incorrect
    • Vos détecteurs de bugs

Tai-e est développé en Java et peut fonctionner sur les principaux systèmes d'exploitation, y compris Windows, Linux et macOS.

Par courtoisie envers les développeurs, nous vous demandons de bien vouloir citer l'article d'ISSTA 2023 décrivant le framework Tai-e dans vos travaux de recherche :

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).

Comment obtenir Tai-e exécutable ?

La méthode recommandée est de télécharger le ZIP de distribution depuis GitHub Releases. Le ZIP contient Tai-e, toutes les dépendances d'exécution, la documentation hors ligne et les scripts de démarrage pour Windows, Linux et macOS.

Alternativement, vous pouvez construire vous-même la dernière version de Tai-e à partir du code source. Cela peut être simplement accompli via Gradle (assurez-vous que Java 17 (ou une version ultérieure) est disponible sur votre système) :

root@kitploit:~
./gradlew distZip

Le ZIP de distribution sera généré dans tai-e/build/distributions/. Après l'avoir extrait, exécutez Tai-e via le script de démarrage :

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

Pour la compatibilité avec les anciennes versions et scripts, Tai-e fournit toujours un JAR tout-en-un hérité :

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

Comment inclure Tai-e dans votre projet ?

Tai-e est conçu comme un outil autonome, mais vous avez également la possibilité de l'inclure dans votre projet en tant que dépendance. Il est disponible sur les dépôts Maven, ce qui vous permet de l'intégrer facilement dans vos projets Java à l'aide d'outils de construction tels que Gradle et Maven. Nous maintenons à la fois les versions stable et la plus récente de Tai-e, et voici les coordonnées correspondantes dans les formats de script Gradle et Maven :

Version stable

Pour Gradle :

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

Pour Maven :

root@kitploit:~
<dependencies>
    <dependency>
        <groupId>net.pascal-lab</groupId>
        <artifactId>tai-e</artifactId>
        <version>0.5.4</version>
    </dependency>
</dependencies>

Version la plus récente

Pour 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")
}

Pour Maven :

root@kitploit:~
<repositories>
    <repository>
        <id>snapshots</id>
        <name>Sonatype snapshot server</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>

Vous pouvez utiliser ces coordonnées dans vos scripts Gradle ou Maven pour inclure la version souhaitée de Tai-e dans votre projet.

Documentation

Documentation de référence

Nous avons fourni des informations détaillées sur Tai-e dans la Documentation de référence, qui couvre divers aspects tels que Configuration dans IntelliJ IDEA, Options en ligne de commande, et Développement de nouvelles analyses.

Veuillez noter que la documentation de référence mentionnée ci-dessus concerne la version la plus récente de Tai-e. Si vous avez besoin de documentation pour une version stable spécifique, veuillez vous référer à l'Index de la documentation. De plus, la documentation est incluse dans le dépôt et maintenue avec le code source. Vous pouvez accéder à la documentation de référence pour une version particulière de Tai-e (au format AsciiDoc) en explorant le répertoire docs/en, en commençant par index.adoc. Cela vous permet d'accéder à la documentation spécifique à une version de Tai-e.

En plus de la documentation de référence, les Javadocs pour Tai-e sont également disponibles comme ressource de référence utile.

Changelog

Comme nous développons et mettons à jour Tai-e activement, nous enregistrons les changements notables que nous avons effectués, en particulier les nouvelles fonctionnalités et les changements cassants, dans CHANGELOG. Si vous trouvez quelque chose qui ne va pas après avoir mis à jour Tai-e, vous pouvez consulter CHANGELOG pour des informations utiles.

Travaux pratiques Tai-e

De plus, nous avons développé une version éducative de Tai-e où huit travaux pratiques sont soigneusement conçus pour former systématiquement les apprenants à implémenter diverses techniques d'analyse statique pour analyser des programmes Java réels. La version éducative partage une grande quantité de code avec Tai-e, donc faire les travaux pratiques serait un bon moyen de se familiariser avec Tai-e.

Télécharger l’outil