International Association for Cryptologic Research

International Association
for Cryptologic Research

Transactions on Cryptographic Hardware and Embedded Systems 2026

SoK: From Silicon to Netlist and Beyond: Two Decades of Hardware Reverse Engineering Research


README

"SoK: From Silicon to Netlist and Beyond – Two Decades of Hardware Reverse Engineering Research" - Supplementary Material

This repository contains the supplementary material for the paper "SoK: From Silicon to Netlist and Beyond – Two Decades of Hardware Reverse Engineering Research."
Throughout this README, "artifact" refers to the code, images, and datasets released by the 187 surveyed publications.

Contents

This supplementary material contains:

Note on Redistribution

Due to publisher copyright restrictions and the artifacts' various licenses, we cannot redistribute the papers or artifacts. Instead, our scripts retrieve each artifact from its original source. This approach depends on the continued availability of third-party repositories and download URLs, which may not remain accessible indefinitely. If a source disappears, the corresponding artifact note documents its original location and the associated paper.

Quickstart

Docker is required for running scripts. If you do not have Docker, the following script installs it on Linux; for Windows, see 01_artifact_evaluation_and_scripts/DOCKER-README.md.

bash ./DOCKER-INSTALL-LINUX.sh

To try one exemplary artifact, the SpyDrNet netlist analysis tool — run the following from within 01_artifact_evaluation_and_scripts/:

docker buildx build -t artifacteval .
docker run -it --rm --shm-size=8G -v /var/run/docker.sock:/var/run/docker.sock artifacteval

# inside the container:
cd 20_Skouson_2020_S
bash ./install.sh   # confirm the [Y/n] prompt; leaves you in a shell with the tool ready
bash ./run.sh       # runs an exemplary command

20_Skouson_2020_S/20_Skouson_2020.md documents what we observed during evaluation and how we scored it. See 01_artifact_evaluation_and_scripts/DOCKER-README.md for Docker setup on Windows, GPU passthrough, persistent containers, and keeping downloaded data on the host.


Literature Collection and Categorization (00_literature/)

Literature Corpus

The corpus is provided in two formats:

The CSV contains the following information for each publication:

Search Query and Codebook

The search query and the codebooks are provided in:

Papers identified through the systematic database search and subsequent citation mining iterations, alongside the specific decisions for inclusion in the full-text screening, are provided in:

This file includes a Statistics sheet that provides a quantitative overview of the inclusion/exclusion decisions for the abstract screening phase. Additionally, five further sheets contain the following information for the initial search and citation mining rounds 1–4:


Artifact Evaluation Notes and Scripts (01_artifact_evaluation_and_scripts/)

All materials from our evaluation of the artifacts identified in our corpus reside within this folder.

Results table (PDF)

We provide a compact overview of the results from our artifact evaluation in:

For each evaluated artifact, the table includes:

Per-artifact notes (Markdown)

Each evaluated artifact has a dedicated folder, named:

<row_idx>_<first_author_name>_<publication_year>[_<flags>]

Optional flags appended to the folder name indicate what the artifact contains or requires:

Inside each folder, a dedicated note file documents our evaluation, named:

<row_idx>_<first_author_name>_<publication_year>.md

These notes include:

In particular, notes documenting the concrete steps needed to run the tooling (including fixes and workarounds) may be helpful for readers attempting to reproduce or build upon the evaluated artifacts.

Scripts

We provide bash scripts to install, patch, and run tools; artifacts consisting only of data instead come with a script to download them. Artifacts that were not available or must be requested from the authors have no scripts.

Note: patch.sh is not meant to be run by users. It is invoked automatically by install.sh when needed.

These scripts run within a Docker container.
The necessary information and scripts for setting up and using the container are in the following files.