Team Ai
Datasetpublic

SoLID/shellcode_i_a32

Shellcode_IA32 is a dataset for shellcode generation from English intents. The shellcodes are compilable on Intel Architecture 32-bits.

sourceHugging Facegpl-3.0updated 4y agoView on Hugging Face
13likes288downloads
README.md65 linesDownload Raw Back to root
1---2annotations_creators:3- expert-generated4language_creators:5- expert-generated6- found7language:8- code9- en10license:11- gpl-3.012multilinguality:13- translation14size_categories:15- unknown16source_datasets:17- original18task_categories:19- text-generation20task_ids:21- language-modeling22paperswithcode_id: shellcode-ia3223---24 25# Shellcode_IA3226 27___Shellcode_IA32___ is a dataset containing _20_ years of shellcodes from a variety of sources is the largest collection of shellcodes in assembly available to date.28 29This dataset consists of 3,200 examples of instructions in assembly language for _IA-32_ (the 32-bit version of the x86 Intel Architecture) from publicly available security exploits. We collected assembly programs used to generate shellcode from [exploit-db](https://www.exploit-db.com/shellcodes?platform=linux_x86) and from [shell-storm](http://shell-storm.org/shellcode/).30We enriched the dataset by adding examples of assembly programs for the _IA-32_ architecture from popular tutorials and books. This allowed us to understand how different authors and assembly experts comment and, thus, how to deal with the ambiguity of natural language in this specific context. Our dataset consists of 10% of instructions collected from books and guidelines, and the rest from real shellcodes. 31 32Our focus is on Linux, the most common OS for security-critical network services. Accordingly, we added assembly instructions written with _Netwide Assembler_ (NASM) for Linux.33 34Each line of _Shellcode\_IA32_ dataset represents a snippet - intent pair. The _snippet_ is a line or a combination of multiple lines of assembly code, built by following the NASM syntax. The _intent_ is a comment in the English language.35 36Further statistics on the dataset and a set of preliminary experiments performed with a neural machine translation (NMT) model are described in the following paper: [Shellcode_IA32: A Dataset for Automatic Shellcode Generation](https://arxiv.org/abs/2104.13100).37 38 39**Note**: This work was done in collaboration with the [DESSERT Lab](http://www.dessert.unina.it/).40 41The dataset is also hosted on the [DESSERT Lab Github](https://github.com/dessertlab/Shellcode_IA32).42 43 44Please consider citing our work: 45```46@inproceedings{liguori-etal-2021-shellcode,47    title = "{S}hellcode{\_}{IA}32: A Dataset for Automatic Shellcode Generation",48    author = "Liguori, Pietro  and49      Al-Hossami, Erfan  and50      Cotroneo, Domenico  and51      Natella, Roberto  and52      Cukic, Bojan  and53      Shaikh, Samira",54    booktitle = "Proceedings of the 1st Workshop on Natural Language Processing for Programming (NLP4Prog 2021)",55    month = aug,56    year = "2021",57    address = "Online",58    publisher = "Association for Computational Linguistics",59    url = "https://aclanthology.org/2021.nlp4prog-1.7",60    doi = "10.18653/v1/2021.nlp4prog-1.7",61    pages = "58--64",62    abstract = "We take the first step to address the task of automatically generating shellcodes, i.e., small pieces of code used as a payload in the exploitation of a software vulnerability, starting from natural language comments. We assemble and release a novel dataset (Shellcode{\_}IA32), consisting of challenging but common assembly instructions with their natural language descriptions. We experiment with standard methods in neural machine translation (NMT) to establish baseline performance levels on this task.",63}64```65