XPEHOPE3KA wrote:Well, everything, which is small & nice, is ... wrong.
As i posted my small & nice solution i didn't have much experience with older versions of Inno Installer nor the special ~unsupported~ cases. It was build on and worked very well for the 5.x series. But
XPEHOPE3KA's post tempted my ego and i found the current available solution wasn't supporting all available (to me) versions of the Inno Setup Installer.
So here goes...
Code: Select all
;; -----------------------------------------------------------------------
; Inno Setup (v3.0.0beta - v5.1.2 and up)
; MultiArc addon by Gnozal, arsvrn, MultiArc team and deus-ex
;
; Version addon: 0.18
;
; Uses: Inno Setup Unpacker v0.17
; Homepage: http://innounp.sourceforge.net
;
;
; Inno Setup Unpacker, MultiArc and IDs
; ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Inno Setup Unpacker detects Inno-Installers by the following signatures:
;
; "Inno Setup Setup Data (" and
; "My Inno Setup Extensions Setup Data ("
;
; Should you come across an Inno-Installer which MultiArc isn't able to
; open you can verify using following command line:
;
; innounp.exe -v -m <path\installer.exe>
;
; If innounp.exe displays a valid listing you can add information to support that
; Installer version to this addon. Open the file with Total Commanders Lister [F3],
; switch to Hex mode [3] and perform a search [Ctrl+F] with the signatures listed
; above (without the quotes).
;
; Aquire the signature start offset (left column in Hex-view) and convert the value
; using Windows Calculator. Change Calculator view to scientific (view menu), press
; [F5], enter the previously aquired Offset (hexadecimal value) and press [F6] to
; receive the decimal value. Retrieve the result [Ctrl-C] and add it to the end of
; the IDPos string [Ctrl-V] separated with a comma (eg. IDPos=1, 2, 3).
;
;
; Why two addon sections?
; ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; While Inno Setup Unpacker v0.17 supports all Inno-Installers from version v3.x up
; it cannot handle versions with one of the following signatures:
;
; "Inno Setup Setup Data (3.0.1) with ISX"
; "Inno Setup Setup Data (3.0.3) with ISX"
; "Inno Setup Setup Data (4.2.2jpe)"
;
; First section [INNO 3.x] filters out 'with ISX' Installers and adds additional support
; for the slightly different signature used in Inno v3.0.6.1 Installers.
; The second section [INNO 4.x, 5.x] filters out '4.2.2jpe' Installers which required
; that section to become quite detailed.
;
; Excursion
; ¯¯¯¯¯¯¯¯¯
; MultiArc currently doesn't support wildcards for the ID string which would allow
; utilization of only one ID signature for the [INNO 4.x, 5.x] section while keeping
; the unsupported-filter intact, for example:
;
; ID=49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28 ?? 2E ?? 2E ?? 29
; which translates to "Inno Setup Setup Data (?.?.?)"
;
; This might change with future versions of MultiArc which is maintained and improved
; by the MultiArc team.
;
;
; Handling unsupported Inno-Installers using IETotal
; ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Installers unsupported by Inno Setup Unpacker v0.17 are filtered out and can be handled
; with the IETotal plugin for Total Commander. In order for this to work it is required
; that all MultiArc related entries in the [PackerPlugins] section of <wincmd.ini> are
; arranged in front of IETotal related entries, for example:
;
; [PackerPlugins]
; 7z=69,%commander_path%\wcx\multiarc\multiarc.wcx <- MultiArc entry, in front of IETotal
; ...
; sqx=95,%commander_path%\wcx\sqx\totalsqx.wcx
; ...
; cmp=68,%commander_path%\wcx\ietotal\ietotal.wcx <- IETotal entry, bellow MultiArc
; ...
;
;
; Changes
; ¯¯¯¯¯¯¯
; 2006-05-20 by deus-ex
; + added one more IDPos to support another 'Inno 4.0.9(UPXed)' variant (thanks to XPEHOPE3KA)
;
; 2006-05-18 by deus-ex
; + restructured sections to enhance filter for unsupported Installers
; + added filter for 'Inno 3.0.3 with ISX'
; + added filter for 'Inno 4.2.2jpe' (eg. SKYPE-installer)
; + added support for 'Inno 3.0.6.1' (previously handled by IETotal)
; + added support for 'Inno 4.0.9(UPXed)' (innounp can't handle these when unUPXed)
; + added support for 'Inno 4.0.10(UPXed)' (dito)
; + increased filename length of formatstring, fixes truncated filenames in listing (eg. GIMP-installer)
; + added ascii conversions of ID strings (for readability, optional)
; + added hexadecimal conversions of IDPos strings (allows quick IDPos checks, optional)
; + rewrote addon-text, restructured layout, fixed spelling
;
; 2006-04-06 by MultiArc team
; * rewrote ID, IDPos for better archive detection. Solution by arsvrn.
;
; 2004-04-02 by Maxwish
; * corrected datestring in 'format0' from "yyyy.mm.dd" to "yyyy.tt.dd"
;
; 2004-04-19 by Maxwish
; * added '-m' parameters (now will also show embedded files)
; * added 'BatchUnpack=1' (improves speed)
; * removed { } from {@%LQ} in 'extract' strings (unneeded)
;
; -----------------------------------------------------------------------
;
[INNO 3.x]
Description="InnoSetup 3.x"
;Filters unsupported "Inno Setup Setup Data (3.0.x) with ISX" Installers
Archiver=%commander_path%\util\innounp
Extension=exe
ID=49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28 33 2E 30 2E 31 29 00, 49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28 33 2E 30 2E 33 29 00, 49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28 33 2E 30 2E 35 29 00, 49 6E 6E 6F 20 53 65 74 75 70 20 45 78 74 65 6E 73 69 6F 6E 73 20 53 65 74 75 70 20 44 61 74 61 20 28 33
;ID="Inno Setup Setup Data (3.0.1) , Inno Setup Setup Data (3.0.3) , Inno Setup Setup Data (3.0.5) , Inno Setup Extensions Setup Data (3"
IDPos=53572, 54084, 54087
;IDPos=0xD144, 0xD344, 0xD347
IgnoreErrors=0
BatchUnpack=1
SkipLIST=1
Start="^--"
End="^--"
Format0="zzzzzzzzzz yyyy tt dd hh mm nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
List=%P -v -b -m %AAQ %O
Extract=%P -x -b -m %AAQ @%LQ
ExtractWithPath=%P -x -b -m %AAQ @%LQ
;
[INNO 4.x, 5.x]
Description="InnoSetup 4.x, 5.x"
;Filters unsupported "Inno Setup Setup Data (4.2.2jpe)" Installers
Archiver=%commander_path%\util\innounp
Extension=exe
ID=49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28 34 2E 30, 49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28 34 2E 31, 49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28 34 2E 32 2E 31, 49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28 34 2E 32 2E 32 29, 49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28 34 2E 32 2E 33, 49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28 34 2E 32 2E 35, 49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28 34 2E 32 2E 36, 49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28 35
;ID="Inno Setup Setup Data (4.0, Inno Setup Setup Data (4.1, Inno Setup Setup Data (4.2.1, Inno Setup Setup Data (4.2.2), Inno Setup Setup Data (4.2.3, Inno Setup Setup Data (4.2.5, Inno Setup Setup Data (4.2.6, Inno Setup Setup Data (5"
IDPos=36696, 36740, 36744, 37256, 37768, 38280, 55612, 389071, 729159, 1517134
;IDPos=0x8F58, 0x8F84, 0x8F88, 0x9188, 0x9388, 0x9588, 0xD93C, 0x5EFCF, 0xB2047, 0x17264E
IgnoreErrors=0
BatchUnpack=1
SkipLIST=1
Start="^--"
End="^--"
Format0="zzzzzzzzzz yyyy tt dd hh mm nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
List=%P -v -b -m %AAQ %O
Extract=%P -x -b -m %AAQ @%LQ
ExtractWithPath=%P -x -b -m %AAQ @%LQ
Tested with following Inno Setup Installers:
Code: Select all
_______________________________________________________________________________________
Version Offset(hex) IDPos Unpacker Comment
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
1.3.6 0xCF44 53060 IETotal
1.3.9 0xCF44 53060 IETotal
1.3.10 0xCF44 53060 IETotal
1.3.16 0xCF44 53060 IETotal
1.3.16(ISX) 0xEA50 59984 IETotal
1.3.17(ISX) 0xEA50 59984 IETotal
1.3.20(ISX) 0xCF44 53060 IETotal
1.3.21 0xCF44 53060 IETotal
1.3.21(ISX) 0xCF44 53060 IETotal
1.3.25 0xD144 53572 IETotal
1.3.25(ISX) 0xD144 53572 IETotal
---------------------------------------------------------------------------------------
2.0.8 0xD144 53572 IETotal
2.0.8(ISX) 0xD144 53572 IETotal
2.0.8(UPXed) 0x4435B 279387 IETotal
2.0.11 0xD144 53572 IETotal
2.0.11(ISX) 0xD144 53572 IETotal
2.0.17 0xD144 53572 IETotal
2.0.18 0xD144 53572 IETotal
2.0.18(ISX) 0xD144 53572 IETotal
---------------------------------------------------------------------------------------
3.0.1 0xD144 53572 InnoUnp
3.0.1(ISX) 0xD144 53572 IETotal
3.0.3 0xD344 54084 InnoUnp
3.0.3(ISX) 0xD344 54084 IETotal
3.0.5 0xD344 54084 InnoUnp
3.0.6.1 0xD347 54087 InnoUnp
---------------------------------------------------------------------------------------
4.0.3 0xD93C 55612 InnoUnp
4.0.5 0xD93C 55612 InnoUnp
4.0.9 0xD93C 55612 InnoUnp
4.0.9(UPXed) 0x5EFCF 389071 InnoUnp (InnoUnp can't open these when unUPXed)
4.0.9(UPXed) 0xB2047 729159 InnoUnp (InnoUnp can't open these when unUPXed)
4.0.10 0xD93C 55612 InnoUnp
4.0.10(UPXed) 0x17264E 1517134 InnoUnp (InnoUnp can't open these when unUPXed)
4.1.0 0xD93C 55612 InnoUnp
4.1.3 0xD93C 55612 InnoUnp
4.1.5 0xD93C 55612 InnoUnp
4.1.8 0x8F58 36696 InnoUnp
4.2.1 0x8F84 36740 InnoUnp
4.2.2 0x8F84 36740 InnoUnp
4.2.2(jpe) 0xB8B8 47288 IETotal (eg. SKYPE-installer)
4.2.3 0x8F88 36744 InnoUnp
4.2.5 0x8F88 36744 InnoUnp
4.2.6 0x8F88 36744 InnoUnp
---------------------------------------------------------------------------------------
5.0.4 0x9188 37256 InnoUnp
5.1.2 0x9588 38280 InnoUnp
EDIT: added one more IDPos to addon (thanks to XPEHOPE3KA)
EDIT v2.0: spelling "ID's" => "IDs" (icfu knows what he does, i don't)
Regards,
deus-ex