Jump to content

Microsoft IPD (Intra-Package Delta) Compression Tool?


a3m5i11

Recommended Posts

The reason for IPD is better compression ratio compared to LZX. It seems as if SFXCAB Substitute does things in a way that forces the user to use the stub. So at this point there is no eay to compress a file with the delta compression so that expand.exe can decompress it?

Link to comment
Share on other sites


I have found nothing that correctly functions with MS to "expand" the correct -real- filenames except the SFXCAB.EXE prepended module, or perhaps the one jaclaz mentioned that I assume -undoubtedly- works (I haven't tried it). All of this is proprietary and possibly the one you gave a link to (and haven't yet downloaded or tested it) has an even different method (internally) than MS uses.

http://www.google.com/patents/EP1501196A1?cl=en

http://www.google.com/patents/US20050022175

Both of which appear to be one and the same. Googling this

"intra-package delta"

should have told you as much. You're "beating a dead horse", unless you write your own using the MS API calls.

"Better compression" to what end? Those are (generally) Installer/Update Packages - you must want to make some MONSTER size packages. :unsure:

Repeat - "expand.exe" will NOT do you any good since it would -not- expand the -internally compressed- (file/delta) inside of the CAB. The function is JUST NOT THERE!

Edited by submix8c
Link to comment
Share on other sites

Submix8c: thanks.

So on a side note, The utility MS uses to build their SFXCAB packages is not publically available yet right? I ask because at times the third party program I mentioned produces errors.

Thanks again guys for all the help.

Link to comment
Share on other sites

If you want the "old" way (MS original) you need the msi45sdk.msi "Microsoft Installer 4.5 SDK" which was available as separate download and can still be found on the net by searching a bit.

If you want the "new" way (MS original) you need the "Windows Installer SDK" which is - I believe - inside the more generic Windows SDK (currently for Windows 7):

Then, once you have the actual needed files/tools, you will have to learn to use them, particularly Orca.exe :ph34r:, and just like the mentioned Insted, the Wix toolset, these thingies here:

http://dennisbareis.com/makemsi.htm

http://msi2xml.sourceforge.net/

(nice BTW :thumbup ) you will likely fall in what cannot be defined but "the worst nightmare a sentient being can experience before death" :w00t:, the matter is so mindboggingly complex, the approach is made so stupidly (and without actual need IMHO) difficult (and the documentation, as always either sucks or it is non-existent, or is mis-referencing the one or the other technology or it is lost forever in one or the other re-arrangements of the MS site) that I personally lost any hope several years ago to get the hang of it.

Besides time, dedication and efforts, you will need some luck, I believe.

To give you an idea of the complexity of the topic (and the general ignorance about it by most of the good MS MVP's and the like) there is even someone that has made a job/carreer out of this stuff (the site contains quite a bit of nice information, BTW):

http://www.contactez.net/

Good luck :).

jaclaz

Edited by jaclaz
Link to comment
Share on other sites

  • 9 months later...

I know this is a really old topic now, 9 months ago...but I might as well post this for the others who stumble across this and find themselves wondering about IPD and how to unpack it without running the package.

 

Since nobody could figure out how to unpack IPD without the stubs...here's an IPD unpacker that doesn't require the SFX stub...http://raxdev.raxsoft.com/unpackipd.zip

 

Be aware it's a compiled Autoit script with packed files, some AVs might kick a false positive on it.

 

Command line and GUI versions included. Extract the CAB with 7-zip or the like, then point this tool to the folder with _sfx_manifest_ in it...

 

Also, for what it's worth, I'm the primary author of SFXCAB Substitute. I never really maintained the app because I didn't realize there was actually a demand for this thing. I built its predecessor IPDTool in boredom one day while looking for a challenge. SFXCAB Substitute came about when I built Hotfix Hacker (a GUI tool for creating basic update.exe-based update installers) and needed a way to finish the compile process. I figured I might as well release it separately as well since it's already built...so I threw in a readme and stuck it on Softpedia for laughs.

 

Expand.exe is the wrong way to unpack the SFXCAB IPD stuff, at least for NT5.x Windows Updates and stuff made with Substitute. You need mspatcha and an understanding of the manifest. You can unpack it manually, one file at a time, by opening the manifest in notepad and using apatch.exe (also from the SDK, it's the CLI for mspatcha.dll) in CMD.

 

I'm not familar with msdelta, so can't speak to that one.

 

The only thing Substitute does different from MS is that it will auto-exclude files from IPD if they get larger when packed. Those files get regular LZX instead. I've found MS IPD archives that had this issue, which means in theory Substitute will get slightly better compression with the same technology.

 

Happy Holidays guys :)

Edited by wolstech
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...