Ok so this is a command line tool (uib2t.exe) I developed to convert binary UIFILES to readable XML format.
It can either convert a single binary UIFILE resource file (previously extracted with a resource editor) or extract multiple UIFILEs from a system file and convert them.
It does not modify system files in any way. If you don't trust that, just copy the system file somewhere else and extract from the copied file ...
This tool is only for 64 bit windows!USAGE:
uib2t -file binfile
-or-
uib2t -sys sysfile id destfolder
Parameters:
-file Convert a single binary file to XML text (see notes)
binfile Binary file to convert. Fully qualified path, use quotes if contains spaces, can include environment variables
-sys Extract one or more binary UIFILE resources from a system file (.exe, .dll, ...) and convert to XML text
sysfile System file containing binary UIFILE resources to extract. Fully qualified path, use quotes if contains spaces, can include environment variables
id IDs of UIFILE resources to convert, can be:
- a single UIFILE ID (e.g. 40960)
- a comma separated list of UIFILE IDs (e.g. 23,24,25)
- * to include all UIFILE resources in the source file"
destfolder Destination folder for converted UIFILEs. Fully qualified path, use quotes if contains spaces, can include environment variables
EXAMPLES:
uib2t -file "D:\My Path\40960.raw"
uib2t -sys c:\windows\system32\explorerframe.dll 40960 e:\outpath
uib2t -sys "%SystemRoot%\system32\shell32.dll" 23,24,25 e:\outpath
uib2t -sys "%SystemRoot%\system32\ExplorerFrame.dll" * "d:\long path"
NOTES:
1. If multiple UIFILE IDs are specified with the -sys option, UIFILE resources that are in text format or cannot be converted will be automatically skipped.
2. When using the -file option, the binary file to convert must be in raw binary format (file extension is irrelevant). To extract UIFILEs from system files in raw binary format:
* Restorator: Resources menu -> Extract -> Extract as -> Extract as ".raw"
* ResHacker: Action menu -> Save resource as a binary file
The converted XML text file will be saved in the same folder as the source binary file (.uib2t.txt extension).
3. When using the -sys option, converted XML text file(s) will be saved in the destination folder specified as a parameter (.uib2t.txt extension).
Usage info above can be displayed by running the program without any parameters.
I have tested this on Windows 8.1 Update 1 without any issues - but it should work on any 8+ Windows version. Please use OldNewExplorer to test this, or
make a backup if you're going to modify system files (which this tool does not do). I take no responsibility if you mess up your system!!!
UPDATE SEPTEMBER 2015Tool updated to version
1.0.3 BETA. Now tested with Windows 10 RTM
Changes from previous version (1.0.2 BETA):* Minor tweaks to conversion code
* Text output during conversion improved:
- Errors and warnings are now highlighted in red
- Destination folder for converted XML files now indicated in text output when conversion complete
* New program icon (courtesy of
http://www.iconsdb.com/)
* Changes to command line parameters:
- In -file mode, added an optional parameter to specify a destination folder to save converted XML files
- In -sys mode, destination folder parameter is now optional. If omitted, converted XML files are saved in a sub-folder of the uib2t program
Updated usage information:uib2t :: by drakkar1969 :: Version 1.0.3 BETA
Convert binary UIFILE resources to XML text format
This program DOES NOT MODIFY system files in any way
USAGE:
uib2t -file binfile [destfolder]
-or-
uib2t -sys sysfile id [destfolder]
Parameters:
-file Convert binary file(s) to XML text (see note 1)
binfile Binary file(s) to convert, specify multiple files using
wildcards (* and ?). Path can be omitted if the files to
convert are in the same folder as the uib2t program. If a path
is specified, it must be a fully qualified path; use quotes
if contains spaces, can include environment variables.
destfolder Optional parameter. Destination folder for converted XML text
files. Fully qualified path, use quotes if contains spaces,
can include environment variables. If omitted, converted XML text
files will be saved in the same folder as the source binary files.
Parameters:
-sys Extract one or more binary UIFILE resources from a system file
(.exe, .dll, ...) and convert to XML text
sysfile System file containing binary UIFILE resources to extract.
Fully qualified path, use quotes if contains spaces, can
include environment variables.
id ID(s) of UIFILE resources to convert, can be:
- a single UIFILE ID (e.g. 40960)
- a comma separated list of UIFILE IDs (e.g. 23,24,25)
- * to include all UIFILE resources in the source file
destfolder Optional parameter. Destination folder for converted XML text
files. Fully qualified path, use quotes if contains spaces,
can include environment variables. If omitted, converted XML text
files will be saved in a sub-folder of the uib2t program folder
with the same name as the source system file (e.g. "shell32.dll"
sub-folder).
NOTES:
1. When using the -file option, the binary file(s) to convert must be in raw
binary format (file extension is irrelevant).
To extract UIFILEs from system files in raw binary format:
* Restorator: Resources menu -> Extract -> Extract as -> Extract as ".raw"
* ResHacker: Action menu -> Save resource as a binary file
2. Converted XML text file(s) are saved with a .uib2t.txt extension.
3. When converting multiple UIFILE(s) (either source binary files or binary
resources in a system file) UIFILE resources that are in text format
or cannot be converted will be automatically skipped.
An example is the RIBBON resource in ExplorerFrame.dll, which is not a
binary UIFILE resource and cannot therefore be converted.
EXAMPLES:
* Convert a single binary file to XML text (file is in the uib2t program folder):
uib2t -file 40960.raw
* Convert all .raw files in a folder to XML text, specifying destination folder:
uib2t -file "D:\source path\*.raw" E:\destpath
* Extract a single UIFILE (40960) from ExplorerFrame.dll and convert to XML text:
uib2t -sys c:\windows\system32\explorerframe.dll 40960 e:\destpath
* Extract multiple UIFILEs (23, 24 and 25) from shell32.dll and convert to XML
text (environment variable used to specify source file); output XML files are
saved in the "shell32.dll" sub-folder of the uib2t program folder:
uib2t -sys "%SystemRoot%\system32\shell32.dll" 23,24,25
* Extract all UIFILEs from ExplorerFrame.dll and convert to XML text
(environment variable used to specify source file):
uib2t -sys "%SystemRoot%\system32\ExplorerFrame.dll" * "d:\long path"
* Extract all UIFILEs from ExplorerFrame.dll and convert to XML text; ouput
XML files are saved in the "ExplorerFrame.dll" sub-folder of the uib2t
program folder:
uib2t -sys "c:\windows\system32\ExplorerFrame.dll"