Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Tai-e — Un framework di analisi statica facile da imparare/usare per Java e Android. | Kitploit
Strumenti/GitHubGitHub/pascal-lab/tai-e
Sicurezza AndroidAnalisi StaticaAnalisi delle VulnerabilitàAnalisi del CodiceApprendimento e Formazione
GitHubpascal-lab/tai-e

Tai-e

Un framework di analisi statica facile da imparare/usare per Java e Android.

Vedi Repository
1.8k19834 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

Tai-e

test java maven-central codecov DOI

✨Novità

  • Rilascio v0.5.4:
    • Tai-e è dotato di un nuovo frontend, che fornisce una conversione più rapida e affidabile da programmi Java a IR Tai-e.
    • L'analisi di app Android è supportata tramite un plugin basato su PacDroid integrato con l'analisi dei puntatori.
    • L'analisi Spring DI e WEC è supportata tramite il plugin di analisi Spring.
  • Il nostro articolo "Two Approaches to Fast Bytecode Frontend for Static Analysis" è stato accettato da OOPSLA'25. Questo articolo presenta il nuovo frontend bytecode di Tai-e, significativamente più veloce e affidabile dei frontend esistenti.
  • Il nostro articolo "Pointer Analysis for Database-Backed Applications" è stato accettato da PLDI'25. Questo articolo descrive un'analisi dei puntatori end-to-end per applicazioni Java basate su database sviluppata su Tai-e.
  • Il nostro articolo "PacDroid: A Pointer-Analysis-Centric Framework for Security Vulnerabilities in Android Apps" è stato accettato da ICSE'25. Questo lavoro dimostra la nuova capacità di Tai-e nell'analisi Android, fornendo un approccio semplice ma efficace per l'analisi della sicurezza delle app. Questo lavoro ha ottenuto il Best Artifact Award🏅.
  • Il nostro articolo "Bridge the Islands: Pointer Analysis for Microservice Systems" è stato accettato da ISSTA'25. Questo articolo descrive la prima analisi dei puntatori per sistemi a microservizi Java sviluppata su Tai-e.
  • Il nostro articolo "Interactive Cross-Language Pointer Analysis for Resolving Native Code in Java Programs" è stato accettato da ICSE'25. Questa è la prima analisi dei puntatori cross-linguaggio tra Java e C. Questo lavoro ha vinto il Distinguished Paper Award🏅.
  • Il nostro articolo "Context Sensitivity without Context: A Cut-Shortcut Approach to Fast and Precise Pointer Analysis" è stato accettato da PLDI'23. Questo è il primo lavoro di ricerca pubblicato sviluppato su Tai-e.
  • Il nostro articolo "Tai-e: A Developer-Friendly Static Analysis Framework for Java by Harnessing the Good Designs of Classics" è stato accettato da ISSTA'23. Questo articolo descrive le progettazioni per i principali componenti di Tai-e.

Indice

  • Cos'è Tai-e?
  • Come ottenere Tai-e eseguibile?
  • Come includere Tai-e nel tuo progetto?
    • Versione stabile
    • Ultima versione
  • Documentazione
    • Documentazione di riferimento
    • Changelog
  • Esercitazioni di Tai-e

Cos'è Tai-e?

Tai-e (cinese: 太阿; pronuncia: [ˈtaɪə:]) è un nuovo framework di analisi statica per Java (consulta il nostro articolo ISSTA 2023 per i dettagli), che offre forse i migliori progetti sia da quelli nuovi da noi proposti sia da quelli di framework classici come Soot, WALA, Doop e SpotBugs. Tai-e è facile da imparare, facile da usare, efficiente e altamente estensibile, permettendoti di sviluppare facilmente nuove analisi su di esso.

Attualmente, Tai-e fornisce i seguenti principali componenti di analisi (e altre analisi sono in arrivo):

  • Potente framework di analisi dei puntatori
    • Costruzione on-the-fly del grafo delle chiamate
    • Varie tecniche classiche e avanzate di astrazione dell'heap e sensibilità al contesto per l'analisi dei puntatori
    • Sistema di plugin di analisi estensibile (consente di sviluppare e aggiungere comodamente nuove analisi che interagiscono con l'analisi dei puntatori)
  • Analisi della sicurezza configurabile
    • Analisi delle contaminazioni (taint analysis), che consente di configurare sorgenti, sink, trasferimenti di contaminazione e sanificatori
    • Rilevamento di varie perdite di informazioni e vulnerabilità di iniezione
    • Vari compromessi tra precisione ed efficienza (beneficio del framework di analisi dei puntatori)
  • Varie analisi fondamentali/di utilità
    • Analisi fondamentali, ad es. analisi della riflessione e analisi delle eccezioni
    • Analisi di funzionalità del linguaggio moderno, ad es. analisi di lambda e riferimenti a metodi, e analisi invokedynamic
    • Strumenti di utilità come timer di analisi, verificatore di vincoli (per debug) e vari dump di grafi
  • Framework di analisi del flusso di controllo/dati
    • Costruzione del grafo di flusso di controllo
    • Analisi classiche del flusso di dati, ad es. analisi delle variabili vive, propagazione delle costanti
    • Le tue analisi del flusso di dati
  • Sistema di rilevamento bug simile a SpotBugs
    • Rilevatori di bug, ad es. rilevatore di puntatori nulli, rilevatore di clone() errato
    • I tuoi rilevatori di bug

Tai-e è sviluppato in Java e può funzionare sui principali sistemi operativi tra cui Windows, Linux e macOS.

Come cortesia verso gli sviluppatori, ci aspettiamo che tu citi l'articolo di ISSTA 2023 che descrive il framework Tai-e nel tuo lavoro di ricerca:

Tian Tan e 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), 17–21 luglio 2023, Seattle, WA, USA (pdf, bibtex).

Come ottenere Tai-e eseguibile?

Il metodo consigliato è scaricare lo ZIP di distribuzione da GitHub Releases. Lo ZIP contiene Tai-e, tutte le dipendenze runtime, la documentazione offline e gli script di avvio per Windows, Linux e macOS.

In alternativa, puoi compilare tu stesso l'ultima versione di Tai-e dal codice sorgente. Ciò può essere fatto semplicemente tramite Gradle (assicurati che Java 17 (o versione superiore) sia disponibile sul tuo sistema):

root@kitploit:~
./gradlew distZip

Lo ZIP di distribuzione verrà generato in tai-e/build/distributions/. Dopo averlo estratto, esegui Tai-e tramite lo script di avvio:

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

Per compatibilità con versioni precedenti e script, Tai-e fornisce ancora un JAR legacy all-in-one:

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

Come includere Tai-e nel tuo progetto?

Tai-e è progettato come uno strumento standalone, ma hai anche la possibilità di includerlo nel tuo progetto come dipendenza. È disponibile sui repository Maven, permettendoti di integrarlo facilmente nei tuoi progetti Java utilizzando strumenti di build come Gradle e Maven. Manteniamo sia la versione stabile che l'ultima versione di Tai-e, e qui ci sono le coordinate corrispondenti nei formati di script Gradle e Maven:

Versione stabile

Per Gradle:

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

Per Maven:

root@kitploit:~

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

Ultima versione

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

Per 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>

Puoi utilizzare queste coordinate nei tuoi script Gradle o Maven per includere la versione desiderata di Tai-e nel tuo progetto.

Documentazione

Documentazione di riferimento

Abbiamo fornito informazioni dettagliate su Tai-e nella Documentazione di riferimento, che copre vari aspetti come Configurazione in IntelliJ IDEA, Opzioni da riga di comando e Sviluppo di una nuova analisi.

Tieni presente che la documentazione di riferimento menzionata sopra si riferisce all'ultima versione di Tai-e. Se hai bisogno della documentazione per una specifica versione stabile, consulta l'Indice della documentazione. Inoltre, la documentazione è inclusa nel repository e mantenuta insieme al codice sorgente. Puoi accedere alla documentazione di riferimento per una particolare versione di Tai-e (in formato AsciiDoc) esplorando la directory docs/en, partendo da index.adoc. Ciò ti consente di accedere alla documentazione specifica per versione di Tai-e.

Oltre alla documentazione di riferimento, sono disponibili anche i Javadoc per Tai-e come utile risorsa di riferimento.

Changelog

Poiché stiamo sviluppando e aggiornando attivamente Tai-e, registriamo le modifiche notevoli apportate, in particolare le nuove funzionalità e le modifiche sostanziali, in CHANGELOG. Se trovi qualcosa di sbagliato dopo aver aggiornato Tai-e, potresti controllare CHANGELOG per informazioni utili.

Esercitazioni di Tai-e

Inoltre, abbiamo sviluppato una versione educativa di Tai-e dove sono progettati con cura otto esercizi di programmazione per addestrare sistematicamente gli studenti a implementare varie tecniche di analisi statica per analizzare programmi Java reali. La versione educativa condivide una grande quantità di codice con Tai-e, quindi fare gli esercizi potrebbe essere un buon modo per familiarizzare con Tai-e.

Scarica lo strumento