{"id":51558919,"url":"https://github.com/strobejb/q22","last_synced_at":"2026-08-01T22:01:07.778Z","repository":{"id":371364020,"uuid":"1187565682","full_name":"strobejb/q22","owner":"strobejb","description":"Catch22 Hex Editor","archived":false,"fork":false,"pushed_at":"2026-07-22T21:22:53.000Z","size":5096,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-22T23:15:28.585Z","etag":null,"topics":["binary-file-editor","disassembler","elf-parser","hex-editor","pe-parser","reverse-engineering","reverse-engineering-tools","structured-data"],"latest_commit_sha":null,"homepage":"https://www.catch22.net","language":"C++","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/strobejb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-20T21:53:38.000Z","updated_at":"2026-07-22T21:23:00.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/strobejb/q22","commit_stats":null,"previous_names":["strobejb/q22"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/strobejb/q22","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strobejb%2Fq22","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strobejb%2Fq22/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strobejb%2Fq22/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strobejb%2Fq22/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/strobejb","download_url":"https://codeload.github.com/strobejb/q22/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strobejb%2Fq22/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36171642,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-08-01T02:00:05.789Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["binary-file-editor","disassembler","elf-parser","hex-editor","pe-parser","reverse-engineering","reverse-engineering-tools","structured-data"],"created_at":"2026-07-10T09:00:21.156Z","updated_at":"2026-08-01T22:01:07.754Z","avatar_url":"https://github.com/strobejb.png","language":"C++","funding_links":[],"categories":["Hex Editors"],"sub_categories":[],"readme":"# Q22\n\n[![Build and Test](https://github.com/strobejb/q22/actions/workflows/build.yml/badge.svg)](https://github.com/strobejb/q22/actions/workflows/build.yml)\n[![Release](https://github.com/strobejb/q22/actions/workflows/release.yml/badge.svg)](https://github.com/strobejb/q22/actions/workflows/release.yml)\n\nQ22 is a cross-platform binary file editor - the successor to the original Catch22 HexEdit application for Windows.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/strobejb/q22/blob/assets/screenshot1.png\" width=\"512px\"/\u003e\n\u003c/p\u003e\n\nThe core file editing and hex-view capabilities are carried forward from the original HexEdit, while the application UX has been largely rewritten in Qt6. The goal was to keep the direct, capable binary-editing model of the original HexEdit while modernising the UI, settings, theming, packaging, and cross-platform foundations.\n\n## Features\n\nEditing:\n\n- Open and edit binary files directly, including large file support.\n- Cut, copy, paste, insert, delete, undo, redo.\n- View data in hex, decimal, octal, binary, and text forms.\n- Group bytes as 8-bit, 16-bit, 32-bit, or 64-bit values.\n- Search and jump to offsets without leaving the editor.\n\nStructure View:\n\n- Inspect files through C-style structures.\n- Built-in support for PE and ELF files.\n- Expand headers, sections, imports, exports, symbols, and related tables.\n- Automatically choose known formats from file type or magic bytes.\n- Add custom `.strata` definitions using the Strata language; legacy `.struct`\n  files are still supported.\n\nDisassembly:\n\n- Disassemble code!\n- Supports x86 64-bit, x86 32-bit, ARM, ARM Thumb, and AArch64.\n- Detects PE and ELF entrypoints automatically.\n- Browse discovered functions and jump between disassembly and bytes.\n\nBookmarks and annotations:\n\n- Bookmarks and highlights within the hex display.\n- Fast access to saved bookmarked positions through the bookmark viewer.\n- Bookmark state is persisted for future use.\n\nClipboard, import, and export formats:\n\n- Copy-as and paste-special workflows for moving data between text and binary forms.\n- Import and export files or clipboard data using multiple formats.\n- Hex, ASCII/text, and raw data.\n- Base64 and UUEncode.\n- Intel HEX and Motorola S-records.\n- HTML.\n- C++, C, and assembler-style data.\n\nUX:\n\n- File properties, checksum calculation, and string extraction panels.\n- Recent files and configurable preferences.\n- Light, dark, and system theme modes.\n- Built-in palettes plus custom palette creation and editing.\n- Custom titlebar, docked panels, and platform-specific window chrome for\n  Windows, KDE/KWin, and GNOME/Mutter.\n- Windows and Linux build/release workflows.\n\n## Build\n\n### Pre-requisites\n\n1. Qt framework 6.10+\n2. QtCreator\n\nrun the following command to install the desktop icon in Gnome\n```\n/scripts/install-dev-desktop.sh\n```\n\n### Steps to build:\n\n1. Open QtCreator (6.10 or above).\n2. Open the ~/qq/CMakeList.txt project\n3. Select the Projects tab, and then `Configure Project` at the bottom-right\n4. Select Build -\u003e Build All Projects\n\nFrom the commandline:\n\n```sh\ncmake -B build -DCMAKE_BUILD_TYPE=Release\ncmake --build build --parallel\nctest --test-dir build --output-on-failure\n```\n\n## Supported Platforms\n\n* Linux (Fedora currently)\n* Windows\n\nmore to come!\n\n## License\n\nCopyright (C) 2001-2026 James Brown.\n\nQ22 is licensed under GPL-3.0-or-later. The full license text is included in\n[LICENSE](LICENSE).\n\nReleases are created manually from the GitHub Actions **Release** workflow using a `MAJOR.MINOR.PATCH` version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrobejb%2Fq22","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstrobejb%2Fq22","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrobejb%2Fq22/lists"}