Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tai-e — Ein einfach zu erlernendes/verwendendes statisches Analyse-Framework für Java und Android | Kitploit
Tools/GitHubGitHub/pascal-lab/tai-e
Android-SicherheitStatische AnalyseSchwachstellenanalyseCode-AnalyseLernen & Bildung
GitHubpascal-lab/tai-e

Tai-e

Ein einfach zu erlernendes/verwendendes statisches Analyse-Framework für Java und Android

Repository anzeigen
1.8k1983vor 4 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

Tai-e

test java maven-central codecov DOI

✨Neuigkeiten

  • Version v0.5.4:
    • Tai-e wird mit einem neuen Frontend ausgeliefert, das eine schnellere und zuverlässigere Konvertierung von Java-Programmen in Tai-e-IR ermöglicht.
    • Die Analyse von Android-Apps wird durch ein PacDroid-betriebenes Plugin unterstützt, das in die Pointer-Analyse integriert ist.
    • Spring-DI- und WEC-Analyse wird durch das Spring-Analyse-Plugin unterstützt.
  • Unser Paper "Two Approaches to Fast Bytecode Frontend for Static Analysis" wurde auf der OOPSLA'25 angenommen. Dieses Paper stellt das neue Bytecode-Frontend von Tai-e vor, das deutlich schneller und zuverlässiger ist als bestehende Frontends.
  • Unser Paper "Pointer Analysis for Database-Backed Applications" wurde auf der PLDI'25 angenommen. Dieses Paper beschreibt eine Ende-zu-Ende-Pointer-Analyse für Java-Datenbankanwendungen, die auf Tai-e aufbaut.
  • Unser Paper "PacDroid: A Pointer-Analysis-Centric Framework for Security Vulnerabilities in Android Apps" wurde auf der ICSE'25 angenommen. Diese Arbeit demonstriert Tai-e's neue Fähigkeiten in der Android-Analyse und bietet einen einfachen, aber effektiven Ansatz für die Sicherheitsanalyse von Apps. Diese Arbeit erhielt den Best Artifact Award🏅.
  • Unser Paper "Bridge the Islands: Pointer Analysis for Microservice Systems" wurde auf der ISSTA'25 angenommen. Dieses Paper beschreibt die erste Pointer-Analyse für Java-Mikroservicesysteme, die auf Tai-e aufbaut.
  • Unser Paper "Interactive Cross-Language Pointer Analysis for Resolving Native Code in Java Programs" wurde auf der ICSE'25 angenommen. Dies ist die erste sprachübergreifende Pointer-Analyse zwischen Java und C. Diese Arbeit gewann den Distinguished Paper Award🏅.
  • Unser Paper "Context Sensitivity without Context: A Cut-Shortcut Approach to Fast and Precise Pointer Analysis" wurde auf der PLDI'23 angenommen. Dies ist die erste veröffentlichte Forschungsarbeit, die auf Tai-e aufbaut.
  • Unser Paper "Tai-e: A Developer-Friendly Static Analysis Framework for Java by Harnessing the Good Designs of Classics" wurde auf der ISSTA'23 angenommen. Dieses Paper beschreibt die Entwürfe der Hauptkomponenten von Tai-e.

Inhaltsverzeichnis

  • Was ist Tai-e?
  • Wie erhalte ich ein ausführbares Tai-e?
  • Wie binde ich Tai-e in Ihr Projekt ein?
    • Stabile Version
    • Aktuellste Version
  • Dokumentation
    • Referenzdokumentation
    • Änderungsprotokoll
  • Tai-e-Aufgaben

Was ist Tai-e?

Tai-e (chinesisch: 太阿; Aussprache: [ˈtaɪə:]) ist ein neues statisches Analyseframework für Java (siehe dazu unser ISSTA 2023 Paper), das wohl die "besten" Entwürfe sowohl aus den von uns vorgeschlagenen neuartigen als auch aus denen klassischer Frameworks wie Soot, WALA, Doop und SpotBugs vereint. Tai-e ist leicht zu erlernen, einfach zu bedienen, effizient und hochgradig erweiterbar, sodass Sie problemlos neue Analysen darauf aufbauen können.

Derzeit bietet Tai-e die folgenden Hauptanalysekomponenten (und weitere Analysen sind in Arbeit):

  • Leistungsstarkes Pointer-Analyse-Framework
    • On-the-fly-Kallgraphenkonstruktion
    • Verschiedene klassische und fortgeschrittene Techniken der Heap-Abstraktion und Kontextsensitivität für die Pointer-Analyse
    • Erweiterbares Analyse-Plugin-System (ermöglicht die bequeme Entwicklung und Integration neuer Analysen, die mit der Pointer-Analyse interagieren)
  • Konfigurierbare Sicherheitsanalyse
    • Taint-Analyse, die die Konfiguration von Quellen, Senken, Taint-Transfers und Sanitizern ermöglicht
    • Erkennung verschiedener Informationslecks und Injection-Schwachstellen
    • Verschiedene Abwägungen zwischen Präzision und Effizienz (profitieren vom Pointer-Analyse-Framework)
  • Verschiedene grundlegende/Hilfsanalysen
    • Grundlegende Analysen, z.B. Reflexionsanalyse und Ausnahmebehandlungsanalyse
    • Analysen moderner Sprachfeatures, z.B. Lambda- und Methodenreferenzanalyse und invokedynamic-Analyse
    • Hilfsprogramme wie Analysetimer, Constraint-Checker (zum Debuggen) und verschiedene Graph-Dumper
  • Kontroll-/Datenfluss-Analyse-Framework
    • Kontrollflussgraph-Konstruktion
    • Klassische Datenflussanalysen, z.B. Lebendige-Variablen-Analyse, Konstantenpropagation
    • Ihre Datenflussanalysen
  • SpotBugs-ähnliches Fehlererkennungssystem
    • Fehlerdetektoren, z.B. Nullzeigerdetektor, falscher clone()-Detektor
    • Ihre Fehlerdetektoren

Tai-e wird in Java entwickelt und kann auf gängigen Betriebssystemen wie Windows, Linux und macOS ausgeführt werden.

Als Höflichkeit gegenüber den Entwicklern erwarten wir, dass Sie in Ihrer Forschungsarbeit das Paper aus der ISSTA 2023, das das Tai-e-Framework beschreibt, zitieren:

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

Wie erhalte ich ein ausführbares Tai-e?

Die empfohlene Methode ist das Herunterladen des Distributions-ZIPs von GitHub Releases. Das ZIP enthält Tai-e, alle Laufzeitabhängigkeiten, die Offline-Dokumentation sowie Startskripte für Windows, Linux und macOS.

Alternativ können Sie das aktuellste Tai-e selbst aus dem Quellcode erstellen. Dies kann einfach über Gradle erfolgen (stellen Sie sicher, dass Java 17 (oder höher) auf Ihrem System verfügbar ist):

root@kitploit:~
./gradlew distZip

Das Distributions-ZIP wird in tai-e/build/distributions/ erstellt. Nach dem Entpacken führen Sie Tai-e über das Startskript aus:

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

Aus Kompatibilitätsgründen mit älteren Versionen und Skripten bietet Tai-e weiterhin ein altes All-in-One-JAR:

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

Wie binde ich Tai-e in Ihr Projekt ein?

Tai-e ist als eigenständiges Werkzeug konzipiert, Sie haben aber auch die Möglichkeit, es als Abhängigkeit in Ihr Projekt einzubinden. Es ist auf Maven-Repositories verfügbar, sodass Sie es einfach mit Build-Tools wie Gradle und Maven in Ihre Java-Projekte integrieren können. Wir pflegen sowohl stabile als auch aktuelle Versionen von Tai-e; hier sind die entsprechenden Koordinaten in Gradle- und Maven-Skriptformaten:

Stabile Version

Für Gradle:

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

Für Maven:

root@kitploit:~

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

Aktuellste Version

Für 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")
}

Für 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>

Sie können diese Koordinaten in Ihren Gradle- oder Maven-Skripten verwenden, um die gewünschte Version von Tai-e in Ihr Projekt einzubinden.

Dokumentation

Referenzdokumentation

Wir haben detaillierte Informationen zu Tai-e in der Referenzdokumentation bereitgestellt, die verschiedene Aspekte abdeckt, wie z.B. Einrichtung in IntelliJ IDEA, Befehlszeilenoptionen und Entwicklung neuer Analysen.

Bitte beachten Sie, dass sich die oben genannte Referenzdokumentation auf die aktuellste Version von Tai-e bezieht. Wenn Sie die Dokumentation für eine bestimmte stabile Version benötigen, konsultieren Sie bitte den Dokumentationsindex. Darüber hinaus ist die Dokumentation im Repository enthalten und wird zusammen mit dem Quellcode gepflegt. Sie können auf die Referenzdokumentation für eine bestimmte Version von Tai-e (im AsciiDoc-Format) zugreifen, indem Sie das docs/en-Verzeichnis erkunden, beginnend mit index.adoc. So erhalten Sie Zugriff auf versionsspezifische Dokumentation für Tai-e.

Zusätzlich zur Referenzdokumentation sind Javadocs für Tai-e als nützliche Referenzquelle verfügbar.

Änderungsprotokoll

Da wir Tai-e aktiv weiterentwickeln und aktualisieren, dokumentieren wir die wichtigsten Änderungen, insbesondere neue Funktionen und breaking changes, im CHANGELOG. Wenn Sie nach einem Update von Tai-e auf ein Problem stoßen, können Sie vielleicht im CHANGELOG nützliche Informationen finden.

Tai-e-Aufgaben

Darüber hinaus haben wir eine pädagogische Version von Tai-e entwickelt, die acht Programmieraufgaben beinhaltet, die sorgfältig darauf ausgelegt sind, Lernende systematisch zu schulen, verschiedene statische Analysetechniken zur Analyse realer Java-Programme zu implementieren. Die pädagogische Version teilt einen großen Teil des Codes mit Tai-e, sodass die Bearbeitung der Aufgaben eine gute Möglichkeit ist, sich mit Tai-e vertraut zu machen.

Tool herunterladen