{"id":14529417,"url":"https://github.com/nlitsme/zipdump","last_synced_at":"2025-04-03T02:11:41.717Z","repository":{"id":57478361,"uuid":"63780063","full_name":"nlitsme/zipdump","owner":"nlitsme","description":"Analyze zipfile, either local, or from url","archived":false,"fork":false,"pushed_at":"2024-10-03T13:10:08.000Z","size":164,"stargazers_count":34,"open_issues_count":1,"forks_count":11,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-26T21:11:49.741Z","etag":null,"topics":["file-format","pkzip","reverse-engineering","zip"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"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/nlitsme.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2016-07-20T12:35:24.000Z","updated_at":"2025-03-19T21:29:48.000Z","dependencies_parsed_at":"2022-09-06T17:12:04.399Z","dependency_job_id":"153df761-89c5-48aa-8ab1-40aeba9c0057","html_url":"https://github.com/nlitsme/zipdump","commit_stats":{"total_commits":54,"total_committers":4,"mean_commits":13.5,"dds":0.05555555555555558,"last_synced_commit":"73d4e1104230e49df85adf6c7f20eb2fcc19231d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlitsme%2Fzipdump","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlitsme%2Fzipdump/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlitsme%2Fzipdump/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlitsme%2Fzipdump/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nlitsme","download_url":"https://codeload.github.com/nlitsme/zipdump/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246922248,"owners_count":20855345,"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":["file-format","pkzip","reverse-engineering","zip"],"created_at":"2024-09-05T00:00:59.629Z","updated_at":"2025-04-03T02:11:41.694Z","avatar_url":"https://github.com/nlitsme.png","language":"Python","funding_links":[],"categories":["Malware Reversing"],"sub_categories":["Static Analysis"],"readme":"# zipdump\nAnalyze zipfile, either local, or from url\n\n`zipdump` can either do a full zip analysis, finding all PK-like headers, or (default) it can do a quick scan ( like the usual `zip -v` type output ).\n\n`zipdump -q`  works equally quick on web based resources as on local files.\nThis makes it quite easy to quickly investigate a large number of large .zip files without actually needing to download them.\n\nI wrote this tool because i wanted to look at the contents of lots of apple ios firmware files without downloading 100s of GB of data.\n\nFor instance:\n\n    python3 zipdump.py -q http://appldnld.apple.com/ios10.0/031-64655-20160705-A371AD14-3E3F-11E6-A58B-C84C60941A1E/com_apple_MobileAsset_SoftwareUpdate/d75e3af423ae0308a8b9e0847292375ba02e3b11.zip\n  \n`zipdump` needs pyton3.\n\n\nOr you could extract a specific file from lots of zips using:\n\n    cat urllist | xargs zipdump -q --cat somefile.txt\n\nCOMMANDLINE OPTIONS\n===================\n\n * `--cat` FILENAME    will decrypt, decompress the specified filename to stdout\n * `--raw` FILENAME    will decrypt, but not decompress the specified filename to stdout\n * `--save` FILENAME   will save the decrypted, decompressed file to the output directory\n * `--outputdir` DIR   specify where to save extracted files.\n * `--analyze`         Detailed .zip analysis, finds all PKnnn chunks.\n * `--offset OFS --length SIZE`   specify a chunk of a file to investigate\n    you can used this to list zip contents from a zip file embeded in another binary file.\n * `--dumpraw`         hexdump the entire zip file contents, optionally limiting the amount of data printed.\n   * `--limit LIMIT`     limit raw dump output\n * `--keys  0x1,0x2,0x3`  specify the internal encryption key for decrypting encrypted files.\n * `--password  PASSWD `  specify the password for decrypting encrypted files.\n * `--hexpassword  HEXPASSWD `  specify the password for decrypting encrypted files.\n    useful when the password is not an ascii string.\n\n * `-H` \"HDR: value\"   add custom http headers to the http request.\n * `--httptrace`       print out all http traffic.\n\n * `--extract`         Extract all files to the `outputdir`, optionally stripping leading parts of the filename\n   * `--strip STRIP`     strip N initial parts from pathnames before saving\n   * `--preserve`        preserve permissions and timestamps\n   * `--allowdotdot`     allow paths to walk outside of the output directory.\n\nWhen searching for .zip files, you can recurse and skip links using these options:\n * `--recurse`         recurse into directories\n * `--skiplinks`       skip symbolic links\n\nThe zip file is read in `chunksize` chunks, default 1M, you can alter this using the `--chunksize` option.\n\nThen there are several options controlling how much output is generated:\n * `--pretty`          very verbose output\n * `--verbose`\n * `--quiet`\n * `--debug`\n\n\n\n\nTODO\n====\n\n * add option to save a specific entry by index, or offset into the file.\n     * this would be useful when an archive contains an entry with a difficult to type name.\n * add option to save an entry by name to a differently named file.\n * DONE by default sanitize filenames before use, with option to disable sanitation.\n * DONE currently XTRA is printed only when specifying --dumpraw, i would like to see this\n   parsed and printed with --verbose.\n * rename pretty to 'very verbose'\n * add option to save each file to a zipfile specific subdirectory. So you can extract\n   multiple files in one command.\n * support stdin\n * as library: add better interface, which allows enumeration of contents, lookup of files, extraction of files.\n * add option to print only the filenames\n * add option to filter what to extract.\n\n\nHISTORY\n=======\n\nThis tool started out as a perl script named zipdbg in 2003.\n\n\n(c) 2016 Willem Hengeveld \u003citsme@xs4all.nl\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnlitsme%2Fzipdump","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnlitsme%2Fzipdump","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnlitsme%2Fzipdump/lists"}