static-analysis

Analyze LLVM IR for dataflow, pointer aliasing, and taint propagation.

868|100|Updated Jan 10, 2022
One-click install
npx skills add https://github.com/gmh5225/awesome-llvm-security --skill static-analysis-gmh5225
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: static-analysis
Source: https://github.com/gmh5225/awesome-llvm-security/tree/main/.claude/skills/static-analysis
Command: npx skills add https://github.com/gmh5225/awesome-llvm-security --skill static-analysis-gmh5225

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill provides a structured framework for performing LLVM-based static analysis to uncover dataflow issues, pointer aliasing, taint propagation, and verification gaps in code, enabling researchers and engineers to build more secure and reliable software.

Core Features & Use Cases

  • Dataflow Analysis: forward and backward analyses, may/must analyses to reason about value flow.
  • Pointer Analysis: flow-insensitive/sensitive and context-sensitive analyses to approximate aliases.
  • Taint Analysis: source-sink modeling to detect untrusted data paths through the program.
  • Dependency Analysis: build data dependency graphs and perform program slicing.
  • Integration with LLVM: leverage built-in analyses like DominatorTree, LoopInfo, and AAManager to compose custom analyses.
  • Use Cases: security research, vulnerability scanning, bug finding, and code quality evaluation on LLVM-based projects.

Quick Start

Use the static-analysis skill to examine a sample LLVM IR function and identify dataflow, taint, and pointer-aliasing issues.

Frequently Asked Questions about static-analysis

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I perform taint analysis on LLVM IR to detect security vulnerabilities?▼

Taint analysis on LLVM IR identifies untrusted data paths by modeling source-sink relationships to detect security vulnerabilities. This framework supports user-defined taint analyses and built-in dataflow passes to uncover vulnerability paths.

What is the best way to analyze pointer aliasing in LLVM-based projects?▼

Pointer aliasing analysis in LLVM uses flow-sensitive and context-sensitive techniques to approximate memory aliases. This skill leverages built-in Analysis APIs like AAManager to compose custom pointer analysis passes for code quality evaluation.

Can I build data dependency graphs and perform program slicing with LLVM infrastructure?▼

Yes, you can build data dependency graphs and perform program slicing using LLVM infrastructure. This skill provides dependency analysis capabilities through forward and backward may/must analyses to construct data dependency graphs for program slicing.

Does this static analysis framework support interprocedural analysis and loop-aware optimizations?▼

Yes, this framework supports interprocedural analysis and loop-aware optimizations. It leverages built-in LLVM analyses including DominatorTree and LoopInfo to compose custom passes for vulnerability detection across function boundaries.

What LLVM Analysis APIs are required to set up custom dataflow analyses?▼

Custom dataflow analyses require LLVM Analysis APIs including DominatorTree, LoopInfo, and AAManager. You need the LLVM infrastructure to compose these built-in analyses with user-defined taint and dependency passes for vulnerability detection.

When do I need flow-sensitive versus flow-insensitive pointer analysis for vulnerability detection?▼

Flow-sensitive pointer analysis is needed when alias relationships change throughout execution for precise vulnerability detection, while flow-insensitive analysis provides faster approximations. This skill supports both approaches along with context-sensitive analysis for security research.