Jump to content

Microsoft IPD (Intra-Package Delta) Compression Tool?


a3m5i11

Recommended Posts

Hello everyone,

I'm trying to do some testing and repackaging of some files and I've been trying to use the latest IPD compression that Microsoft uses in their hotfixes/updates.

Does anyone have the tool that is used to make these files? I have found a third-party software application that can supposedly create these IPD-compressed files but then the problem is that I can't find the correct version of EXPAND.EXE to decompress the files.

Could someone help me out with this dilemma?

Thanks.

Link to comment
Share on other sites


I've read that article and it also mentions that the expand.exe in the Windows AIK should also work but I am alwasys given an error when trying to extract.

I do not have the Microsoft SFXCAB builder tool (nor do I know where to get it). I am using a third party software called SFXCAB Substitute which makes SFXCAB EXE's.

Does anyone have the extract.exe program from the Vista OPK? Or perhaps the proper tool from Microsoft to compress files using IPD?

Link to comment
Share on other sites

Two years ago I had a hard time getting Expand too, so I pulled them from a laptop running Windows 7. The files you need are dpx.dll, expand.exe, expand.exe.mui and msdelta.dll.

It may be possible to simply put all the files into a folder and run it that way, but I prefer to replace XP's Expand.exe instead. To do so, drop the mui file in "%SystemRoot%\system32\en-US", and the rest in "%SystemRoot%\system32". The trick is to replace your existing Expand.exe file, so you'll have to get around Windows File Protection by dropping the file into "%SystemRoot%\system32\dllcache" first.

I can't post the files here directly due to MSFN's rules. If you don't have a Vista or Win7 PC handy to pull the files from then you can find them on ryanvm.net.

Edited by 5eraph
Link to comment
Share on other sites

Two years ago I had a hard time getting Expand too, so I pulled them from a laptop running Windows 7. The files you need are dpx.dll, expand.exe, expand.exe.mui and msdelta.dll.

It may be possible to simply put all the files into a folder and run it that way, but I prefer to replace XP's Expand.exe instead. To do so, drop the mui file in "%SystemRoot%\system32\en-US", and the rest in "%SystemRoot%\system32". The trick is to replace your existing Expand.exe file, so you'll have to get around Windows File Protection by dropping the file into "%SystemRoot%\system32\dllcache" first.

I can't post the files here directly due to MSFN's rules. If you don't have a Vista or Win7 PC handy to pull the files from then you can find them on ryanvm.net.

Thank you so much!

Now let me ask, what would be the proper Microsoft tool to do the IPD compression? As I said, I use a third-party piece of software now but if possible I'd rather use Microsoft's intended utility.

Link to comment
Share on other sites

Doesn't Uniextract work on those files? :unsure:

http://www.msfn.org/board/forum/159-universal-extractor/

http://legroom.net/software/uniextract

(cannot say if a recent version added the capability)

Can you post a link to one of these files using IPD compression? (possibly a smallish one)

Have you tried Insted instead (pun intended ;))?

http://www.instedit.com/

jaclaz

Link to comment
Share on other sites

My goal was only to extract msu archives for Vista and Win7.

Just to keep things as together as possible, it seems like the Windows 7 version of WUSA.EXE has an added switch /extract:

http://www.verboon.info/2010/09/extracting-cab-files-from-microsoft-update-standalone-package-msu/

http://www.thewindowsclub.com/windows-update-stand-alone-installer-improvements-in-windows-7

jaclaz

Link to comment
Share on other sites

Thank you for those 2 articles.

I've attached a smaple CAB file to show what I get when I compress with IPD compression.

Let's focus on the expansion/extraction only. Let me begin by elaborating more about the process I am using and the errors I receive.

So I use this third-party software to comrpess using IPD and I am given an EXE self-extracting file. Then I remove the stub from the EXE and I'm left with a CAB file that has the following contents:

_sfx_.dll_sfx_0001._p_sfx_manifest_

So if I try to extract this CAB using the EXPAND.EXE given above, I get the following error:

Expanding File TEST.CAB Incomplete, Error Code=0x80004001Error Description: Not implemented

What am I doing wrong here? I did not replace the files given above in my computer's system folder, rather, I made a small test folder in my C:\ drive with all the files that were in the download above. I would like to be able to extract/expand on an XP machine without having to restart PC in safe mode, replace system files with downloaded above files, restart computer, then begin extraction.

Any ideas as to what I'm doing missing here?

Thanks guys.

sample.cab

Edited by a3m5i11
Link to comment
Share on other sites

Oh, joy! This will be fun! I'm assuming this is the 3d Party?

http://www.softpedia.com/get/Compression-tools/SFXCAB-Substitute.shtml

Are you stripping away the correct part of the SFXCAB.EXE part, leaving just the MSCF-cab part? How are you able to determine the Filenames, or is it JUST the EXPAND.EXE giving problems?

UniExtract/Winzip/Winrar/7zip all will extract those files from a SFX-executable (e.g. MS Fix) but the files inside are useless since they're not the "real" files, true? :unsure:

Link to comment
Share on other sites

Correct. That is the software and that is the problem. The CAB file is just a CAB file. The ._p file is the one I cannot decompress. That is the file compressed with IPD.

Link to comment
Share on other sites

My guess is that there (as usual/normal when MS is incolved) a misunderstanding or overlapping of names.

IPD is a "nice new name" for a "generic" approach, "Delta Compression".

There are two basic MS "engines" for it:

http://msdn.microsoft.com/en-us/library/bb417345.aspx

the good ol' PatchAPI (please read as "mspatchc.dll" for creation and "mspatcha.dll" for expansion) and the new MSDELTA (please read as "msdelta.dll").

The SFXCAB Substitute uses the former and not the latter, and it is possible that it creates something that *somehow* is only compatible with "pure" mspatcha.dll and not with the expand.exe from Vista :ph34r: which likely uses (primarily or exclusively) msdelta.dll, or it is well possible that the result is only compatible with the SFX stub.

jaclaz

Link to comment
Share on other sites

I have a question(s) - Why do you want to do that? What's the rationale? Why do they need to be IPD-compressed files? Why not Standard MSCF-type (CAB) files with the Standard SFXCAB.EXE-(the stripped off part of a Standard Installer) prepended?

It seems that MS has intentionally made this a "proprietary" format of which you need the API Calls (?) from the SFX Program in order to expand the internal files. :unsure:

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...