Skip to content
/ qrc Public

Go library and command-line tool to extract/decompile Qt resources from Qt resource (rcc) files and executables.

License

Notifications You must be signed in to change notification settings

pgaskin/qrc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

aa2fe41 · Dec 29, 2023

History

12 Commits
Jun 23, 2023
Dec 29, 2023
Jun 22, 2023
Jul 30, 2022
Jul 30, 2022
Jul 30, 2022
Aug 13, 2020
Aug 13, 2020
Aug 13, 2020
Aug 13, 2020
Aug 13, 2020
Aug 13, 2020
Aug 22, 2020
Aug 13, 2020
Aug 13, 2020
Aug 13, 2020
Aug 22, 2020
Aug 13, 2020

Repository files navigation

qrc

Build Status PkgGoDev GitHub Tag

Go library and command-line tool to extract Qt resources from RCC files and executables.

This package supports resource formats 1-3 and includes language/country code information from Qt 5.13. Resources can be compressed using zlib or zstd.

See pkg.go.dev/github.com/pgaskin/qrc for the Go library documentation.

The command-line tool, qrc2zip, can be installed with GO111MODULE=on go get github.com/pgaskin/qrc/cmd/qrc2zip.

To automatically find offsets for ARM binaries with Qt resources embedded by rcc, use scripts/armqrc.py.

Usage: qrc2zip [options] rcc_file
       qrc2zip [options] executable format_version tree_offset data_offset names_offset

Options:
  -o, --output string         Output filename (default "resources.zip")
  -f, --force                 Ignore errors during extraction if possible
  -r, --recursive             Expand nested RCC files
  -e, --exclude stringArray   Exclude files matching this glob (can be specified multiple times)
  -v, --verbose               Show information about the files being extracted
  -h, --help                  Show this help text

Executable offsets:
  To find executable offsets and format version, look for calls to qRegisterResourceData. These
  are usually within entry points or qInitResource* functions. qRegisterResourceData takes four
  arguments: format, tree, names, data.

Qt support:
  Format versions 1-3 are supported, along with locale/country codes from Qt 5.13. Resources
  can be compressed with zlib or zstd.

Output:
  The extracted resources are written to a zip file. The directory structure is preserved and
  separated with forward slashes on all platforms. If the file has language/country constraints,
  they are added to the filename before the extension in the format '[language!LanguageName]'
  and [country!CountryName]. If the Qt resource format is >= 2, the modification time is also
  written for each file.

github.com/pgaskin/qrc