TC v7.04a unpacked executable
Moderators: Hacker, petermad, Stefan2, white
- ghisler(Author)
- Site Admin
- Posts: 50475
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
- theosdikaios
- Senior Member
- Posts: 228
- Joined: 2006-02-04, 13:02 UTC
V7.02 is available here
https://plugins.ghisler.com/img/unpack32_702.exe
https://plugins.ghisler.com/img/unpack32_702.exe
"Since there are many things which have never happened and never will happen,
and which nevertheless are clearly conceivable, and imply no contradiction,
how can one say they are absolutely impossible?" Leibniz
and which nevertheless are clearly conceivable, and imply no contradiction,
how can one say they are absolutely impossible?" Leibniz
- ghisler(Author)
- Site Admin
- Posts: 50475
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Yes it is - I have edited your post (removed the final dot after the URL) to make the download link work.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
2Christian
At http://www.ghisler.com/download.htm & http://www.ghisler.com/tcmd702a.md5 we can get the MD5 signature of current Tc version, may you post the MD5 signature of current&future unpacked versions on the same page or at http://www.ghisler.com/unpack32_702a.md5 ?, thanks.
- ghisler(Author)
- Site Admin
- Posts: 50475
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
I don't think that this is necessary, because I'm hosting the unpacked version only myself (fileburst). The file is digitally signed by our certificate.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
Hmmm...
1. A digital signature can simply be removed, in which case Windows won't complain about a broken one. And the point imho was that one could accidently download something that has a completely different even, in which case your digital signature doesn't help in any way
Instead of the MD5, you could post the signer name "C. Ghisler & Co." as well as the serial number (7d6d8a1ee5d08c18f072f8633139fb7a) which would allow anyway to verify the file by checking the signature you mentioned
2. I just downloaded unpack32_702a.exe - and receive an error message "The image file ... is valid, but is for a machine type other than the current machine". The file doesn't even have a valid PE header. Is it still a 16 bit executable maybe? That wouldn't run on 64 bit Windows any more (which only has a 32 bit compatibility layer).
3. If I uncompress the original myself by using the UPX command line, it'll close itself because it most possible has been corrupted by a virus.
4. I hate UPX - you get slightly less disk space used (where disk space is the cheapest part of the system), but every single instance if you're running multiple ones takes more memory (and even though memory is cheap, too, when I run multiple VMs at the same time, memory is a thousand times more precious than disk space). 1 MB saved on HD (or just 0.4 if the unpack32_702a.exe would be the size of the unpacked version), 3 MB wasted in memory.
5. Because of this problem, I wanted to try to edit the dialog resource to have a different position, but now can't, because I can't edit resources in a compressed file, and TC warns (see #3) as soon as the file is decompressed.
Can't run the decompressed version, can't run the version decompressed by myself
1. A digital signature can simply be removed, in which case Windows won't complain about a broken one. And the point imho was that one could accidently download something that has a completely different even, in which case your digital signature doesn't help in any way

Instead of the MD5, you could post the signer name "C. Ghisler & Co." as well as the serial number (7d6d8a1ee5d08c18f072f8633139fb7a) which would allow anyway to verify the file by checking the signature you mentioned

2. I just downloaded unpack32_702a.exe - and receive an error message "The image file ... is valid, but is for a machine type other than the current machine". The file doesn't even have a valid PE header. Is it still a 16 bit executable maybe? That wouldn't run on 64 bit Windows any more (which only has a 32 bit compatibility layer).
3. If I uncompress the original myself by using the UPX command line, it'll close itself because it most possible has been corrupted by a virus.
4. I hate UPX - you get slightly less disk space used (where disk space is the cheapest part of the system), but every single instance if you're running multiple ones takes more memory (and even though memory is cheap, too, when I run multiple VMs at the same time, memory is a thousand times more precious than disk space). 1 MB saved on HD (or just 0.4 if the unpack32_702a.exe would be the size of the unpacked version), 3 MB wasted in memory.
5. Because of this problem, I wanted to try to edit the dialog resource to have a different position, but now can't, because I can't edit resources in a compressed file, and TC warns (see #3) as soon as the file is decompressed.
Can't run the decompressed version, can't run the version decompressed by myself

UPX increases memory usage only for a while. If it's needed, OS will swap unused pages out.CCRDude wrote:4. I hate UPX - you get slightly less disk space used (where disk space is the cheapest part of the system), but every single instance if you're running multiple ones takes more memory (and even though memory is cheap, too, when I run multiple VMs at the same time, memory is a thousand times more precious than disk space). 1 MB saved on HD (or just 0.4 if the unpack32_702a.exe would be the size of the unpacked version), 3 MB wasted in memory.
Oh, come on... swap space is space as well, and swapping means that more time is wasted on disk I/O than would be when starting an uncompressed executable, so you don't even have the I/O advantage I've seen mentioned earlier any more.
Also, afaik multiple processes from an UPX executable are not able to share PE sections in memory (something provided by the loader), something that, if your linker supports it, can save a lot of additional memory when running multiple instances (doesn't look to be the case with TC, at least after a quick glimpse only). And that's an increase that no swapping will save you from.
Also, afaik multiple processes from an UPX executable are not able to share PE sections in memory (something provided by the loader), something that, if your linker supports it, can save a lot of additional memory when running multiple instances (doesn't look to be the case with TC, at least after a quick glimpse only). And that's an increase that no swapping will save you from.
Nope. It's usually on a hard drive. Hard drives are cheap. The file can be placed on a pendrive - which costs more.CCRDude wrote:Oh, come on... swap space is space as well
And with slow pendrives / network shares you can get significant startup time improvement.
But it happens only once / file execution. Anytime later, if page is read from a swap file - it would be read from a hard drive anyway.CCRDude wrote:swapping means that more time is wasted on disk I/O than would be when starting an uncompressed executable, so you don't even have the I/O advantage I've seen mentioned earlier any more.
You are right, I forgot about it. But it's _usually_ a minor drawback (or not at all) - how many instances do you run simultaneously (on 1 machine)? I guess usually 1, rarely more than 2. With libraries - it's, of course, a different story.CCRDude wrote:Also, afaik multiple processes from an UPX executable are not able to share PE sections in memory (something provided by the loader), something that, if your linker supports it, can save a lot of additional memory when running multiple instances (doesn't look to be the case with TC, at least after a quick glimpse only). And that's an increase that no swapping will save you from.
The unpack32_702a.exe is not the unpacked TC executable itself, but rather a self-extractor (installer) for this file. Yes, this installer is 16bit... but as already said, you can unpack it from another TC instance using Ctrl+PageDown and extract the real (32bit) TotalCmd.exe file from there.CCRDude wrote:2. I just downloaded unpack32_702a.exe - and receive an error message "The image file ... is valid, but is for a machine type other than the current machine". The file doesn't even have a valid PE header. Is it still a 16 bit executable maybe? That wouldn't run on 64 bit Windows any more (which only has a 32 bit compatibility layer).
The uncompressed file won't help you here - if you modify it (using a resource editor, for example), you'll receive a modification warning, just as when you unpacked the packed executable.CCRDude wrote:5. Because of this problem, I wanted to try to edit the dialog resource to have a different position, but now can't, because I can't edit resources in a compressed file, and TC warns (see #3) as soon as the file is decompressed.
Can't run the decompressed version, can't run the version decompressed by myself
For swapping-in - yes. However, first you have to swap the pages out; in which case, they have to be written to disk for the compressed executable, but can be simply "forgotten" (no disk operation) for the uncompressed one because they already are on disk, in the original exe file (at least for read-only pages, which means 90% of TotalCmd.exe).m^2 wrote:But it happens only once / file execution. Anytime later, if page is read from a swap file - it would be read from a hard drive anyway.
- theosdikaios
- Senior Member
- Posts: 228
- Joined: 2006-02-04, 13:02 UTC
2m^2

In my case at least 2: one as normal user, one as admin. IMHO compressed executables are obsolete on todays OS with its virtual memory manager and in normal cases an uncompressed exe is the better choice.how many instances do you run simultaneously (on 1 machine)? I guess usually 1, rarely more than 2.

"Since there are many things which have never happened and never will happen,
and which nevertheless are clearly conceivable, and imply no contradiction,
how can one say they are absolutely impossible?" Leibniz
and which nevertheless are clearly conceivable, and imply no contradiction,
how can one say they are absolutely impossible?" Leibniz
@m^2: three instances are not rare. I like to keep them set to specific left-right situation (e.g. one for FTP, one with local and network drive backup folder opened, one for the folders I currently work with normally). Tabs are nice, but what I am missing are tab-combinations (change on left and right side according to presets), so I need instances 
Ok, three instances are about 9 MB of additional memory - not a huge thing really when modern machines have 1-2 GB. But if I use it on a Win95 machine (and since I try to keep all my applications backward compatible, I test there often) with 64 MB (that's the typical size I want my apps to be able to run on, and more creates problems in virtual machines), 3 MB of a single instance is 5%!
Or, when I started Vista and XP virtual machines, my 2 GB are reduced by 1 GB in an instant. With the system taking up more than 1 GB usually, that immediately forces some swapping. That means the swapping of TC happens exactly when I have to wait for all the other swappings anyway - all in a heap, where I don't like it
Well, and I have to admit, it's also the old DOS programmers "small is beautiful" attitude - when you've coded software that is allowed a few 100 KB only, you just hate to see /any/ memory wasted
@gigaman: yes, I've noticed that (warning when modifying file), so I've decided for a very small background app that looks for the queue window (window with class name 'DOWNDLGLIST2') and uses SetWindowPos to place it where I want. Problem solved
Anyway, I think the UPX discussion is an eternal one and people usually don't find common ground there, so as long as there is an unpacked one available somewhere, I'm happy

Ok, three instances are about 9 MB of additional memory - not a huge thing really when modern machines have 1-2 GB. But if I use it on a Win95 machine (and since I try to keep all my applications backward compatible, I test there often) with 64 MB (that's the typical size I want my apps to be able to run on, and more creates problems in virtual machines), 3 MB of a single instance is 5%!
Or, when I started Vista and XP virtual machines, my 2 GB are reduced by 1 GB in an instant. With the system taking up more than 1 GB usually, that immediately forces some swapping. That means the swapping of TC happens exactly when I have to wait for all the other swappings anyway - all in a heap, where I don't like it

Well, and I have to admit, it's also the old DOS programmers "small is beautiful" attitude - when you've coded software that is allowed a few 100 KB only, you just hate to see /any/ memory wasted

@gigaman: yes, I've noticed that (warning when modifying file), so I've decided for a very small background app that looks for the queue window (window with class name 'DOWNDLGLIST2') and uses SetWindowPos to place it where I want. Problem solved

Anyway, I think the UPX discussion is an eternal one and people usually don't find common ground there, so as long as there is an unpacked one available somewhere, I'm happy
