---------------------------------------------- Resource Hacker - Version 3.2.7 8 April 2001. Copyright 1999-2001 Angus Johnson http://rpi.net.au/~ajohnson/resourcehacker FREEWARE utility to view, modify, add and delete resources in Win32 executables. Incorporates an internal resource compiler and decompiler. Works on both Win9x and WinNT. ---------------------------------------------- Summary: ---------------------------------------------- Resource Hacker has been designed to: 1. View resources in Win32 executable and related files (*.exe, *.dll, *.cpl, *.ocx) in both compiled and decompiled formats; 2. Extract (save) resources to file in: *.res format; as a binary; or as decompiled resource scripts or images. Icons, bitmaps, cursors, menus, dialogs, string tables, message tables, accelerators, Borland forms and version info resources can be fully decompiled into their respective formats, whether as image files or *.rc text files. 3. Modify (replace) resources in executables. Image resources (icons, cursors and bitmaps) can be replaced with an image from a corresponding image file (*.ico, *.cur, *.bmp), a *.res file or even another *.exe file. Dialogs, menus, stringtables, accelerators and messagetable resource scripts (and also Borland forms) can be edited and recompiled using the internal resource script editor. Resources can also be replaced with resources from a *.res file as long as the replacement resource is of the same type and has the same name. 4. Add new resources to executables. Enable a program to support multiple languages, or add a custom icon or bitmap (company logo etc) to a program's dialog. 5. Delete resources. Most compilers add resources into applications which are never used by the application. Removing these unused resources can reduce an application's size. ---------------------------------------------- History: ---------------------------------------------- 8 April 2001 (Version 3.2.7): * DS_SETFONT is no longer decompiled into the STYLE statement of Dialog resources to avoid problems when recompiling scripts using Microsoft's resource compiler. * Extended Dialog FONT definitions (font weight, italics etc) are no longer displayed in decompiled scripts unless they have been changed to non-default values. This avoids problems when trying to recompile these scripts with both MS's and Borland's resource compilers which still do not support full font definitions for Dialogs. * Bug fix: Occasional error when saving non-standard resource types to *.res files. 10 March 2001 (Version 3.2.6): * Resources can now be added to executables which previously did not contain resources. * Bug fix (introduced in the last update): Unicode to multibyte character conversion was causing problems with some non-English resources. 3 March 2001 (Version 3.2.5): * Enhanced the Dialog Editor's functionality when adding new controls. * The line number of Editor's insertion point is now displayed on the left of the statusbar. * The Menu Preview is now able to display popup menus which don't have a caption. * Bug fix (introduced in the previous update): Dialogs displaying bitmaps would no longer always display the correct size of the bitmap. * Other minor improvements. 20 February 2001 (Version 3.2.4): * A Dialog Editor has been added and can be activated by right clicking on a Dialog Preview. * Plain text resources can now be modified and recompiled using the internal editor. * Bug-fix: Dialog scripts were not being displayed if either the dialog width or dialog height equalled zero. * Bug-fix: Occasionally a valid menu script would raise an error when compiling. * Bug-fix: StringTable entries with more than 50 special characters (\t,\n etc) could not be viewed and raised an error. 28 January 2001 (Version 3.2.3): * The Dialog Preview/Designer is now detached from the main window. * Whenever a control is selected in the Dialog Designer, its definition in the script will also be flagged with a red marker. * Several minor bug fixes. 14 January 2001 (Version 3.2.2): * Programs which are modified will now have their CheckSums updated too. * Combobox controls in the preview dialog now have resizing handles which reflect the size of its dropdown window (ie consistent with the dialog script). * A control can now be deleted by using the DEL key once it has been selected in a preview dialog. * Bug fix: Resource Hacker crashed when Alt+C was pressed when the Preview Dialog had focus. 9 January 2001 (Version 3.2.1): * Numerous bug fixes: - STRINGTABLE with StringID = 0 will now compile; - ACCELETATOR recompile bug fixed. - Old style bitmaps will now be displayed; - A maximised state will be retained between sessions; - Alt+C will now compile when Preview Dialog has focus; - Text ending with doubleslashes (eg: "bug\\") will compile; - DIALOG scripts containing MENU or CLASS statements would occasionally raise an error on compiling. - FONT statement in DIALOGEX scripts now fully supports FontWeight, Italic and FontCharset parameters. - Several other minor bug fixes/cosmetic improvements. 1 January 2001 (Version 3.1): * Most-Recently-Used file list added to File menu. * Bug fix: Unusual characters in filenames would not be correctly read by the commandline script parser. * Visual redesign tool for dialogs improved. * Warned dialog added whenever leaving a resource which has been modified but not recompiled. * Edit menu added. * Images can now be copied to the clipboard. * User defined resources containing just plain text will now be displayed as text, not as binary data. 12 December 2000 (Version 3.0): * Resource items can now be added from files of any binary type, no longer needing to compile them into *.res files first. This includes, but is not restricted to image files (*.ico, *.cur, *.bmp). * Commandline Scripting added. All the functionality of Resource Hacker (apart from viewing resources) can now be accessed from the commandline without having to open Resource Hacker. * Added Any File (*.*) option to Open File Dialog File types (no longer limited to exe, dll, ocx and cpl files). However, the file must still be a Win32 PE format file. * Save As Dialog now warns users attempting to save resources to non-existant directories. * Bug fix: MSVC++ debug table offsets were not being updated when resources were modified. * VersionInfo resources can now be modified etc. * Numerous other minor improvements. 1 November 2000 (Version 2.6): * Text search added - find resource items containing text compiled in both ANSI and UNICODE formats. * "File Save" menu option added. The original file is backed up if a backup copy does not already exist. (eg: MyProgram.exe will be copied to MyProgram_original.exe, unless it already exists, before being modified.) * Bug Fix: VersionInfo resources would occasionally not decompile correctly. 10 September 2000 (Version 2.5): * Resources can now be deleted. (nb: VersionInfo resources cannot be deleted). * Bug Fix: Modified applications occasionally displayed the generic executable icon, not the application's icon. * Fixes to a couple of other minor bugs. 18 August 2000 (Version 2.4.0.4): * Bug Fix: Would not compile some Chinese text. * Improved translation support. Scripts are now compiled using the codepage appropriate to the internal editor's selected font rather than the operating system's default codepage. (Thanks to Frank Cheng for feedback while fixing both these DBCS issues.) * Bug fix: Occasionally StringTable resources would not be decompiled. * Bug fix: Accelerators would not compile if they included the ASCII keyword. * The command line will now accept a filename as a parameter. * The Samples.dll file is no longer included in the download. * Homepage added: http://rpi.net.au/~ajohnson/resourcehacker. 3 July 2000 (Version 2.4.0.3): * Bug Fix: Bug introduced with changes in the previous update which caused an error in "Update all Resources" preventing any updates. * Bug Fix: Occasional bug when extracting resources to a RES file. * A couple of very minor improvements to the compiler have also been made. 26 May 2000 (Version 2.4.0.2): * Multibyte character set support (Japanese, Chinese etc) for the internal editor has been added (with thanks to Bob Ishida for feedback during debugging). * Bug fix: Cursors with multiple images were not being correctly imported when replacing cursors. * Numerous other improvements and cosmetic changes. * A number of documentation errors in the help file have also been fixed. 20 Apr 2000 (Version 2.3.0.6): * The JPG and MIDI data formats are now detected and displayed or played. * Bug Fix: WAVE, AVI and GIF formats were not being detected in the RCDATA section. * Bug Fix: The folder where resource data was last saved was not being stored between sessions. 16 Apr 2000 (Version 2.3.0.5): * The AVI and WAVE data formats are now detected and displayed or played. * The GIF data format is now detected and displayed (with thanks to Anders Melander for TGifImage). * A number of sample resources have been removed from the Resource Hacker executable and placed in "Samples.dll". (This dll can be deleted without affecting Resource Hacker.) 13 Feb 2000 (Version 2.3.0.3): * The editor's font can now be changed. This enables changes to the editor's font script (character code) which is useful when translating resources. * Menu editor [Show/Hide] button added. * Coloured treeview cursor removed :-(. * Dialog controls now have coordinates displayed when selected too. (see version 2.3.0.2). 11 Feb 2000 (Version 2.3.0.2): *Bug Fix: Major modifications to dll's still occasionally failed. Now finally fixed. *The treeview window width can now be adjusted. *Resource Hacker's window size and position is now stored between sessions (in an *ini file ) as are the folders for the last opened and saved files. *While moving or resizing dialog controls - the control coordinates (in dialog units) are now displayed in the panel located above the dialog script. 9 Feb 2000 (Version 2.3.0.1): *Resources can now be added. *LANGUAGE statements in resource scripts are no longer "read-only". *Resources can now be updated with all matching resources in an external resource file (*.res) in a single operation. *Bug Fix: Replacing cursors & icons from resource files (*.res) was broken. 1 Feb 2000 (Version 2.2.0.1): *Bug Fix: Modifying dll's occasionally stopped them working (the relative virtual addresses of sections following the resource section were not being adjusted). *MESSAGETABLE and ACCELERATOR resources can now also be edited and recompiled using the internal editor. *Dialogs will be displayed even when they contain unregistered controls (a gray rectangle will appear in the position of each unregistered control). *Dialog editor now compiles controls defined by using either of the following styles: CONTROL text, control-ID, control-class, control-style, x, y, width, height CLASS_MAIN_STYLE text, control-ID, x, y, width, height, control-style *Modified files now preserve the original file date and time. *Resources (menus, dialogs, stringtables, accelerators & messagetables) can now be saved in a single operation to a single *.rc file. *Numerous other minor improvements. 17 Jan 2000 (Version 2.1.1.4): *Bug Fix: Memory leak fixed. *Bug Fix: Numeric captions in dialog resources were not compiled correctly. *Resources can now be saved to file as a binary. *Improved handling of special characters (tab, newline, backslash & doublequote) in resource scripts. *Dialog resource forms and controls can now be visually moved and resized. 2 Jan 2000 (Version 2.0.1.2): *DIALOG, DIALOGEX, MENU, MENUEX, STRINGTABLE and BORLAND FORM resources can now be edited and recompiled using the internal editor. *Bug Fix - large resources which were displayed as hexidecimal took forever to load. The display algorithm for these resources is now much faster. *Bug Fix - Tab and Newline characters are now converted to \t and \n respectively in dialog script control captions. *Bitmap Exchange Dialog added - enables viewing of bitmaps while selecting. *Individual icons are no longer scaled but are displayed at their actual size. *Files can now be opened by dragging them into Resource Hacker. 12 Dec 1999 (version 1.0.0.5): *Bug Fix - Exchanging cursors from *.cur files was broken. *Bug Fix - Menu resource scripts did not always decompile correctly. * Icon & Cursor Exchange Dialogs now display selected images. *Icons & cursor resources are now hidden in the 'Exchange Other Resources' dialog. *MENUEX and DIALOGEX resource scripts are now properly supported. *Resource scripts now decompile control style attributes too. *Borland Delphi form files now decompiled. *Accelerators now decompiled. *Help file added. 03 Dec 1999 (version 0.5.0.1): *Initial Release. ---------------------------------------------- Known limitations: ---------------------------------------------- 1: When decompiling and recompiling Borland's Delphi forms in applications compiled with Delphi ver 5.0, there may be errors in the recompiled application if frames have been used to create the form. This error is due to the inline DFM keyword not being recognized. While decompiling, the inline keyword will be replaced by object and, if manually corrected before recompiling, inline will be rejected by the internal compiler. Status: Resource Hacker is currently compiled with Delphi 3.02 but will need to be compiled with Delphi 5 to fix this bug. This will happen when I can afford it (or someone makes a donation :-)). 2: A number of applications have been "compressed" with an EXE compressor after they have been compiled to reduce the size of a program. This has a side-effect of making it much more difficult to view and modify resources. When a "compressed" executable is viewed with Resource Hacker, only each resource's type and name will be visible but not the actual resource image. Status: This is not viewed as a bug. The application developer may well have viewed this as beneficial feature so no "fix" is planned. ---------------------------------------------- Licence Agreement: ---------------------------------------------- This program has been released as freeware under the following conditions: 1. It is not to be distributed via the internet or via any other media without the prior approval of the author. In particular, it is not to be made available from internet sites which promote the illegal modification of software. 2. It is not used in such a way as to modify the copyright notice of this or any other computer program, to in any way disguise the registered user or owner of any software, or to in any way illegally modify software. 3. No guarantee of performance is given. Any damage to software resulting from using this software will be the responsibility of the user.