Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Tai-e — JavaおよびAndroid向けの、学習/使用が容易な静的解析フレームワーク | Kitploit
ツール/GitHubGitHub/pascal-lab/tai-e
Androidセキュリティ静的分析脆弱性分析コード分析学習と教育
GitHubpascal-lab/tai-e

Tai-e

JavaおよびAndroid向けの、学習/使用が容易な静的解析フレームワーク

リポジトリを見る
1.8k19834日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

Tai-e

test java maven-central codecov DOI

✨ニュース

  • リリース v0.5.4:
    • Tai-e は新しいフロントエンドを搭載し、Java プログラムから Tai-e IR への変換をより高速かつ信頼性の高いものにしました。
    • Android アプリ分析は、ポインター分析と統合された PacDroid 駆動のプラグインを通じてサポートされます。
    • Spring DI および WEC 分析は、Spring 分析プラグインを通じてサポートされます。
  • 論文 "Two Approaches to Fast Bytecode Frontend for Static Analysis" が OOPSLA'25 に採択されました。この論文は、Tai-e の新しいバイトコードフロントエンドを紹介しており、既存のフロントエンドよりも大幅に高速で信頼性が高いものです。
  • 論文 "Pointer Analysis for Database-Backed Applications" が PLDI'25 に採択されました。この論文は、Tai-e 上で開発された Java データベースバックエンドアプリケーション向けのエンドツーエンドのポインター分析について説明しています。
  • 論文 "PacDroid: A Pointer-Analysis-Centric Framework for Security Vulnerabilities in Android Apps" が ICSE'25 に採択されました。この研究は、Android 分析における Tai-e の新たな能力を示し、アプリのセキュリティ分析にシンプルかつ効果的なアプローチを提供します。この研究は 最優秀アーティファクト賞🏅 を受賞しました。
  • 論文 "Bridge the Islands: Pointer Analysis for Microservice Systems" が ISSTA'25 に採択されました。この論文は、Tai-e 上で開発された Java マイクロサービスシステム向けの初のポインター分析について説明しています。
  • 論文 "Interactive Cross-Language Pointer Analysis for Resolving Native Code in Java Programs" が ICSE'25 に採択されました。これは Java と C の間での初の言語横断ポインター分析です。この研究は 優秀論文賞🏅 を受賞しました。
  • 論文 "Context Sensitivity without Context: A Cut-Shortcut Approach to Fast and Precise Pointer Analysis" が PLDI'23 に採択されました。これは Tai-e 上で開発された最初の発表済み研究です。
  • 論文 "Tai-e: A Developer-Friendly Static Analysis Framework for Java by Harnessing the Good Designs of Classics" が ISSTA'23 に採択されました。この論文は、Tai-e の主要コンポーネントの設計について説明しています。

目次

  • Tai-e とは?
  • 実行可能な Tai-e の入手方法
  • プロジェクトに Tai-e を組み込む方法
    • 安定版
    • 最新版
  • ドキュメント
    • リファレンスドキュメント
    • 変更履歴
  • Tai-e 演習課題

Tai-e とは?

Tai-e(中国語:太阿、発音:[ˈtaɪə:])は、Java 向けの新しい静的解析フレームワークです(詳細は ISSTA 2023 論文 をご覧ください)。このフレームワークは、私たちが提案した新しい設計と、Soot、WALA、Doop、SpotBugs といった古典的なフレームワークの設計から、おそらく「最良」のものを採用しています。Tai-e は学びやすく、使いやすく、効率的で、拡張性が高く、その上で新しい解析を容易に開発できます。

現在、Tai-e は以下の主要な解析コンポーネントを提供しています(さらに多くの解析が追加予定です)。

  • 強力なポインター分析フレームワーク
    • オンザフライのコールグラフ構築
    • ポインター分析のためのヒープ抽象化とコンテキスト感度における、さまざまな古典的および先進的な手法
    • 拡張可能な解析プラグインシステム(ポインター分析と連携する新しい解析を便利に開発・追加可能)
  • 設定可能なセキュリティ分析
    • ソース、シンク、汚染伝播、サニタイザーを設定可能な汚染分析
    • さまざまな情報漏洩やインジェクション脆弱性の検出
    • 精度と効率のさまざまなトレードオフ(ポインター分析フレームワークの恩恵)
  • さまざまな基本/ユーティリティ解析
    • 基本解析(例:リフレクション解析、例外解析)
    • 最新の言語機能解析(例:ラムダ・メソッド参照解析、invokedynamic 解析)
    • 分析タイマー、制約チェッカー(デバッグ用)、各種グラフダンパーなどのユーティリティツール
  • 制御/データフロー解析フレームワーク
    • 制御フローグラフの構築
    • 古典的なデータフロー解析(例:生存変数解析、定数伝播)
    • 独自のデータフロー解析
  • SpotBugs に似たバグ検出システム
    • バグ検出器(例:ヌルポインタ検出器、不正確な clone() 検出器)
    • 独自のバグ検出器

Tai-e は Java で開発されており、Windows、Linux、macOS を含む主要なオペレーティングシステムで動作します。

開発者への礼儀として、研究で Tai-e フレームワークを使用する際には、ISSTA 2023 の論文を 引用 していただくようお願いいたします(CITATION.bib をご参照ください)。

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

実行可能な Tai-e の入手方法

推奨される方法は、GitHub リリース から配布 ZIP をダウンロードすることです。ZIP には、Tai-e、すべての実行時依存関係、オフラインドキュメント、および Windows、Linux、macOS 用の起動スクリプトが含まれています。

または、ソースコードから最新の Tai-e を自分でビルドすることもできます。これは Gradle で簡単に行えます(システムに Java 17(またはそれ以上)がインストールされていることを確認してください)。

root@kitploit:~
./gradlew distZip

配布 ZIP は tai-e/build/distributions/ に生成されます。展開後、起動スクリプトで Tai-e を実行します。

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

古いリリースやスクリプトとの互換性のため、Tai-e は従来のオールインワン JAR も引き続き提供しています。

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

プロジェクトに Tai-e を組み込む方法

Tai-e はスタンドアロンツールとして設計されていますが、依存関係としてプロジェクトに組み込むことも可能です。Maven リポジトリで公開されているため、Gradle や Maven などのビルドツールを使用して Java プロジェクトに簡単に統合できます。安定版と最新版の両方を管理しており、以下に Gradle および Maven スクリプト形式の対応する座標を示します。

安定版

Gradle の場合:

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

Maven の場合:

root@kitploit:~

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

最新版

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

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>

これらの座標を Gradle または Maven スクリプトで使用して、希望するバージョンの Tai-e をプロジェクトに組み込むことができます。

ドキュメント

リファレンスドキュメント

Tai-e の詳細情報はリファレンスドキュメントに記載されており、IntelliJ IDEA でのセットアップ、コマンドラインオプション、新しい解析の開発など、さまざまな側面をカバーしています。

上記のリファレンスドキュメントは Tai-e の 最新版 に関するものであることに注意してください。特定の安定版のドキュメントが必要な場合は、ドキュメントインデックス を参照してください。また、ドキュメントはリポジトリ内に含まれており、ソースコードとともに管理されています。特定のバージョンの Tai-e のリファレンスドキュメント(AsciiDoc 形式)にアクセスするには、docs/en ディレクトリを参照し、index.adoc から始めてください。これにより、Tai-e のバージョン固有のドキュメントにアクセスできます。

リファレンスドキュメントに加えて、Tai-e の Javadoc も便利なリファレンスリソースとして利用できます。

変更履歴

Tai-e は活発に開発・更新されているため、特に新機能や互換性を損なう変更など、重要な変更を CHANGELOG に記録しています。Tai-e の更新後に問題が発生した場合は、CHANGELOG を確認すると役立つ情報が見つかるかもしれません。

Tai-e 演習課題

さらに、Tai-e の教育版も開発しており、実際の Java プログラムを解析するためのさまざまな静的解析手法を実装する学習者を体系的にトレーニングするために、8 つのプログラミング課題が慎重に設計されています。教育版は Tai-e と大量のコードを共有しているため、課題に取り組むことは Tai-e に慣れる良い方法です。

ツールをダウンロード