Quantcast
Channel: Windows XP Latest Topics
Viewing all articles
Browse latest Browse all 2070

Inno Setup 6 on Windows XP

$
0
0

Facing the same problem as many other people on this forum, namely trying to install software that would most likely work on Windows XP, but being hindered by the Inno Setup installer that would not run, I was, it seems, able to get farther than other people who posted, but still unable to install.

When I first ran the Setup.exe file, the "Setup.exe is not a valid Win32 application" message popped up. As advised on this forum, I changed the vaules of "OS Major Version" and "SubSys Major Version" in the executable from 06 to 05 (there are many tools that can do it and in fact it can be done with any hex editor, as the values seem to always be at 148 and 150 hexadecimal respectively).

That still didn't help much because running the patched executable just caused the box with the lines "Unable to execute file in the temporary directory. Setup aborted." and "Error 193: %1 is not a valid Win32 application." to appear. Using Process Monitor, it's possible see how the original Inno Setup executable creates a temporary executable in the temporary directory and using a file undelete tool (I used R-Studio, but I think any other would perform equally well), it's possible to recover the file after it's deleted when the setup is aborted. That Setup.tmp file, too, needs to have the "OS Major Version" and "SubSys Major Version" changed to 05, but even after patching you cannot just run it without any command line, as it gives the "Messages file "...\Setup.msg" is missing. Please correct the problem or obtain a new copy of the program." error.

The temporary setup file, I believe, is assembled from the data stored (in compressed form) inside the original setup file, so you cannot just patch the original setup file to fix the temporary one. The best thing I could do to work around it was to suspend the process of the original Setup.exe before the temporary Setup.tmp is executed with the AutoIt script given at https://www.autoitscript.com/forum/topic/180996-set-application-in-idle-state/?tab=comments#comment-1299592 (obviously, modified to run the Setup.exe executable and leave it suspended until commanded to resume it, see in the attachment) and then, using WinHex, open the Entire memory of the Setup.exe process and then modify the "OS Major Version" and "SubSys Major Version" values of the temporary file while it's still in RAM (it has to be done in two places).

That still brought no joy because the original Setup.exe, apparently, verifies the checksum of the temporary Setup.tmp after extracting it to RAM and before it's written to disk, so after resuming the patched process I just got "The setup files are corrupted. Please obtain a new copy of the program.". That still didn't cause me to give up, as I began searching for the checksum of the unmodified Setup.tmp in the original Setup.exe and to my joy was able to find out that it's stored as CRC32 in the "inverted" form (e. g. 05975E97 as 975E9705). So I patched that value in memory as well (it, obviously, can also be done on the Setup.exe file itself), changing it to the CRC32 of the modified Setup.tmp and it caused the CRC check to succeed.

You'd think that after all that effort I would be rewarded with the install wizard, but alas... The temporary temporary Setup.tmp did finally execute, but only to display "This program does not support the version of Windows your computer is running.". Having executed it once, it was no longer necessary for me to go through all the initial steps to do it again, as I could now see the command line with which it ran (I used Advanced Process Termination for that, but I think Process Explorer would do as well), in my case it was Setup.tmp /SL5="$360218,804352,0,O:\Install\Setup.exe" so I could simply rename Setup.tmp to Setup.exe and run it manually, but I couldn't make any further progress and I feel that I have to give up now.

If anyone can figure out a way past that (probably last) obstacle, I'd be extremely grateful, as I do need the software. I think it's some value stored somewhere in the original Setup.exe that can be modified, or perhaps there's a way to get Windows XP to report a higher version than it normally does, as one can certainly get it to report a lower version by setting it in the Compatibility tab or an executable's properties, so any advice would be appreciated.

Setup.exe.au3

Setup.tmp.part01.rar Setup.tmp.part02.rar Setup.tmp.part03.rar Setup.tmp.part04.rar Setup.tmp.part05.rar


Viewing all articles
Browse latest Browse all 2070

Trending Articles