DOI: 10.5281/zenodo.4603060
title: Evaluation of the Executional Power in Windows using Return Oriented Programming

description: This dataset contains the dynamic shared libraries of Windows 7 and Windows 10, in both 32-bit and 64-bit architectures, used for the experimentation in the paper published at WOOT'21 (<em>Evaluation of the Executional Power in Windows using Return Oriented Programming</em>). The camera ready of the paper can be found in here. For using this, you will need the tool rop3. Please check further details below. <strong>Detailed Description</strong> This dataset corresponds to a subset of 24 DLLs of the following Windows versions: 32-bits: Windows 7 Professional 6.1.7601 Service Pack 1 Build 7601 Windows 10 Education 10.0.14393 Build 14393 64-bits: Windows 7 Professional 6.1.7601 Service Pack Build 7601 Windows 10 Pro 1703 Build 15063.726 As the number of DLLs shipped with Windows OS is in terms of hundreds, being also different across the flavors of Windows OS, we have considered only the subset of the system DLLs contained in KnownDlls that are common across all the versions of Windows considered for the experimentation. Additionally, we also considered other DLLs such as msvcrt.dll, psapi.dll, ws2_32.dll, and ntdll.dll although they were not included into the KnownDlls object in all Windows OSes. We then use the rop3 tool to evaluate the executional power of an adversary using Return-Oriented-Programming (ROP) attacks in Windows 7 and Windows 10, in both 32- and 64-bit versions. <strong>Reproducibility</strong> Along with all DLLs, we provide a run-experiments.py script to reproduce the experiments carried on the paper <em>Evaluation of the Executional Power in Windows using Return Oriented Programming</em>, to appear in the 15th Workshop On Offensive Technologies (WOOT '21). Note that paper's experiments were carried out with the rop3's version v0.9.0. Once you installed the rop3's dependencies (see project's README), you must provide both the rop3 project folder (as retrieved from the official repository) and this DLLs dataset as arguments to the following command: <pre><code>$ python3 run-experiments.py /path/to/rop3/ /path/to/dlls/ [*] Analyzing win7sp1x86... [*] win7sp1x86: COMDLG32.dll (485888): add: 192 [*] win7sp1x86: COMDLG32.dll (485888): sub: 17 [*] win7sp1x86: COMDLG32.dll (485888): neg: 193 [*] win7sp1x86: COMDLG32.dll (485888): neg: 5874 (with intermediate mov) [*] win7sp1x86: COMDLG32.dll (485888): mov: 234 [*] win7sp1x86: COMDLG32.dll (485888): lc: 434 [*] win7sp1x86: COMDLG32.dll (485888): ld: 123 [*] win7sp1x86: COMDLG32.dll (485888): st: 149 [*] win7sp1x86: COMDLG32.dll (485888): xor: 120 [..redacted...] </code></pre> The output is divided by a colon: Windows OS version. DLL analyzed with DLL size (in bytes). ROPLang operation. Number of gadgets found for the operation. We provide an example of execution (results.txt) to facilitate the verification of the results shown in the paper. <strong>Licence</strong> All the scripts provided by this dataset are licensed under Creative Commons Attribution 4.0 International. The rop3 tool is licensed separately under GNU GPLv3, you can visit the main GitHub repository for further details.