Jump to content

SFXCAB.EXE


Recommended Posts


Sfxcab.exe cannot be obtained in a legal way so in order to make a hotfix just follow the tips given above. WildBill wrote a quick manual too.

11. Replace update\update.exe with one from any of the releases I uploaded -- mine will let you install an unsigned update, the one from MS won't.

12. Compress your files:

cabarc -m LZX:21 -p -r N ..\outfile.cab *.*

13. Patch the created .cab file so that it knows to execute update.exe. You'll need a hex editor for this (e.g. xvi32). Look for the update\update.exe entry toward the beginning of the file. Before it there should be a 20h byte. Change that to 60h which will flag it as an auto-execute file.

14. Prepend the MSCF.sfx file before the .cab file to make an installer:

copy /b MSCF.sfx + outfile.cab outfile.exe

15. Rename outfile.exe to something appropriate to the patch and language:

ren outfile.exe Windows2000-KB######-x86-XXX.exe

Link to comment
Share on other sites

  • 2 weeks later...

You can download any WildBill's update for Windows 2000 and extract update.exe from there. It's the same for 2K/XP. The other way is trying to use updfx021.lzh to patch the update.exe yourself.

Update.ver doesn't seem to matter AT ALL. It can be empty and the update still installs/slipstreams fine. The one that matters is update.inf.

Link to comment
Share on other sites

I want to add one thing about update.ver. As I said before it doesn't seem to play any role but still the file itself MUST be present in the update folder. I also said it could be empty but in reality in MUST have at least the line:


[SourceFilesInfo]

I hope everything is clear now :P

Edited by tomasz86
Link to comment
Share on other sites

Thanx a lot for quick reply. I shall post some other versions of sfxcab modules soon.

I was also able to apply Wildbill's patch to the latest release of Update.exe (the one with IE8 update package) and it works awesome. I was able to do a full slipstream.

Checkup MSFN for updates !!

Link to comment
Share on other sites

Instead of using WildBill's update.exe or BlackWingCat's patch you can just edit the file yourself.

Open update.exe in hex editor and replace the string 0f 86 -> 90 e9

4xD13.png

You can do it for any language version while WildBill's update.exe is in English only (althought can be used for other languages too but the installer will be in English).

And below you can see how to make "multilanguage" update.exe (thanks to BlackWingCat).

MUv6N.png

74 -> eb and the modified update.exe doesn't check the language settings from update.inf which can actually be very useful when making multilanguage unofficial updates (some system files are language neutral)

and the last, I found Chinese / Taiwanese boards where there seem to be a lot of useful information about modifying M$ udpates. Have a look at this thread

http://bbs.wmzhe.com/viewthread.php?tid=17580&rpid=147152&ordertype=0&page=1#pid147152

where you can see how to make MSCF.sfx.

Is here anyone able to download the files available at this forum?

http://www.pczone.com.tw/vbb3/thread/3/152921/

I even managed to register there but I'm still unable to download :/ They say that b.exe is sfxcab.exe.

Edited by tomasz86
Link to comment
Share on other sites

  • 1 month later...

:whistle: To make an SFX Module for yourself, I suggest that you use PE Explorer to hack the Resources of this module (the one posted by on the previous page). I was unable to get it working with Resource Hacker, probably, because the module has been extracted from an update, which is digitally signed by Microsoft. If it is reshacked, it will produce an error.

Cheers and Regards

Edited by maheep
Link to comment
Share on other sites

  • 8 months later...
  • 3 months later...

How to creat SFXCAB file.

1. Hex edit one update file. Delete after MSCF part. So u have sfx module. lets name it cab.sfx

2. Compress all folder or files with make cab. lets name it files.cab

3. copy /b cab.sfx+files.cab files.exe

4. Hex edit to run files after extract. For example. u want to run setup.exe

Search setup.exe in files.exe.

There is 20 00 in front of setup.exe

Chance it to 60 00.

Done.

Run your sfx cab file.

new steps to create SFXCAB packages, but this time it now requires using PE Explorer (just use a demo version of it or google search for PE Explorer portable - PE Explorer ain't free) as maheep suggested to modify the resources, which is necessary for your sfxcab package to actually work.

1. hex edit an sfxcab based update file and remove anything from the MSCF section onward. rename it to cab.sfx

2. compress whatever files with Cabarc.exe using LZX:21 compression option (don't bother using makecab.exe). name the created cabinet file as files.cab

3. run copy /b cab.sfx+files.cab files.exe

4. hex edit files.exe. if you want to run update.exe, look for update.exe in files.exe and search for hex values "20 00" in front of update.exe. change 20 to 60 and save changes.

5. open files.exe in PE Explorer, correct the "raw data values" by clicking Yes and use the Save As command from the File menu to save changes [if you don't use PE Explorer to fix the raw data values of your newly created sfxcab package and you try to run it, you will get a "not a valid win32 application" error message]

6. after correcting the raw data values of files.exe in PE explorer, run files.exe and test it.

Edited by erpdude8
Link to comment
Share on other sites

@erpdude8

I think you're making this overly complicated :w00t: No other tools than the ones listed before in this topic are required as long as your version of MSCF.sfx is correct. You get the error message because the MSCF.sfx used is actually incorrect. In case of MSCF.sfx its version number is completely irrelevant. The only thing which is important is whether it works or not.

The whole process is very simple:

1. Patch the update.exe

2. Pack to CAB using cabarc.exe.

3. Copy/b mscf.sfx and the CAB you've just created to an .EXE archive.

4. Hex edit the line before update\update.exe.

How to get a working MSCF.sfx (from the other topic):

V6.2.29.0 does work but not the file attached to #1.

You can get a working one from this update:

http://download.microsoft.com/download/5/f/d/5fdc6240-2127-42b6-8e16-bab6171db233/WindowsXP-KB898461-x86-ENU.exe

Download it and rename to any 8.3 filename, ex. "update.exe".

Download pcopy02.zip, extract partcopy.exe from it and use:

partcopy.exe update.exe 0 8E00 sfxcab.exe

"Sfxcab.exe" (you can use any other filename) v1.0.0.0 will be created which can be used instead of the one from #1.

Link to comment
Share on other sites

In addition, it's the THIRD "MSCF" - the offset (as shown) is different between older/newer versions. The Program to be executed is irrelevant. Also, there IS a difference between THIS SFX (actually says "SFXCAB.EXE" in the Properties) and another one that uses a DIFFERENT SFX (the one that WildBill refers to needing "patched", AFAICR).

Edited by submix8c
Link to comment
Share on other sites

  • 1 month later...

Instead of using WildBill's update.exe or BlackWingCat's patch you can just edit the file yourself.

Open update.exe in hex editor and replace the string 0f 86 -> 90 e9

4xD13.png

wow tomasz86, that info is very good but finding the hex string "0f 86" is too broad because there are many instances of "0f 86" as I've checked the update.exe file in a hex editor (and some users may get confused as to where to change that hex string to the required kind).

to greatly narrow it down, find the following hex string in a hex editor: D0 0B 01 0F 86

then change the last two bytes in that string to "90 E9" to read "D0 0B 01 90 E9"

Link to comment
Share on other sites

  • 6 months later...

UPDATE

This is an update to the post #25. You need to patch the cabbed archive differently depending on whether it's an update or a service pack.

1) Patching update.exe (v. 6.x.x.x) using XVI32:

ECHO>sfxcab.xsc REPLACE 0B 01 04 89 1D BY 0B 01 10 89 1D
START/WAIT xvi32.exe update.exe /S=sfxcab.xsc
DEL sfxcab.xsc

2) Patching the archive (update.cab) before merging it with MSCF.sfx:

Update

ECHO>sfxcab.xsc REPLACE 20 00 75 70 64 61 74 65 5C 75 70 64 61 74 65 2E 65 78 65 BY 60 00 75 70 64 61 74 65 5C 75 70 64 61 74 65 2E 65 78 65
START/WAIT xvi32.exe update.cab /S=sfxcab.xsc
DEL sfxcab.xsc

Service Pack

ECHO>sfxcab.xsc REPLACE 20 00 69 33 38 36 5C 75 70 64 61 74 65 5C 75 70 64 61 74 65 2E 65 78 65 BY 60 00 69 33 38 36 5C 75 70 64 61 74 65 5C 75 70 64 61 74 65 2E 65 78 65
START/WAIT xvi32.exe update.cab /S=sfxcab.xsc
DEL sfxcab.xsc

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...