Skip to content


Repository files navigation

Capture: Centralized Library Management for Heterogeneous IoT Devices

This repository contains source code for the system Capture described in this paper:

    title = {Capture: Centralized Library Management for Heterogeneous IoT Devices},
    author = {Han Zhang and Abhijith Anilkumar and Matt Fredrikson and Yuvraj Agarwal},
    booktitle = {{USENIX} Security Symposium}
    year = {2021},

We will continue improving this repository for general release. Due to recent time constraints, parts of the codebase is not yet fully prepared.


Arduino IDE and tool chain

In order to flash code into Arduino or ESP32 on Mac (maybe other platform as well), you need to install the driver. Specifically, you need to follow instructions from

Device Setups

The main hub setup involves several scripts in bin and a dedicated folder: device_setup. Please refer to those files to install and configure network interfaces.

Source Code

Project related source code are inside src/ folder.

  • capture_core: Code for the main Capture hub.
  • capture_esp32: Library code for ESP32 applications and library integrations.
  • capture_linux: Driver and adapter code for the Linux demo app used in evaluation.

Demo Programs

Demo applications.

  • demo_esp32: ESP32 apps for library replacement and SDK API integration approaches.

  • demo_pi: Submodule to the MagicMirror app. Link-to-specific-commit.

  • Macro-benchmark involves three sub folders (macro-benchmark-*).

Acknowledgment and External Links


Capture Project for Securing IoT Firmware Libraries






No releases published


No packages published