WRESTOOL(1)

πŸ’– WRESTOOL(1) πŸ’–

okay so bestie, welcome to wrestool, section 1 of the General Commands Manual β€” the girlies' guide to digging resources out of Windows binaries. pull up a chair, grab a boba, we're doing this πŸ’…


✨ NAME ✨

wrestool β€” extract resources from Microsoft Windows(R) binaries πŸ¦‹


🌸 SYNOPSIS 🌸

wrestool [OPTIONS]... [FILE]...

πŸŽ€ DESCRIPTION πŸŽ€

so this manual page documents wrestool briefly, no cap. it was written for the Debian GNU distribution because the original program literally does not have a manual page β€” not me being the one to finally write it up 😭

wrestool reads 16- or 32-bit Microsoft Windows(R) binaries and either lists or extracts the resources inside them. some resources need a lil glow-up before they can be written to files β€” and wrestool can absolutely do that for icon and cursor resources. main character energy fr.

filters, which you pass as command line options, control what resources get extracted. vibe check on your resources, basically ✨


πŸ’… OPTIONS πŸ’…

these programs follow the usual GNU command line syntax, with long options starting with two dashes (-).

  • -x, --extract β€” extract resources. (by default, resources get extracted to standard out if --output was not specified.) get them out of there bestie πŸ’–
  • -l, --list β€” output a list of resources. this is the default, she's the baseline πŸ‘‘
  • -t, --type=[+|-]ID β€” resource type identifier of the affected resources. if it's preceded with a dash (-), the id must be numeric; if it's preceded with a plus sign (+), the id must be a string. the type ID may also be the name of a resource type. (if that's the case, a leading dash or plus sign may not be included.) a list of resource types lives in the Resource Types section, go look 🌈
  • -n, --name=[+|-]ID β€” resource name identifier of the affected resources. like the --type option, a leading dash or plus sign controls the datatype of the id. same rules, different field πŸ’«
  • -L, --language=[+|-]ID β€” resource language identifier. has no effect when processing 16-bit libraries. (she simply does not apply there πŸ™ˆ)
  • -a, --all β€” perform the operation on all resources. this is the default 🫢
  • -o, --output=PATH β€” where to place extracted resources. if PATH does not refer to an existing directory, and does not end with a slash (/), all output will be written to the file PATH. (this means that if you extract multiple resources, PATH will contain the last resource only.) yes literally just the last one, she's not keeping receipts 😭
  • -R, --raw β€” do not parse resource contents β€” extract raw data. (this option will probably be replaced with --format=raw in a future version of icoutils.)
  • -v, --verbose β€” explain what is being done. the verbose option may be specified more than once, like -vv, to make wrestool even more verbose. she will literally tell you everything πŸ”₯
  • --help β€” display a help message and exit.
  • --version β€” output version information and exit.

πŸ¦‹ RESOURCE TYPES πŸ¦‹

the wrestool program recognizes the resource types listed below. the ids of these resources are always numeric and not strings. periodt.

  • cursor (1) β€” a single cursor bitmap image. read as part of group_cursor resources.
  • bitmap (2) β€” a bitmap image.
  • icon (3) β€” a single icon bitmap image. read as part of group_icon resources. this resource is similar to cursor resources; cursors contain four additional bytes of hotspot coordinates.
  • menu (4) β€” resources for menus (in popup and menubars). currently wrestool does not support this resource type.
  • dialog (5) β€” definitions (widgets with locations) for dialog boxes. currently wrestool does not support this resource type.
  • string (6) β€” the string table resource, containing a number of unicode strings. currently wrestool does not support this resource type.
  • fontdir (7) β€” the font directory, containing information on a number of font resources (8). non-TTF font (.FON) files are actually libraries with resources in them. currently wrestool does not support this resource type.
  • font (8) β€” a single font β€” the contents of a .FNT file. read as part of fontdir resources. currently wrestool does not support this resource type.
  • accelerator (9) β€” keyboard accelerator tables. currently wrestool does not support this resource type.
  • rcdata (10) β€” arbitrary resource data, user-defined. there are no restrictions to the format of these resources. free range, go feral πŸ„
  • messagelist (11) β€” not supported. πŸ’€
  • group_cursor (12) β€” a set of cursors. with a few modifications (and with cursor resources), this resource can be extracted as a .CUR file.
  • group_icon (14) β€” a set of icons. with a few modifications (and with icon resources), this resource can be extracted as a .ICO file. this is the moment ✨
  • version (16) β€” version information, stored as binary data. could be extracted without modifications, but the data is of probably little use. currently wrestool does not support this resource type.
  • dlginclude (17) β€” not supported.
  • plugplay (19) β€” not supported.
  • vxd (20) β€” not supported.
  • anicursor (21) β€” animated cursors. currently wrestool does not support animated cursor or icons, nor does icotool.
  • aniicon (22) β€” animated icons. i have only seen these in Windows(R) 3.x. currently wrestool does not support animated cursor or icons, nor does icotool.
heads up bestie: a whole bunch of these are lowkey just "not supported" and that's on purpose, not a bug. don't come for me 🫢

🌈 EXAMPLES 🌈

list all resources in file write.exe:

$ wrestool -l write.exe
--type=3 --name=1 --lang=1033 [type=icon offset=0x3120 size=752]
--type=3 --name=2 --lang=1033 [type=icon offset=0x3410 size=304]
--type=14 --name=1 --lang=1033 [type=group_icon offset=0x3540 size=34]
--type=16 --name=1 --lang=1033 [type=version offset=0x3564 size=808]

list all (group-) icon resource in file write.exe:

$ wrestool -l --type=group_icon write.exe
--type=14 --name=1 --lang=1033 [type=group_icon offset=0x3540 size=34]

extract all icons to the current directory, naming the destination files write.exe_T_N.ico:

$ wrestool -x --output=. -t14 write.exe
$ ls *.ico
write.exe_14_1.ico

πŸ’œ SEE ALSO πŸ’œ

extresso(1), genresscript(1), icotool(1).


🧚 AUTHOR 🧚

this manual page was written by Colin Watson <cjwatson@debian.org> for the Debian GNU system (but may be used by others). it was later modified by Oskar Liljeblad <oskar@osk.mine.nu>. shoutout to the icons who wrote the docs 🫢


Copyright Β© 2001 Colin Watson

Copyright Β© 2001 Oskar Liljeblad

this is free software; see the source for copying conditions. there is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

say it with me: NO WARRANTY. not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. she is giving everything and promising nothing πŸ’€

⭐ TRADEMARKS ⭐

Windows is a registered trademark of Microsoft Corporation in the United States and other countries.


okay that's the whole page bestie, you ate that πŸŽ€ this was wrestool (icoutils) β€” and the page is dated April 18, 2005, so yeah she's vintage and still iconic for it πŸ’–βœ¨ mwah, go extract something πŸ”₯