{"id":21441854,"url":"https://github.com/rcvalle/atafuzzer","last_synced_at":"2025-03-17T00:43:16.113Z","repository":{"id":282792474,"uuid":"892997411","full_name":"rcvalle/atafuzzer","owner":"rcvalle","description":"An AT Attachment (ATA) storage interface fuzzer for emulated ATA devices.","archived":false,"fork":false,"pushed_at":"2024-11-23T09:00:52.000Z","size":241,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-17T00:43:12.636Z","etag":null,"topics":["atafuzzer","fuzzer"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rcvalle.png","metadata":{},"created_at":"2024-11-23T09:00:17.000Z","updated_at":"2024-11-23T09:00:49.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rcvalle/atafuzzer","commit_stats":null,"previous_names":["rcvalle/atafuzzer"],"tags_count":null,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcvalle%2Fatafuzzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcvalle%2Fatafuzzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcvalle%2Fatafuzzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcvalle%2Fatafuzzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rcvalle","download_url":"https://codeload.github.com/rcvalle/atafuzzer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243955725,"owners_count":20374372,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atafuzzer","fuzzer"],"created_at":"2024-11-23T01:43:29.100Z","updated_at":"2025-03-17T00:43:16.105Z","avatar_url":"https://github.com/rcvalle.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"atafuzzer\n=========\n\n![Build Status](https://github.com/rcvalle/atafuzzer/workflows/build/badge.svg)\n\nAn AT Attachment (ATA) storage interface fuzzer for emulated ATA devices.\n\nIt currently supports:\n\n* the general feature set for devices not implementing the PACKET command\n  feature set.\n* the 48-bit address feature set.\n\n\nInstallation\n------------\n\nTo build and install the fuzzer:\n\n1. Install Autotools (i.e., Autoconf, Automake, and Libtool):\n\n       sudo apt update\n       sudo apt install autoconf automake libtool\n\n2. Instantiate the build system:\n\n       autoreconf -fi\n\n3. Build the fuzzer:\n\n       mkdir build/\n       cd build/\n       ../configure\n       make\n\n4. Install the fuzzer:\n\n       sudo make install\n\n\nUsage\n-----\n\nTo use the fuzzer:\n\n1. Create a new virtual machine for the hypervisor/VMM to be tested.\n\n2. Add the device to be tested to the virtual machine.\n\n3. Identify the device to be tested:\n\n       lspci\n       00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)\n       00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]\n       00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]\n       00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)\n       00:02.0 VGA compatible controller: Red Hat, Inc. QXL paravirtual graphic card (rev 05)\n       00:03.0 Ethernet controller: Red Hat, Inc. Virtio network device\n       00:04.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)\n       00:05.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03)\n       00:05.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03)\n       00:05.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03)\n       00:05.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)\n       00:06.0 SCSI storage controller: Red Hat, Inc. Virtio SCSI\n       00:07.0 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (rev 02)\n       00:08.0 Communication controller: Red Hat, Inc. Virtio console\n       00:09.0 SCSI storage controller: Red Hat, Inc. Virtio block device\n       00:0a.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon\n       00:0b.0 Unclassified device [00ff]: Red Hat, Inc. Virtio RNG\n\n   The first column is the PCI logical address of the device as\n   [domain:]bus:device.function.\n\n4. Copy to, build, and install the fuzzer in the virtual machine.\n\n5. Run the fuzzer:\n\n       sudo atafuzzer -g -B 0 -D 1 -F 1\n\n\nThe command-line options for the fuzzer are:\n\n**-B**\n**--bus=**_num_\n  Specify the PCI bus number of the ATA/IDE controller. (The default is 0.)\n\n**-D**\n**--device=**_num_\n  Specify the PCI device number of the ATA/IDE controller. (The default is 0.)\n\n**-F**\n**--function=**_num_\n  Specify the PCI function number of the ATA/IDE controller. (The default is 0.)\n\n**--bus-num=**_num_\n  Specify the ATA bus number. Use 0 for primary, or 1 for secondary. (The\n  default is 0.)\n\n**--device-num=**_num_\n  Specify the ATA device number. Use 0 for Device 0, or 1 for Device 1. (The\n  default is 0.)\n\n**-d**\n**--debug**\n  Enable debug mode.\n\n**-g**\n**--generate**\n  Use the pseudorandom number generator (i.e., random()) for input generation.\n\n**-h**\n**--help**\n  Display help information and exit.\n\n**-o** _file_\n**--output=**_file_\n  Specify the output file name.\n\n**-q**\n**--quiet**\n  Enable quiet mode.\n\n**-s** _num_\n**--seed=**_num_\n  Specify the seed for the pseudorandom number generator. (The default is 1.)\n\n**-t** _num_\n**--timeout=**_num_\n  Specify the timeout, in seconds, for each iteration. (The default is 5.)\n\n**-v**\n**--verbose**\n  Enable verbose mode.\n\n**--version**\n  Display version information and exit.\n\n\nContributing\n------------\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n\nLicense\n-------\n\nLicensed under the MIT License. See [LICENSE](LICENSE) for license text and\ncopyright information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcvalle%2Fatafuzzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frcvalle%2Fatafuzzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcvalle%2Fatafuzzer/lists"}