Почему sfx-архив занимает больше места на диске, чем обычно

Обновлено: 21.11.2024

Послушайте, прошлой ночью я получил копию «Night In The Woods», игры размером 3,8 ГБ, которая была надежно сохранена в файле Winrar; однако мне не хватило места, поэтому я решил удалить кое-что, прежде чем смогу играть. Когда я вышел из игры, я хотел сохранить обновленные игровые архивы и понял, что извлекать файлы не дает из-за нехватки места на диске. Мои 3,2 ГБ дискового пространства стали 118 МБ! Так что теперь я действительно не знаю, что делать, каждый раз, когда я извлекаю его, я не знаю, занимает ли Winrar больше места каждый раз, когда я нажимаю на файл игры .exe при каждом извлечении, или я делаю что-то неправильно. Исправление было бы прекрасно! Как я могу предотвратить это или, по крайней мере, остановить процесс извлечения, чтобы я мог превратить его в одно приложение.

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

Как называется файл, содержащий скрытые временные выдержки?

Вы говорите, что файлы занимают больше места после извлечения?

Нет, у меня просто осталось достаточное количество гигабайт на диске C:. Затем, когда я вышел из игры, поскольку в этой игре были данные сохранения, мне сказали, что файлы были изменены, поэтому я нажал «Да». Однако, когда он начал сохранять файл, он остановился и сказал, что место на диске заполнено. Так что прямо сейчас я не знаю, делал ли я это с другими играми Winrar, которые у меня есть, или я просто делаю что-то не так. Я просто искренне хочу играть в игры, которые входят в пакеты Winrar, потому что я обычно так играю. Например, я получил копию моего оригинального ISO-образа Super Smash Bros Brawl с моего Wii, и он стал файлом Winrar (это 8 ГБ), и какое-то время я перемещал этот файл в эмулятор, теперь меня беспокоит то, что что, возможно, эти файлы накладываются друг на друга, загромождая мое пространство, я очень беспокоюсь, что это так прямо сейчас, потому что я не хочу, чтобы мой диск E: был заполнен дубликатами извлеченных файлов.

WinRAR имеет последовательность блоков маркеров, но только для WinRAR. Комментарий предлагает мета-решение, просто используйте 7z или unRAR, чтобы попытаться извлечь файл (это может быть или не быть тем, что вам нужно, в зависимости от размера и фактических требований)

4 ответа 4

Не знаю, как другие утилиты, но "классический" самораспаковщик от Nico Mak Computing создает исполняемые файлы, содержащие раздел _winzip_. Их можно обнаружить, прочитав таблицу разделов исполняемого файла, которая представляет собой массив структур IMAGE_SECTION_HEADER.

Чтобы получить к нему доступ без использования специализированных библиотек, вам необходимо:

  • Открыть поток в файле
  • Чтение 64-байтовой структуры IMAGE_DOS_HEADER
  • Взять его последний элемент (четыре байта) в качестве смещения следующего заголовка.
  • Искать это смещение
  • Познакомьтесь с магией 4-байтового PE
  • Чтение 20-байтовой структуры IMAGE_FILE_HEADER
  • Взять его элемент SizeOfOptionalHeader (предпоследнее слово)
  • Пропустить столько байтов
  • Теперь поток указывает на таблицу разделов.

Тогда нужно просто прочитать таблицу разделов (в структуре IMAGE_FILE_HEADER есть элемент NumberOfSections ) и посмотреть, не называется ли какой-либо из них _winzip_ .

Подход к обнаружению самораспаковывающегося файла зависит от того, хотите ли вы обнаруживать самораспаковывающиеся файлы в пределах известного набора форматов со 100 % надежностью или хотите обнаруживать незнакомые самораспаковывающиеся файлы с меньшей надежностью. .

(У обоих подходов есть свои применения. Последний годится, например, для получения второго мнения от человека.)

Вариант А заключается в использовании того же подхода, что и в инструментах архивирования.

Самораспаковывающийся архив — это обычный архив, объединенный в EXE-файл с фиксированными смещениями. (Для Zip-файлов вы можете сделать это вручную, используя zip -A из Info-ZIP), поэтому откройте файл и просканируйте его в поисках действительного RAR/Zip/и т. д. заголовок/трейлеры. (Чтобы сделать это эффективно, используйте алгоритм, подобный Aho-Corasick, для поиска всех строк-кандидатов за один проход.)

Для дополнительной надежности проанализируйте заголовки MZ и NE или PE, чтобы выяснить, сколько байтов нужно пропустить, чтобы обойти любые потенциальные совпадающие строки в самом EXE-файле.

Вариант Б заключается в том, чтобы проанализировать заголовок MZ, как описано в Medinoc, но затем, вместо того, чтобы искать определенный раздел в заголовке PE, вычислить общую длину двоичного файла NE или PE (самораспаковщики Win16 существуют, так как созданные с помощью таких инструментов, как WinZIP 6.3 SR-1 и ниже), и пропустить все это.

Затем выполните некоторые эвристические проверки, например, сравните размер пропущенной части EXE с размером файла в целом и решите, выглядят ли малая часть EXE и большой объем присоединенных к ней элементов характерными для себя. - экстрактор.

(Учитывая, что это может также перехватывать приложения DOS на основе DPMI, если вы не выполняете дополнительную проверку файлов, отличных от NE/PE, чтобы исключить их, поскольку они также используют эту «заглушку плюс материал, объединенный на " структура.)

Наиболее надежным решением было бы объединить оба подхода:

Используйте вариант А и проверьте наличие определяющих заголовков/концевых окон для всех современных или исторически распространенных форматов самораспаковывающихся файлов на основе EXE (7z, RAR, ACE, Zip, ARJ, ARC, Lha/LZH, Zoo, установщик InnoSetup, NSIS установщик, однофайловые установщики InstallShield из эпохи, предшествующей .msi, или EXE-файл, содержащий пакет .cab или .msi.)

Чтобы создать тестовые файлы для EXE-файлов DPMI, просто скомпилируйте "Hello, World!" к цели DPMI с помощью djgpp (Linux) и Open Watcom C/C++ (1.9, 2.0). djgpp предоставит вам CWSDPMI, в то время как OpenWatcom C/C++ включает расширители DOS/4GW, PMODE/W, DOS/32A и CauseWay DPMI, расширитель Windows Win386 и совместим с другими бесплатными/свободными расширителями. (Расширители PharLap, которые Microsoft лицензировала для включения в Microsoft C/C++, являются единственными известными мне известными, которые не были освобождены, но я считаю, что Open Watcom может, по крайней мере, сгенерировать двоичный файл, который они должны были быть добавленным к.)

Возможно, вам также придется исключить исполняемые упаковщики, поскольку они используют систему на основе заглушек. UPX практически единственный, который используется сегодня, но исторически их было много.

В качестве запасного варианта проанализируйте заголовки MZ и LE, NE или PE, чтобы правильно подсчитать встроенные ресурсы (например, значки) как часть EXE-части, а затем, если файл содержит больше определенного процента «дополнительных данных», скорее всего, это самораспаковывающийся элемент.

Каждый год Черная пятница приносит шквал распродаж плагинов и библиотек звуковых эффектов, которые мы, звукорежиссеры и звукорежиссеры, числили в списках пожеланий в течение всего года. В этом году у меня на горизонте несколько крупных дизайнерских проектов, поэтому я немного увеличила свои покупки. Я взял библиотеку Lost Transmissions от SoundMorph, обновил ее до библиотеки Pro Sound Effects Core 3 Pro Plus и наконец приобрел Krotos Everything Bundle 2 после того, как присматривался к ней в течение многих лет. В дополнение к работе, которую я делаю в студии, я также работаю на других объектах в городе, и мне нравится иметь свою библиотеку с собой, когда я путешествую или мне нужно потренироваться в мире. В прошлом году я купил мини-корпус OWC Elite Pro Dual, в котором размещаются 2 жестких диска размером 2,5 дюйма и который питается от USB-C. У меня есть твердотельный накопитель Samsung 870 емкостью 1 ТБ для проектного диска и твердотельный накопитель Samsung 870 емкостью 4 ТБ для звуковой библиотеки. Из-за моих последних покупок у меня закончилось место на диске моей мобильной библиотеки. Ниже я расскажу о нескольких решениях для хранения, если вам тоже не хватает места.

Сетевое хранилище Synology

1. Настройте NAS (сетевое хранилище) с удаленным доступом

В студии у меня есть Synology NAS (сетевое хранилище) емкостью 16 ТБ, который я использую для локального резервного копирования своей звуковой библиотеки и проектов. Synology (и большинство других производителей NAS, таких как QNAP или SNS) упрощают настройку удаленного доступа, когда вы находитесь вдали от студии, и подключается к удаленному компьютеру так же, как локальный диск. К счастью, у нас в студии есть Google Fiber, поэтому я считаю, что удаленный доступ к нашей библиотеке достаточно быстр для обычного использования, при условии, что соединение нормальное там, где я работаю. Когда это решение оказывается проблематичным, это когда в студии отключается электричество или интернет. Быть отрезанным от моей библиотеки, когда мне нужно выполнить работу, — это не вариант.

2. Используйте хостинговое хранилище, например Lucid Link

Lucid Link — это облачная альтернатива локальному NAS. Они предлагают аккуратное приложение, которое монтирует ваш объем хранилища, например Synology, так же, как локальный диск.При использовании размещенного решения ваши данные хранятся на сервере IBM Cloud, и вероятность того, что ваша библиотека будет недоступна из-за перебоев в работе сервера, очень мала. Эта услуга предоставляется за ежемесячную плату, но ее можно масштабировать (они взимают плату за ТБ в месяц), поэтому ваш объем может расти вместе с вашей библиотекой. Скорость доступа аналогична (если не выше) производительности, которую я получаю от Synology в Google Fiber. Если у вас ниже звездной скорости интернета, это, вероятно, обеспечит более быстрое соединение, чем вы можете получить. Lucid Link или аналогичные облачные решения не будут работать, когда вы работаете где-то с медленным подключением к Интернету или без него. Лично я работаю в самолете или в кафе, поэтому мне действительно нужно решение. Это приводит нас к третьему решению.

Преобразуйте библиотеку звуковых эффектов во FLAC

Заключительные мысли

Я знаю, что у некоторых людей библиотеки могут быть значительно больше, чем у меня, и они могут не поместиться на переносном диске даже после конвертации во FLAC или, возможно, им требуется решение для хранения данных в поездках меньшего размера. Если вам нужно сэкономить место на жестком диске звуковых эффектов для путешествий, первое, что я обычно вырезаю, — это мои необработанные записи. Следующие библиотеки, которые я склонен вырезать, — это мои краудсорсинговые библиотеки. Хотя это хорошо, когда пространство не имеет значения, они, как правило, большие и очень специфичны для одной темы. Если я знаю, что буду нарезать эффекты в дороге и не смогу удаленно получить доступ к своей полной библиотеке, я попытаюсь извлечь эффекты, прежде чем уйти, и поместить их в папку моего проекта. Для многих звуковых дизайнеров вам может не нужно беспокоиться о работе вне студии, но если вы работаете с приложением для баз данных, таким как Soundminer, стоит рассмотреть FLAC как формат для хранения ваших файлов.

Сэкономьте 30 % на коллекциях библиотек звуковых эффектов Krotos по сравнению с покупкой отдельных библиотек по отдельности.

Zip-файлы можно использовать для самых разных целей. Сжатие файлов, шифрование, разделение архивов и многое другое — всего несколько щелчков мышью, если вы понимаете, на что способны ZIP-архивы.

Что такое Zip-файлы?

Подумайте о том, как работает папка в Windows. Вы помещаете содержимое в папку, чтобы упорядочить свои файлы, а затем можете перенести эту папку в любое место на вашем компьютере, и файлы внутри нее отправятся вместе с ней. Zip-файлы работают аналогичным образом, за исключением того, что содержимое внутри «папки» (zip-файла) сжимается для уменьшения использования хранилища.

Что делать, если у вас есть папка, содержащая 20 файлов, и вам нужно отправить ее кому-нибудь по электронной почте? Ну, вы не можете отправить кому-то папку по электронной почте, поэтому вам придется отправить по электронной почте 20 отдельных файлов. Вот где zip-файлы становятся действительно полезными, потому что вы можете «заархивировать» эти 20 файлов в один zip-архив, а затем отправить его по электронной почте. Помимо удобства хранения всех этих файлов в одном ZIP-архиве, они также будут сжаты, чтобы уменьшить объем хранилища и упростить их передачу через Интернет.

На этом определение zip-файла для большинства людей заканчивается. Чего вы можете не осознавать, так это того, что вы можете делать гораздо больше, чем просто сжимать и объединять файлы с помощью zip-архивов.

Как архивировать и распаковывать файлы

Прежде чем мы перейдем к более сложным темам, давайте вернемся к нашему примеру и покажем, как мы заархивируем эти 20 файлов, которые нам нужно отправить по электронной почте, а затем покажем, как получающий их пользователь будет распаковывать их. В Windows есть возможность архивировать и распаковывать файлы без дополнительного программного обеспечения, поэтому не загружайте никакие программы только для создания простых архивов или их распаковки.

Чтобы создать zip-файл, щелкните правой кнопкой мыши пустую область на рабочем столе или в проводнике, перейдите в раздел "Создать" и выберите "Сжатая (заархивированная) папка".

Вы заметите, что процесс похож на создание новой папки, так как теперь вы можете переименовать ZIP-папку и перемещать ее в разные места на вашем компьютере. Создав ZIP-файл, просто выберите и перетащите файлы в ZIP-папку.

Как видно на снимке экрана, файлы копируются в ZIP-папку, а не перемещаются и не удаляются из исходного местоположения. Теперь вы можете передавать, создавать резервные копии или делать что угодно со своим заархивированным содержимым.

Еще один способ быстро заархивировать некоторые файлы — выделить их, щелкнуть правой кнопкой мыши и выбрать "Отправить" > "Сжатая (архивированная) папка".

Самый простой способ разархивировать файл — щелкнуть его правой кнопкой мыши и нажать «Извлечь все».

Откроется новое окно, и вы сможете выбрать, куда вы хотите извлечь файлы. По умолчанию он будет извлекать содержимое в тот же каталог, в котором находится ваш zip-файл. Просто нажмите «Извлечь», и будет создана папка со всеми заархивированными файлами.

Дополнительные функции

Windows может легко архивировать и распаковывать файлы, но для чего-то большего вам потребуется стороннее приложение. Существует множество программ, предлагающих дополнительные функции для zip-файлов, но одной из самых легких, многофункциональных и эффективных является 7-Zip.

7-Zip — это бесплатный файловый архиватор для Windows со всеми опциями, которые могут вам когда-либо понадобиться для zip-файлов. Щелкните эту ссылку, чтобы перейти на их веб-сайт и загрузить последнюю версию программы. Установка проста, просто примите лицензионное соглашение и нажимайте «Далее», пока не будет установлен 7-Zip.

После этого вы сможете выделять файлы, щелкать их правой кнопкой мыши и добавлять в ZIP-архив с помощью 7-Zip.

Когда вы нажмете «Добавить в архив», вам будет предложено множество вариантов. Давайте рассмотрим, что означает каждый из них и почему они могут пригодиться.

Шифрование ZIP-файлов

Это может быть полезно, если вы не хотите, чтобы кто-то, не прошедший надлежащую аутентификацию, увидел файлы в вашем ZIP-архиве. Не забудьте использовать надежный пароль, чтобы перебор и атака по словарю стали бесполезными.

ZipCrypto или AES-256. Если вы решите создать zip-файл (в отличие от 7z), вы сможете выбрать между шифрованием ZipCrypto и AES-256. ZipCrypto слаб, но имеет меньше проблем с совместимостью. AES-256 намного мощнее, но работает только с более новыми системами (или с теми, на которых установлен 7-Zip). По возможности старайтесь выбирать AES-256.

Шифрование имен файлов. Иногда имена файлов могут быть так же важны, как и их содержимое. В другой раз, может быть, нет. Если вам нужно зашифровать имена ваших файлов, чтобы никто не мог увидеть, какие файлы находятся в вашем архиве, вам нужно будет использовать расширение файла 7z вместо zip.

Это может быть проблемой, потому что вам нужен 7-Zip для открытия файлов 7z, а что, если у принимающего пользователя нет 7-Zip? Эту проблему можно решить, создав самораспаковывающийся архив, который даст вам лучшее из обоих миров. Если по какой-то причине вам НЕОБХОДИМО использовать расширение .zip и вам НЕОБХОДИМО шифрование файлов, вам просто придется довольствоваться незашифрованными именами файлов.

Если вы используете формат архива 7z, появится флажок «Шифровать имена файлов»:

Самораспаковывающиеся архивы (SFX)

Самораспаковывающийся архив представляет собой обычный zip-архив, но с расширением .exe. Выполнение файла автоматически запустит процесс извлечения.

Преимущества. У самораспаковывающихся архивов есть два больших преимущества. Во-первых, вы можете использовать функцию расширения файла .7z для шифрования имен файлов. Во-вторых, принимающему пользователю не нужно специальное программное обеспечение для открытия архива. Дважды щелкните файл .exe, нажмите «Извлечь». Распаковка файлов завершена.

Недостатки. Люди не будут слишком беспокоиться, открывая исполняемое вложение электронной почты. Если вы используете 7-Zip для архивирования некоторых файлов и отправки их человеку, которого вы не очень хорошо знаете, он может устать открывать файл, и его антивирус может даже выдать предупреждение. Если не считать этого небольшого предостережения, самораспаковывающиеся архивы — это прекрасно.

Разбиение архивов на тома

Допустим, у вас есть файл размером 1 ГБ, и вы хотите поместить его на два компакт-диска. Компакт-диск может содержать 700 МБ данных, поэтому вам понадобятся два диска. Но как разделить файл, чтобы он поместился на этих двух дисках? С 7-Zip это так.

Вы можете выбрать одно из стандартных значений, перечисленных выше, или ввести свой собственный размер, на который хотите разделить тома. Обратите внимание, что вы не можете создать самораспаковывающийся архив, если решите разбить его таким образом. Однако шифрование по-прежнему возможно. Также обратите внимание, что Windows не может открывать разделенные архивы, поэтому для их открытия вам понадобится 7-Zip или другая подходящая программа.

Чтобы открыть разделенный архив, все части должны находиться в одном месте. Затем просто откройте первый файл, 7-Zip (или любое другое приложение, которое вы используете) легко объединит их, а затем извлечет файлы для вас.

Лучшее сжатие

Еще одна причина, по которой вы можете использовать 7-Zip вместо встроенной утилиты, — лучшая степень сжатия.

Если вы превысите «нормальный», процесс может занять значительно больше времени, особенно для большой группы файлов и более медленных процессоров. Вы также не сэкономите значительное количество места, поэтому обычно лучше всего поддерживать нормальный уровень сжатия. Однако иногда эти несколько дополнительных мегабайт могут иметь большое значение, поэтому помните об этом в таких случаях.

Читайте также: