Mike Noble wrote:
Angela Kahealani wrote:I understand the nonexecutability of WinDblOwS .exe's on Linux, but
I have a related question: some folks distribute (e.g. on the WWW),
downloadable "stuff" which is theoretically NOT an WinDblOwS executable,
but instead some kind of compressed archive, which nevertheless has an .exe extension, which I presume means that it is a self-extracting archive IFF you have WinDblOwS to execute it on... and the question is:
is there any way to retrieve the contents running Linux, i.e. is there a Linux program that knows how to extract the archive's contents, ignoring the self-extracting wrapper?
You can learn about the file type by the following command:
file file.exe
file will tell you what it can about the file.
Unfortunately, if you run file against a self-extracting Win archive, all it will tell you is " MS-DOS executable (EXE), OS/2 or MS Windows"
But if you run "unzip -t" against it, it will show as a valid zip archive:
[john@starfleet incoming]$ file unz551xN.exe
unz551xN.exe: MS-DOS executable (EXE), OS/2 or MS Windows
[john@starfleet incoming]$ unzip -t unz551xN.exe
Archive: unz551xN.exe
Info-ZIP's portable UnZip, version 5.51, Windows 9x/NT/2K/etc. exes and docs.
For latest information about Zip and UnZip, check out our spiffy web sites at
http://www.info-zip.org/pub/infozip/
http://ftp.info-zip.org/pub/infozip/
and our principal ftp distribution sites at
ftp://ftp.info-zip.org/pub/infozip/ (sources and binaries)
ftp://ftp.icce.rug.nl/infozip/ (encrypting binaries only).
You betcha.
testing: README OK
testing: LICENSE OK
testing: COPYING.OLD OK
testing: WHERE OK
testing: unzip.txt OK
testing: unzipsfx.txt OK
testing: funzip.txt OK
testing: zipinfo.txt OK
testing: ziplimit.txt OK
testing: README.NT OK
testing: unzip.exe OK
testing: funzip.exe OK
testing: unzipsfx.exe OK
testing: SFXWiz32.exe OK
testing: unzipsfx-gcc.exe OK
testing: SFXWiz32-gcc.exe OK
No errors detected in compressed data of unz551xN.exe.
That's because file only looks for a few "magic" bytes in the file header, and once it finds a match, that's the type of file it tells you. E.g. for ZIP archives:
# ZIP archives (Greg Roelofs, c/o zip-bugs@xxxxxxxxxxxxxx) 0 string PK\003\004 Zip archive data >4 byte 0x09 \b, at least v0.9 to extract >4 byte 0x0a \b, at least v1.0 to extract >4 byte 0x0b \b, at least v1.1 to extract >4 byte 0x14 \b, at least v2.0 to extract
and for DOS executables:
0 string MZ MS-DOS executable (EXE)
--
-John (john@xxxxxxxxxxx)