Распаковка нового формата CAB (aka PA30 aka IPD aka MSU)

Здесь можно оставить пожелание относительно функций, которых в программе нет, но которые вам хотелось бы в ней видеть.

Модератор: motyara

Ответить
BugMeNot
Сообщения: 11
Зарегистрирован: Пт янв 15, 2010 3:31 pm

Распаковка нового формата CAB (aka PA30 aka IPD aka MSU)

Сообщение BugMeNot »

Начиная с Висты Майкрософт ввёл новый формат CAB - двоичный разностный, типа rsync

Он не документрирован и, верроятно, патентован.
Но также вероятно, что для распаковки файлов уже есть Windows API, хотя возможно и недокументированное.

----------------

https://reverseengineering.stackexchang ... patch-work

See the following topic, especially last messages.
https://msfn.org/board/topic/171184-mic ... ol/?page=2

https://www.raxsoft.com/raxccm/software.php - here is binary implementation of IPD unpacking, sadly there is e-mail but no sources, one could read to easily grasp MS API calls sequence for unpacking.
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3431
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

Сообщение Max Diesel »

Чем этот CAB отличается от того, с которым программа уже умеет работать?
BugMeNot
Сообщения: 11
Зарегистрирован: Пт янв 15, 2010 3:31 pm

Re: Распаковка нового формата CAB (aka PA30 aka IPD aka MSU)

Сообщение BugMeNot »

Другие форумы, для дополнительной инфы и синхронизации.
https://sourceforge.net/p/sevenzip/disc ... /4ce63b92/
https://www.ghisler.ch/board/viewtopic.php?t=49446 - тут полезную инфу добавили про восстановление исходников

> Чем этот CAB отличается от того, с которым программа уже умеет работать?

Первые две ссылки - там всё описано.

Тем что он двухуровневый.

При распаковке обычным CAB-методом получаешь файлы с названиями типа 0000000, 00000001, 0000002, и т.д.
Но это бы ещё полбеды, настоящие названия содержатся в лежащем где-то рядом xml
Вторая проблема в том, что сами эти файлы запакованы в Microsoft IPD/PA30 формате.
Т.е. типовой для Total/Unreal Commander распаковщик выдаёт файлы безымянные и нераспакованный.

Найди какое-нибудь последнее обновление небольшого размера в http://www.catalog.update.microsoft.com/Home.aspx и попробуй достать по-настоящему распакованные файлы.
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3431
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

Сообщение Max Diesel »

И в первой же ссылке можно увидеть диалог с разработчиком 7zip, который отказался добавлять в программу поддержку этого "формата". При факте что формат является каким-то узко-специализированным, вполне логично что его добавление пребывает где-то в самом маловероятном todo-листе. Более того, сам формат с виду не является новым форматом - все файлы сжаты по известному алгоритму, извлекаются без каких-либо проблем... ну а уж наличие манифеста и список имен файлов в xml - это выглядит не столько новым форматом, сколь прихотью того, кто файлы упаковал в таком виде. В качестве примера могу привести файлы tgl в подкаталоге "Graphics" Unreal Commander'а: это архивы, в которых иконки сложены в пронумерованные файлы, причем в каждом архиве есть файл "MAP.INFO" с информацией о том, какая иконка какой команде соответствует. Однако эти tgl - не новый формат, это самый обычные zip-файлы, а нумерация и map.info - это просто прихоть ради стандартизации.
BugMeNot
Сообщения: 11
Зарегистрирован: Пт янв 15, 2010 3:31 pm

Re: Распаковка нового формата CAB (aka PA30 aka IPD aka MSU)

Сообщение BugMeNot »

> диалог с разработчиком 7zip, который отказался добавлять в программу поддержку этого "формата"

не "формата", а формата. Он отказался именно по тому, что 8 лет назад заниматься реверс-инжинирингов недокументированного и запатентованного нового формата крайне тяжело. Сейчас же судя по всему есть Windows API для его распаковки.

> формат является каким-то узко-специализированным

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

> ну а уж наличие манифеста и список имен файлов в xml - это выглядит не столько новым форматом, сколь прихотью

Если бы дело было только в этом, то все равно стоило бы реализовать - Майкрософт это не абы кто и ВСЕ обновления и установочные пакеты Windows за последний десятко лет - совсем не мало. Но речь не только про переименование, но и про распаковку.

> все файлы сжаты по известному алгоритму, извлекаются без каких-либо проблем

это просто не правда.
возьмите наконец и проверьте.
BugMeNot
Сообщения: 11
Зарегистрирован: Пт янв 15, 2010 3:31 pm

Re: Распаковка нового формата CAB (aka PA30 aka IPD aka MSU)

Сообщение BugMeNot »

> все файлы сжаты по известному алгоритму, извлекаются без каких-либо проблем
7106.zip
(3.5 КБ) 132 скачивания
Вы утверждаете, что этот файл

1) называется bootux.dll
2) имеет формат Portable Executable (то ли PE32 то ли PE64 - но PE)
3) имеет SHA256-хеш a947e76d796c82a0710861a0cea715a68fc7ea8a9695fd68d2d9bf0727e1e8d4

Так вот, это неправда, неправда и ещё раз неправда

"без проблем" только если в смысле "нет распаковки - нет проблемы"
BugMeNot
Сообщения: 11
Зарегистрирован: Пт янв 15, 2010 3:31 pm

Re: Распаковка нового формата CAB (aka PA30 aka IPD aka MSU)

Сообщение BugMeNot »

Переводя ситацию на более известные форматы, вы сейчас утверждаете, что для распаковки .tar.gz файла поддержка "формата" tar не нужна, достаточно исключительно реализовать gzip, и он сразу распакует все файлы не используя и не зная ничего про "формат" tar
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3431
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

Сообщение Max Diesel »

BugMeNot писал(а): Пт фев 23, 2018 1:56 pm > все файлы сжаты по известному алгоритму, извлекаются без каких-либо проблем

это просто не правда.
возьмите наконец и проверьте.
Я и проверял. Для проверки я скачал файл .msu отсюда с каким-то из обновлений Windows, и этот файл на деле был просто cab-архивом, из которого файлы извлеклись без проблем. Глубже я забраться не пытался, соответственно находящиеся внутри него файлы без расширений я не пытался распаковать. Да, среди них есть файлы с сигнатурой "PA30" и они не распаковываются. Причем ни WinRar их не воспринимает за архивы, ни 7zip. Вы при таком раскладе обратились не по адресу, сначала поддержка формата должна появиться в ведущих архиваторах, а лишь потом в файловых менеджерах, да и то лишь в случае если формат будет реально востребованным.
avmaksimov
Сообщения: 405
Зарегистрирован: Чт ноя 08, 2007 9:29 am
Откуда: Москва
Контактная информация:

Re: Распаковка нового формата CAB (aka PA30 aka IPD aka MSU)

Сообщение avmaksimov »

Извините, что вмешиваюсь. Только, мне кажется, что задача UC - это работа с файлами. Для всего остального есть Мастеркард (зачёркнуто) - 7z. Вот нужно сделать поддержку всего, что есть там. Т.к. 7z специализируется на архиваторах и не специализируется на работе с файлами. Хотя и это есть в каком-то виде.

Как в анекдоте: "банк не торгует семечками, а я не даю кредиты"))
С уважением, Андрей.
Ответить