Lotus

User Guide

  • Major Components Overview
  • Architecture Overview
  • Quick Start Guide
  • Installation Guide
  • Tutorials and Examples
  • Bug Detection with Lotus
  • PDG Query Language (Cypher)
  • Property-Based Slicing
  • Verification Backend Abstraction
  • Instrumentation Passes
  • Troubleshooting and FAQ
  • Command-Line Tools

Core Components

  • Alias Analysis
  • Analysis Framework
  • Annotations
  • Applications
    • Components
      • Fuzzing Support
      • Directed Fuzzing Analyses
      • AFLGo Compiler Plugin
      • AFLGo Link-Time Instrumentation
  • Context-Free Language Analysis
  • Data Flow Analysis
  • Intermediate Representations
  • Overview
  • MemoryMLFeaturesPass
  • Features Extracted
  • Feature Output
  • Analysis Dependencies
  • Integration Notes
  • Related Components
  • Optimization
  • Solvers
  • Transforms
  • Utilities
  • Verification
  • Checker Framework

Developer Documentation

  • API Reference
  • Developer Guide
Lotus
  • Applications
  • AFLGo Link-Time Instrumentation
  • View page source

AFLGo Link-Time Instrumentation

include/Fuzzing/AFLGoLinker/ and lib/Fuzzing/AFLGoLinker/ implement the link-time instrumentation passes for AFLGo-style directed fuzzing.

Location: include/Fuzzing/AFLGoLinker/, lib/Fuzzing/AFLGoLinker/

Main passes:

  • AFLGoDistanceInstrumentationPass instruments distance feedback.

  • FunctionDistancePass injects function-level distance data.

  • DAFLInstrumentationPass adds DAFL-specific instrumentation.

  • DuplicateTargetRemovalPass and AFLGoTargetInjectionFixupPass clean up target metadata before final code generation.

Role in the pipeline:

  • consume the analyses from Directed Fuzzing Analyses

  • insert profile-guiding feedback at LTO time

  • finalize target handling for directed greybox fuzzers

See also Fuzzing Support.

Previous Next

© Copyright 2024-2025, ZJU Programming Languages and Automated Reasoning Group.

Built with Sphinx using a theme provided by Read the Docs.