Начиная с Висты Майкрософт ввёл новый формат 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.
Распаковка нового формата CAB (aka PA30 aka IPD aka MSU)
Модератор: motyara
-
- Сообщения: 11
- Зарегистрирован: Пт янв 15, 2010 3:31 pm
-
- Автор программы
- Сообщения: 3432
- Зарегистрирован: Пт окт 12, 2007 3:26 pm
-
- Сообщения: 11
- Зарегистрирован: Пт янв 15, 2010 3:31 pm
Re: Распаковка нового формата CAB (aka PA30 aka IPD aka MSU)
Другие форумы, для дополнительной инфы и синхронизации.
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 и попробуй достать по-настоящему распакованные файлы.
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 и попробуй достать по-настоящему распакованные файлы.
-
- Автор программы
- Сообщения: 3432
- Зарегистрирован: Пт окт 12, 2007 3:26 pm
И в первой же ссылке можно увидеть диалог с разработчиком 7zip, который отказался добавлять в программу поддержку этого "формата". При факте что формат является каким-то узко-специализированным, вполне логично что его добавление пребывает где-то в самом маловероятном todo-листе. Более того, сам формат с виду не является новым форматом - все файлы сжаты по известному алгоритму, извлекаются без каких-либо проблем... ну а уж наличие манифеста и список имен файлов в xml - это выглядит не столько новым форматом, сколь прихотью того, кто файлы упаковал в таком виде. В качестве примера могу привести файлы tgl в подкаталоге "Graphics" Unreal Commander'а: это архивы, в которых иконки сложены в пронумерованные файлы, причем в каждом архиве есть файл "MAP.INFO" с информацией о том, какая иконка какой команде соответствует. Однако эти tgl - не новый формат, это самый обычные zip-файлы, а нумерация и map.info - это просто прихоть ради стандартизации.
-
- Сообщения: 11
- Зарегистрирован: Пт янв 15, 2010 3:31 pm
Re: Распаковка нового формата CAB (aka PA30 aka IPD aka MSU)
> диалог с разработчиком 7zip, который отказался добавлять в программу поддержку этого "формата"
не "формата", а формата. Он отказался именно по тому, что 8 лет назад заниматься реверс-инжинирингов недокументированного и запатентованного нового формата крайне тяжело. Сейчас же судя по всему есть Windows API для его распаковки.
> формат является каким-то узко-специализированным
Столь же узкоспециализированном, как и любой другой CAB - распространения установочных пакетов и обновлений Microsoft. Не уже, хотя и не шире.
> ну а уж наличие манифеста и список имен файлов в xml - это выглядит не столько новым форматом, сколь прихотью
Если бы дело было только в этом, то все равно стоило бы реализовать - Майкрософт это не абы кто и ВСЕ обновления и установочные пакеты Windows за последний десятко лет - совсем не мало. Но речь не только про переименование, но и про распаковку.
> все файлы сжаты по известному алгоритму, извлекаются без каких-либо проблем
это просто не правда.
возьмите наконец и проверьте.
не "формата", а формата. Он отказался именно по тому, что 8 лет назад заниматься реверс-инжинирингов недокументированного и запатентованного нового формата крайне тяжело. Сейчас же судя по всему есть Windows API для его распаковки.
> формат является каким-то узко-специализированным
Столь же узкоспециализированном, как и любой другой CAB - распространения установочных пакетов и обновлений Microsoft. Не уже, хотя и не шире.
> ну а уж наличие манифеста и список имен файлов в xml - это выглядит не столько новым форматом, сколь прихотью
Если бы дело было только в этом, то все равно стоило бы реализовать - Майкрософт это не абы кто и ВСЕ обновления и установочные пакеты Windows за последний десятко лет - совсем не мало. Но речь не только про переименование, но и про распаковку.
> все файлы сжаты по известному алгоритму, извлекаются без каких-либо проблем
это просто не правда.
возьмите наконец и проверьте.
-
- Сообщения: 11
- Зарегистрирован: Пт янв 15, 2010 3:31 pm
Re: Распаковка нового формата CAB (aka PA30 aka IPD aka MSU)
> все файлы сжаты по известному алгоритму, извлекаются без каких-либо проблем
Вы утверждаете, что этот файл
1) называется bootux.dll
2) имеет формат Portable Executable (то ли PE32 то ли PE64 - но PE)
3) имеет SHA256-хеш a947e76d796c82a0710861a0cea715a68fc7ea8a9695fd68d2d9bf0727e1e8d4
Так вот, это неправда, неправда и ещё раз неправда
"без проблем" только если в смысле "нет распаковки - нет проблемы"
Вы утверждаете, что этот файл
1) называется bootux.dll
2) имеет формат Portable Executable (то ли PE32 то ли PE64 - но PE)
3) имеет SHA256-хеш a947e76d796c82a0710861a0cea715a68fc7ea8a9695fd68d2d9bf0727e1e8d4
Так вот, это неправда, неправда и ещё раз неправда
"без проблем" только если в смысле "нет распаковки - нет проблемы"
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Сообщения: 11
- Зарегистрирован: Пт янв 15, 2010 3:31 pm
Re: Распаковка нового формата CAB (aka PA30 aka IPD aka MSU)
Переводя ситацию на более известные форматы, вы сейчас утверждаете, что для распаковки .tar.gz файла поддержка "формата" tar не нужна, достаточно исключительно реализовать gzip, и он сразу распакует все файлы не используя и не зная ничего про "формат" tar
-
- Автор программы
- Сообщения: 3432
- Зарегистрирован: Пт окт 12, 2007 3:26 pm
Я и проверял. Для проверки я скачал файл .msu отсюда с каким-то из обновлений Windows, и этот файл на деле был просто cab-архивом, из которого файлы извлеклись без проблем. Глубже я забраться не пытался, соответственно находящиеся внутри него файлы без расширений я не пытался распаковать. Да, среди них есть файлы с сигнатурой "PA30" и они не распаковываются. Причем ни WinRar их не воспринимает за архивы, ни 7zip. Вы при таком раскладе обратились не по адресу, сначала поддержка формата должна появиться в ведущих архиваторах, а лишь потом в файловых менеджерах, да и то лишь в случае если формат будет реально востребованным.
-
- Сообщения: 405
- Зарегистрирован: Чт ноя 08, 2007 9:29 am
- Откуда: Москва
Re: Распаковка нового формата CAB (aka PA30 aka IPD aka MSU)
Извините, что вмешиваюсь. Только, мне кажется, что задача UC - это работа с файлами. Для всего остального есть Мастеркард (зачёркнуто) - 7z. Вот нужно сделать поддержку всего, что есть там. Т.к. 7z специализируется на архиваторах и не специализируется на работе с файлами. Хотя и это есть в каком-то виде.
Как в анекдоте: "банк не торгует семечками, а я не даю кредиты"))
Как в анекдоте: "банк не торгует семечками, а я не даю кредиты"))
С уважением, Андрей.