Редактировать бинарный файл внутри самораспаковывающегося CAB-архива Windows?
393
Wossname
У меня есть старый файл "Win32 Cabinet Self-Extractor" (расширение * .exe), в который я хотел бы внести небольшие изменения.
Я не знаю, откуда исходный файл или кто его создал, но можно открыть файл в 7-Zip и хотя бы просмотреть его содержимое.
Цель этого самораспаковывающегося установщика - установить часть прошивки на устройстве PCIe.
Один файл внутри архива необходимо слегка изменить, чтобы в самом начале была вставлена короткая последовательность двоичных файлов (серийный номер длиной 8 байт), увеличивая длину файла на 8 байт. Затем я хочу сохранить изменения и выйти из архива, чтобы новый файл был на месте старого. Я не меняю имена файлов в архиве.
Я использую Windows 7, а 7-Zip не позволяет мне изменять файл на месте (возможно, что неудивительно), говоря, что он «только для чтения» (exe не только для чтения в соответствии с проводником).
Есть ли способ сделать это?
К сожалению, я не могу загрузить файл, потому что он содержит конфиденциальную информацию о компании.
2 ответа на вопрос
1
Keltari
Тебе этого не сделать. Файлы внутри сжаты и не могут быть изменены. Если вы это сделаете, архив будет поврежден. Возможность распаковки файлов уникальна для содержимого архива в целом. Вам нужно извлечь файлы, внести любые изменения, а затем воссоздать архив.
Я не использовал никаких инструментов для создания CAB много лет. Они могут позволить вам сделать это. Тем не менее, они просто делают шаги выше.
1
harrymc
Вы должны сначала извлечь все файлы из CAB в какую-то папку. Это можно сделать с помощью 7-Zip, другой утилиты или утилиты Windows expand:
Expand mycab.cab -F:* C:\myfolder
Затем вы можете изменить свой файл внутри папки C:\myfolderи снова сжать его с помощью утилиты Windows makecab :