{"id":15569278,"url":"https://github.com/ssokolow/rar-test-files","last_synced_at":"2026-02-07T12:32:27.789Z","repository":{"id":66916887,"uuid":"354324206","full_name":"ssokolow/rar-test-files","owner":"ssokolow","description":"Minimal RAR and CBR files made using registered RAR and WinRAR installs, suitable for integration testing.","archived":false,"fork":false,"pushed_at":"2023-02-22T04:38:04.000Z","size":2172,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-31T02:20:02.752Z","etag":null,"topics":["archives","rar","rar-archives","rar-files","rar-format","test","test-data","test-dataset","test-datasets","testing"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ssokolow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.cc0","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-03T15:18:21.000Z","updated_at":"2025-04-05T13:11:21.000Z","dependencies_parsed_at":"2023-05-13T22:15:42.998Z","dependency_job_id":null,"html_url":"https://github.com/ssokolow/rar-test-files","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ssokolow/rar-test-files","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssokolow%2Frar-test-files","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssokolow%2Frar-test-files/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssokolow%2Frar-test-files/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssokolow%2Frar-test-files/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ssokolow","download_url":"https://codeload.github.com/ssokolow/rar-test-files/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssokolow%2Frar-test-files/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29194019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T07:37:03.739Z","status":"ssl_error","status_checked_at":"2026-02-07T07:37:03.029Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["archives","rar","rar-archives","rar-files","rar-format","test","test-data","test-dataset","test-datasets","testing"],"created_at":"2024-10-02T17:24:52.271Z","updated_at":"2026-02-07T12:32:27.775Z","avatar_url":"https://github.com/ssokolow.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RAR Test Files\n\nThis repository contains a collection of minimal, legally redistributable `.rar`\nand `.cbr` test files suitable for inclusion in test suites for programs that\nincorporate RAR extraction functionality.\n\n**TL;DR:** If you just want the test files, they're in the `build` folder.\n\n**See Also:** [StuffIt Test Files](https://github.com/ssokolow/stuffit-test-files), [DiskDoubler Test Files](https://github.com/ssokolow/diskdoubler-test-files/)\n\n## Explain\n\nThe only legal way to create a RAR file is with\n[RAR/WinRAR](https://www.rarlab.com/), and far too many people have already run\nout their 40-day trial period for WinRAR long ago, myself included.\n\nI bought a WinRAR license to use on my Windows XP retro-hobby computer so I\ncould be authentic to my nostalgia without license violations or nag screens and\nthen used it to generate some\n[RAR](\u003chttps://en.wikipedia.org/wiki/RAR_(file_format)\u003e) and\n[CBR](https://en.wikipedia.org/wiki/Comic_book_archive) files to serve as test\nfixtures for the integration tests in a project I'm working on which invokes\n`unrar` as a subprocess.\n\nSince I had so much trouble finding test files I could feel confident in the\nlegality of, I decided to share mine for others to use.\n\n...and since I'm licensed as a home user and doing this as a non-profit hobby\nproject, the [RAR/WinRAR EULA](https://www.win-rar.com/winrarlicense.html)\nallows me to install a single license on multiple machines, so I don't need to\ndo an install/uninstall dance to use it both for this project and to improve the\nauthenticity of my nostalgia PC:\n\n\u003e Home users may use their single computer usage license on all computers and\n\u003e mobile devices (USB drive, external hard drive, etc.) which are property of\n\u003e the license owner.\n\n**NOTE:** If you can provide simple instructions for how I can build some\n[`.spc`](https://wiki.superfamicom.org/spc-and-rsn-file-format) files that are\nlegally in the clear, I'll add some `.rsn` files to this repository. My\nunderstanding is that they embed music playback code from the ROM they were\nripped from.\n\n## \"How can I be sure you have a WinRAR license?\"\n\n![Photo of WinRAR Physical Delivery CD and mailer](purchase_evidence.png)\n\n## \"Why are there so many different files?\"\n\nThe project I made them for is intended as a frontend for detecting corruption\nin as wide a range of files as possible.\n\n- I made both RAR3 and RAR5 archives because\n  [p7zip](https://sourceforge.net/projects/p7zip/) 9.20 as\n  [distributed](https://packages.ubuntu.com/xenial/p7zip) by Ubuntu Linux 16.04\n  LTS supports the former but not the latter, so I need to test that my tooling\n  doesn't get tripped up by assuming that `7z t` is just as good a choice as\n  `unrar t`.\n- I made both `.rar` and `.cbr` files because, in the future, I plan for my tool\n  to do more well-formedness checking for \"archive with a standard internal\n  structure\" formats than just asking `unrar` to check the hashes.\n- I made authenticity verification, locked, recovery record, and solid variants\n  because my planned testing harness will do things like walking bit-flips\n  through the file and I want to see how those various features might affect\n  what percentage of the bits will successfully trigger verification failure if\n  flipped.\n- I made self-extractors because I'm going to need all the help I can get in\n  making sure I properly test the filetype handler dispatch for things like\n  `.exe` and `.bin` which don't map to a single handler. (eg. A `.exe` could\n  need to be handled by `unrar`, `7z`,\n  [`innoextract`](https://constexpr.org/innoextract/), various other\n  unpackers... or just plain checked to ensure that the\n  [PE](https://en.wikipedia.org/wiki/Portable_Executable),\n  [NE](https://en.wikipedia.org/wiki/New_Executable),\n  [LE/LX](http://fileformats.archiveteam.org/wiki/Linear_Executable), or\n  [MZ](https://en.wikipedia.org/wiki/DOS_MZ_executable)-format executable\n  appears to be structurally valid.)\n\n## Reproducible and Custom Builds\n\nIf you have purchased a RAR/WinRAR license, you can easily run your own builds.\n\nWith one exception, all test files are generated as should-be-reproducible\nbuilds using the `Makefile` in this repository.\n\nThat exception is that the RAR3 files with authenticity verification currently\nchange with each build... probably because the wall clock time is getting\nincorporated into the signature generation either directly or to seed a\npseudo-random number generator.\n\nTo rebuild the test files:\n\n1. Follow the setup instructions in the comment at the top of `Makefile`\n2. Type `make clean` to clear out the prebuilt archives\n3. Make any edits you'd like to the contents of `sources` or the lists of files\n   inside `Makefile`.\n4. Type `make`\n\nIf you'd like to follow my methodology for customizing the test image files in\n`sources`, use the following process to optimize the compression and strip the\nmetadata:\n\n```sh\npngcrush -ow -rem gAMA -rem alla -rem cHRM -rem iCCP -rem sRGB -rem time testfile.png\noptipng -clobber testfile.png\nadvpng -z4 testfile.png\njpegoptim -s testfile.jpg\n```\n\n## \"My virus scanner reports malware in these files\"\n\nCheck them on [VirusTotal](https://virustotal.com/). I'd be _very_ surprised if\nit wasn't a false positive.\n\nAs of the time these files were created, the following files reported heuristic\ndetection false positives:\n\n- A previous build of `testfile.rar3.wincon.sfx.exe` (missing the license\n  attribution for the AES and CRC32 code rarlab used) was\n  [reported](https://www.virustotal.com/gui/file/53828989405e0726d74a7a1dc8ae37261bdfab12da367b7371847cbe13594069/detection)\n  as a heuristically detected trojan by one of 67 scanners VirusTotal submitted\n  it to.\n- `testfile.rar3.wingui.sfx.exe` is\n  [reported](https://www.virustotal.com/gui/file/34eaad24a715383337d8a28296e89d857a50cb773a71eb7ee23bed952fed7d04)\n  as \"Malicious\" by one out of the 65 scanners VirusTotal submitted it to and as\n  a heuristically detected trojan by another of them.\n- `testfile.rar5.wincon.sfx.exe` is\n  [reported](https://www.virustotal.com/gui/file/629e56279b6e4c12ecc5fdcd7c8ddc2c96a73ebf242338508dbbc7305c3cbfa1)\n  as a heuristically detected trojan by one of 67 scanners VirusTotal submitted\n  it to.\n- `testfile.rar5.wingui.sfx.exe` is\n  [reported](https://www.virustotal.com/gui/file/fea5d61a50a375c25081013878f151f4ebb3da7bd68585edd7fc8952fae0bf67)\n  as malicious by four of the 66 scanners VirusTotal submitted it to, with two\n  of them listing virus/malware IDs that explicitly make it clear it was a\n  heuristic match and the other two just saying \"Malicious\".\n\nTo be sure, I verified I had clean WinRAR installers and generated the same\n`testfile.rar5.wingui.sfx.exe` test file on two different machines (one genuine\nWindows XP setup on my airgapped retro-hobby PC and one fresh Wine profile on\nLinux). VirusTotal gave identical results.\n\nThis pattern of less than 10% of VirusTotal's backends triggering and doing it\nbased on heuristic detection is a common form of false positive... especially\nfor self-extractors because heuristics tend to see compressed stuff inside an\nEXE as suspicious. I've also observed it for things which are proven safe, like\nan official install package for building [NSIS](http://nsis.sourceforge.net/)\ninstallers... and NSIS is used by companies like Amazon, Dropbox, Google,\nUbisoft, and McAfee.\n\nAlso bear in mind that some of the scanners on VirusTotal will report failure\nfor reasons completely unrelated to malicious code. For example, installers for\nversions of WinRAR prior to 5.7 will trigger a few scanners, not because they're\ninfected, but because they support extraction of `.ace` files and the DLL which\nimplements ACE extraction was found to contain a very serious exploitable\nvulnerability.\n\n## Future Plans\n\n- Add test files for\n  [multi-volume RAR archives](https://documentation.help/WinRAR/HELPArcVolumes.htm)\n  with and without the `-vn` naming scheme\n- Investigate what's preventing the authenticity verification build from being\n  fully deterministic and, if necessary, use `LD_PRELOAD` to mock the system\n  call that's being used to request the system time or random numbers and\n  replace it with canned responses from one known-good run.\n- Use some VMs to further test my efforts to make builds reproducible.\n- Decide whether to move all the stuff currently done in DOSBox except the DOS\n  self-extractor to WinRAR 3.93 in Wine as an easy way to enable parallel make\n  or whether to keep at least some of them because it allows there to be a test\n  example for `.rar` files that report `os: MS-DOS` in `file`.\n\n## License\n\nBy design, the files within the archives have been created from scratch and are\nminimally novel in the hope that they will be ineligible for copyright.\n\nWhile I don't hold copyright to the self-extractor stubs present in the `.exe`\nand `.bin` self-extracting test archives, the `acknow.txt` needed to comply\nwith the license used by some of their build dependencies has been included in\nthe archive, so they can be treated as freely redistributable.\n\n(Thanks to [@bgermann](https://github.com/bgermann) for noticing that, because\nof RAR's dependencies, self-extractors made with registered copies of\nRAR/WinRAR are still technically illegal to redistribute unless you manually\nbundle copies of the licenses for the AES and CRC32 implementations rarlab\nused in the stubs.)\n\nI hereby release anything in these archives that I _do_ hold copyright to into\nthe public domain using the Creative Commons\n[CC0](http://creativecommons.org/publicdomain/zero/1.0/) public domain\ndedication.\n\n\u003cp xmlns:dct=\"http://purl.org/dc/terms/\" xmlns:vcard=\"http://www.w3.org/2001/vcard-rdf/3.0#\"\u003e\n  \u003ca rel=\"license\"\n     href=\"http://creativecommons.org/publicdomain/zero/1.0/\"\u003e\n    \u003cimg src=\"http://i.creativecommons.org/p/zero/1.0/88x31.png\"\n      style=\"border-style: none;\" alt=\"CC0\" /\u003e\n  \u003c/a\u003e\n  \u003cbr /\u003e\n  To the extent possible under law,\n  \u003cspan resource=\"[_:publisher]\" rel=\"dct:publisher\"\u003e\n    \u003cspan property=\"dct:title\"\u003eStephan Sokolow\u003c/span\u003e\u003c/span\u003e\n  has waived all copyright and related or neighboring rights to\n  \u003cspan property=\"dct:title\"\u003eRAR Test Files\u003c/span\u003e.\nThis work is published from:\n\u003cspan property=\"vcard:Country\" datatype=\"dct:ISO3166\"\n      content=\"CA\" about=\"[_:publisher]\"\u003e\n  Canada\u003c/span\u003e.\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssokolow%2Frar-test-files","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fssokolow%2Frar-test-files","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssokolow%2Frar-test-files/lists"}