Crate tsffs

Source
Expand description

TFFS Module for SIMICS

ยงOverview

This crate provides a client and module loadable by SIMICS to enable fuzzing on the SIMICS platform. The client is intended to be used by the simics-fuzz crate, but it can be used manually to enable additional use cases.

ยงCapabilities

The Module can:

  • Trace branch hits during an execution of a target on an x86_64 processor. These branches are traced into shared memory in the format understood by the AFL family of tools.
  • Catch exception/fault events registered in an initial configuration or dynamically using a SIMICS Python script
  • Catch timeout events registered in an initial configuration or dynamically using a SIMICS Python script
  • Manage the state of a target under test by taking and restoring a snapshot of its state for deterministic snapshot fuzzing

Modulesยง

arch ๐Ÿ”’
Architecture specific data and definitions
fuzzer ๐Ÿ”’
Fuzzing engine implementation, configure and run LibAFL on a separate thread
haps ๐Ÿ”’
Handlers for HAPs in the simulator
interfaces ๐Ÿ”’
Interfaces accessible from Simics script and Python
log ๐Ÿ”’
Logging
magic ๐Ÿ”’
Magic number definitions
os ๐Ÿ”’
source_cov ๐Ÿ”’
state ๐Ÿ”’
Definitions for tracking the state of the fuzzer
tracer ๐Ÿ”’
traits ๐Ÿ”’
util ๐Ÿ”’

Structsยง

ManualStartInfo ๐Ÿ”’
Exactly the same as StartInfo except with the semantic difference that the address may not always be stored as physical, the user may provide a virtual address for both the address and the size pointer (if there is one).
StartInfo ๐Ÿ”’
Tsffs ๐Ÿ”’
The main module class for the TSFFS fuzzer, stores state and configuration information

Enumsยง

ManualStartAddress ๐Ÿ”’
ManualStartSize ๐Ÿ”’
StartPhysicalAddress ๐Ÿ”’
An address that was formerly virtual or formerly physical. The actual address must be physical.
StartSize ๐Ÿ”’

Constantsยง

CLASS_NAME
The class name used for all operations interfacing with SIMICS

Staticsยง

_module_capabilities_
The module capabilities list
_module_date
The module build date

Functionsยง

Tsffs_allocโš 
FFI wrapper
Tsffs_dealloc
FFI wrapper
Tsffs_deinit
FFI wrapper
Tsffs_finalize
FFI wrapper
Tsffs_init
FFI wrapper
Tsffs_objects_finalized
FFI wrapper
_simics_module_init
Exported symbol called by simics when module is loaded
init ๐Ÿ”’
Initialize TSFFS