bin2cet artifacts
收藏资源简介:
# This README presents the workflow required to reproduce the experimental results and validation tests described in the article *Retrofitting Intel CET's Indirect Branch Tracking into Legacy Binaries through Static Binary Rewriting*. # It provides instructions to prepare the artifact environment, execute the available demonstration, rebuild the experimental data, and extract the metrics used to evaluate the proposed approach. ## Abstract ** This artifact reproduces the experiments conducted in Section 5. **** A Docker container with scripts to recreate the paper results can be found in https://doi.org/10.5281/zenodo.20420793. **** Additionally, the artifact contains a demonstration script with a step-by-step guide to use BIN2CET to make the program in Figure 1 CET-compatible. ** ## Checklist * **Program:** BIN2CET, LIEF 0.17.6, E9Patch, PIN 4.2, Ghidra 11.0.3, perf, ROPgadget, and CoreUtils 9.11.* **Compilation:** gcc-15.* **Run-time environment:** Linux on x86-64 architecture inside a Docker container.* **Hardware:** Intel processor with hardware counters, required for perf, and Docker support.* **Metrics:** Effectiveness (ß5.1), runtime overhead (ß5.2), and attack surface reduction (ß5.3).* **Experiments:** Rebuild the paper results by producing data and extracting information into CSV files.* **Required disk space:** The Docker image requires approximately 4.6 GB uncompressed, and the dataset requires approximately 2.4 GB uncompressed.* **Workflow preparation time:** Approximately 1 hour to build the Docker image.* **Experiment execution time:** Approximately 36 hours.* **Availability:** BIN2CET is publicly available at ***REMOVED***, and the artifact is available at https://doi.org/10.5281/zenodo.20420793. ## Installation ### 1. Download and decompress the artifact ```tar -jxvf bin2cet-artifacts.tar.bz2``` ### 2. Prepare the dataset Use the dataset provided with the artifact: ```sudo tar --same-owner -xvf dataset.tar``` Alternatively, create a directory to build the dataset from scratch: ```mkdir datasetchmod 777 dataset``` ### 3. Prepare the Docker image Build the image: ```docker build --platform=linux/amd64 -t bin2cet_image .``` Alternatively, load the prebuilt image: ```bunzip2 bin2cet_image.tar.bz2docker load -i bin2cet_image.tar``` ### 4. Run the container ```docker run --rm -it --privileged --name bin2cet_$$ \ -v ./dataset:/work/dataset bin2cet_image``` ## Experiment Workflow From within the Docker container terminal, use one of the following commands: * `demo`: performs a step-by-step demonstration of BIN2CET.* `sim`: executes scripts to simulate an optimization level.* `extract`: extracts analyses for the three research questions.* `everything`: simulates and extracts all results.



