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.8k1985天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Tai-e

test java maven-central codecov DOI

✨新闻

  • 发布 v0.5.4:
    • Tai-e 附带了一个新前端,能将 Java 程序更快、更可靠地转换为 Tai-e IR。
    • 通过与指针分析集成的 PacDroid 驱动插件,支持 Android 应用分析。
    • 通过 Spring 分析插件,支持 Spring DI 和 WEC 分析。
  • 我们的论文《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 录用。该工作展示了 Tai-e 在 Android 分析中的新能力,为应用安全分析提供了一种简单有效的方法。该工作荣获 最佳工件奖🏅。
  • 我们的论文《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 提供以下主要分析组件(更多分析正在开发中):

  • 强大的指针分析框架
    • 即时调用图构建
    • 多种经典和先进的堆抽象及上下文敏感技术
    • 可扩展的分析插件系统(方便开发和添加与指针分析交互的新分析)
  • 可配置的安全分析
    • 污点分析,可配置源、汇、污点传播和消毒器
    • 检测各种信息泄露和注入漏洞
    • 多种精度与效率权衡(受益于指针分析框架)
  • 多种基础/实用分析
    • 基础分析,例如反射分析和异常分析
    • 现代语言特性分析,例如 Lambda 和方法引用分析、invokedynamic 分析
    • 实用工具,如分析计时器、约束检查器(用于调试)和各种图导出工具
  • 控制/数据流分析框架
    • 控制流图构建
    • 经典数据流分析,例如活跃变量分析、常量传播
    • 你自己的数据流分析
  • 类似 SpotBugs 的缺陷检测系统
    • 缺陷检测器,例如空指针检测器、不正确的 clone() 检测器
    • 你自己的缺陷检测器

Tai-e 使用 Java 开发,可在 Windows、Linux 和 macOS 等主流操作系统上运行。

出于对开发者的尊重,我们希望你在研究工作中 请引用 ISSTA 2023 论文,该论文描述了 Tai-e 框架:

Tian Tan 和 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 Releases 下载发行版 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 项目中。我们同时维护稳定版和最新版 Tai-e,以下是 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。 如果你需要特定稳定版本的文档,请参考文档索引。 此外,文档也包含在仓库中并与源代码一同维护。 你可以通过 docs/en 目录(从 index.adoc 开始)访问特定版本 Tai-e 的参考文档(AsciiDoc 格式)。 这样你可以获取 Tai-e 的版本特定文档。

除了参考文档,Tai-e 的 Javadocs 也作为有用的参考资源提供。

变更日志

由于我们正在积极开发和更新 Tai-e,因此我们在 CHANGELOG 中记录了显著的更改,特别是新功能和破坏性变更。 如果你在更新 Tai-e 后发现任何问题,可以查看 CHANGELOG 以获取有用信息。

Tai-e 练习题

此外,我们还开发了Tai-e 教育版,其中精心设计了八个编程练习题,用于系统地训练学习者实现各种静态分析技术来分析真实 Java 程序。 教育版与 Tai-e 共享大量代码,因此完成这些练习题是熟悉 Tai-e 的好方法。

下载工具