Как извлечь ZIP из самораспаковывающегося exe?

45246
TCS

Ну, субъект говорит обо всем. У меня есть exe, который является SFX, и я хочу извлечь ZIP из SFX. Как я могу это сделать?

14

7 ответов на вопрос

13
Dracs

7-Zip должен быть в состоянии сделать это. Вы можете щелкнуть правой кнопкой мыши файл и выбрать «Открыть архив» или перейти к файлу в 7-Zip и щелкните правой кнопкой мыши и выберите «Открыть внутри».

@Darcs: я не могу открыть архив, потому что почтовый индекс зашифрован паролем. Я просто хочу извлечь почтовый индекс из exe, без разархивирования в середине. TCS 13 лет назад 0
Не могу сказать, сработает ли он для вашего файла, но мне просто показалось, что мне просто нужно изменить расширение .exe на .zip. Он по-прежнему будет содержать исполняемые части файла, но 7-Zip, кажется, совершенно счастлив игнорировать его. Dracs 13 лет назад 0
7-zip откроет и распознает его, но я не хочу exe-часть в файле (чисто zip-файл, его заголовок PK, а не MZ, как exe). TCS 13 лет назад 0
Мне удалось сделать это с помощью шестнадцатеричного редактора. Простой zip-файл и отредактированный SFX идентичны. Процесс, который я сделал, заключался в поиске заголовка zip-файла в SFX. Для 7-Zip это, кажется, 37 7A до н.э., я сделал поиск последнего появления этого. Затем я удалил все до этого. Это, кажется, дает мне файл, идентичный архивированию моего тестового файла сам по себе. Если вам нужен шестнадцатеричный редактор, я использовал [XVI32] (http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm#download). Дайте мне знать, если это работает для вас или вам нужна дополнительная помощь. Dracs 13 лет назад 1
Если это правильный архив в формате ZIP, правильный способ найти данные - найти заголовок центрального каталога по его магическому номеру _four byte_ и прочитать центральный каталог, чтобы найти первый заголовок файла. JdeBP 13 лет назад 1
6
user2771443

On Linux it is possible with "zip" utility:

$ file london_f.exe london_f.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit 

Warning: The next line changes the original .exe file to make it a pure zip archive without the exe parts!

$ zip -J london_f.exe $ file london_f.exe london_f.exe: Zip archive data, at least v1.0 to extract $ zip --version Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license. This is Zip 3.0 (July 5th 2008), by Info-ZIP. Currently maintained by E. Gordon. Please send bug reports to the authors using the web page at www.info-zip.org; see README for details. ... 
1
Nobody

На Linux, если он упрямый и

zip -J file.exe 

не преобразует его в извлекаемый zip, потому что не-zip часть не просто добавлена, см. страницу руководства:

 -J --junk-sfx Strip any prepended data (e.g. a SFX stub) from the archive. 

тогда утилита zip имеет две другие полезные опции:

 -F --fix -FF --fixfix Fix the zip archive. The -F option can be used if some portions of the archive are missing, but requires a reasonably intact central directory. The input archive is scanned as usual, but zip will ignore some problems. The resulting archive should be valid, but any inconsistent entries will be left out.  When doubled as in -FF, the archive is scanned from the beginning and zip scans for special signatures to identify the limits between the archive mem‐ bers. The single -F is more reliable if the archive is not too much damaged, so try this option first.  If the archive is too damaged or the end has been truncated, you must use -FF. This is a change from zip 2.32, where the -F option is able to read a truncated archive. The -F option now more reliably fixes archives with minor damage and the -FF option is needed to fix archives where -F might have been sufficient before.  Neither option will recover archives that have been incorrectly transferred in ascii mode instead of binary. After the repair, the -t option of unzip may show that some files have a bad CRC. Such files cannot be recovered; you can remove them from the archive using the -d option of zip.  Note that -FF may have trouble fixing archives that include an embedded zip archive that was stored (without compression) in the archive and, depending on the damage, it may find the entries in the embedded archive rather than the archive itself. Try -F first as it does not have this problem.  The format of the fix commands have changed. For example, to fix the damaged archive foo.zip,  zip -F foo --out foofix  tries to read the entries normally, copying good entries to the new archive foofix.zip. If this doesn't work, as when the archive is truncated, or if some entries you know are in the archive are missed, then try  zip -FF foo --out foofixfix  and compare the resulting archive to the archive created by -F. The -FF option may create an inconsistent archive. Depending on what is damaged, you can then use the -F option to fix that archive.  A split archive with missing split files can be fixed using -F if you have the last split of the archive (the .zip file). If this file is missing, you must use -FF to fix the archive, which will prompt you for the splits you have.  Currently the fix options can't recover entries that have a bad checksum or are otherwise damaged. 

Так что постарайтесь

zip -F file.exe --out extracted.zip 

и если это не удается

zip -FF file.exe --out extracted.zip 
0
Rory Alsop

Вы можете открыть файл SFX с помощью WinZip, если хотите получить доступ к файлам внутри. Вам не нужно выполнять файл.

Похоже, что ряд других утилит сжатия также откроет файлы SFX.

Я не хочу распаковывать файл (он защищен паролем), я просто хочу извлечь ZIP из EXE-файла. TCS 13 лет назад 0
Это сделает это для вас. Откройте в WinZip и сохраните архив как нечто .zip Rory Alsop 13 лет назад 0
0
PhilFCS

У меня была похожая проблема, исполняемый файл SFX, который в основном запускает исполняемый файл, который затем позволяет запускать файлы в архиве. Открытие exe в 7zip показывает, что он защищен паролем. Я искал решение, оно должно хранить пароль в каком-то заголовке ... Во время чтения этой темы мне пришло альтернативное решение.

Запустите исполняемый файл, затем проверьте C: \ windows \ temp по дате сортировки и найдите папку, в которую был извлечен исполняемый файл. Внутри zip находятся файлы. Выньте их и застегните на молнию. Виола! у вас есть почтовый индекс exe, без пароля.

0
Loren Pechtel

Я еще не видел программу манипуляции с почтовым индексом, которая не может этого сделать. Самораспаковывающиеся архивы также являются действительными zip-файлами, просто с кучей дополнительных вещей в них (экстрактор).

Вы, вероятно, обнаружите, что вы не можете выбрать утилиту как способ открытия файла, но если вы просто запустите утилиту и затем выберите файл, он работает.

0
Robert

Если вы имеете дело с играми gog.com, используйте Innoextract . unzip, unrar, 7zip и другие не работают для меня.

Другие программы zip НЕ работают с файлами GOG? Являются ли файлы GOG самораспаковывающимися? music2myear 7 лет назад 0

Похожие вопросы