angr.analyses.language_detector

class angr.analyses.language_detector.LanguageDetectionConfidenceLevel

Bases: Enum

Confidence level of language detection results.

LOW = 'low'
MEDIUM = 'medium'
HIGH = 'high'
class angr.analyses.language_detector.LanguageDetectionResult

Bases: object

Result of language/compiler detection on a binary.

language: str = 'unknown'
compiler: str | None = None
compiler_version: str | None = None
confidence: LanguageDetectionConfidenceLevel = 'low'
evidence: list[str]
__init__(language='unknown', compiler=None, compiler_version=None, confidence=LanguageDetectionConfidenceLevel.LOW, evidence=<factory>)
Parameters:
Return type:

None

class angr.analyses.language_detector.LanguageDetector

Bases: Analysis

Detect the original programming language and compiler used to build a binary.

Supports detection of C (gcc, clang, msvc), Rust, Go, and Swift through multiple heuristic layers: DWARF debug info, .comment sections, symbol patterns, section names, and linked library names.

Usage:

result = project.analyses.LanguageDetector()
print(result.language)     # "rust"
print(result.compiler)     # "rustc"
print(result.confidence)   # "high"
print(result.evidence)     # ["symbol: __rust_alloc", ...]
__init__()
property language: str
property compiler: str | None
property compiler_version: str | None
property confidence: LanguageDetectionConfidenceLevel
property evidence: list[str]