Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Tai-e — Java 및 Android를 위한 배우기/사용하기 쉬운 정적 분석 프레임워크 | Kitploit
도구/GitHubGitHub/pascal-lab/tai-e
Android SecurityStatic AnalysisVulnerability AnalysisCode AnalysisLearning & Education
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의 새로운 기능을 보여주며, 앱 보안 분석을 위한 간단하면서도 효과적인 접근 방식을 제공합니다. 이 연구는 **최우수 아티팩트 상(Best Artifact Award)**🏅을 수상했습니다.
  • 저희 논문 "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 간의 최초의 교차 언어 포인터 분석입니다. 이 연구는 **우수 논문상(Distinguished Paper Award)**🏅을 수상했습니다.
  • 저희 논문 "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 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 프로젝트에 쉽게 통합할 수 있습니다. 안정 버전과 최신 버전 모두 유지 관리하며, 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의 Javadocs도 유용한 참조 자료로 제공됩니다.

변경 로그

Tai-e는 활발히 개발 및 업데이트되고 있으므로, 주요 변경 사항, 특히 새로운 기능과 호환성에 영향을 주는 변경 사항을 CHANGELOG에 기록하고 있습니다. Tai-e 업데이트 후 문제가 발생하면 CHANGELOG에서 유용한 정보를 확인할 수 있습니다.

Tai-e 과제

또한, 실제 Java 프로그램을 분석하기 위해 다양한 정적 분석 기술을 구현하는 방법을 체계적으로 학습할 수 있도록 8개의 프로그래밍 과제가 설계된 교육용 버전의 Tai-e를 개발했습니다. 교육용 버전은 Tai-e와 많은 코드를 공유하므로, 과제를 수행하는 것이 Tai-e에 익숙해지는 좋은 방법이 될 것입니다.

도구 다운로드