[Problem] How to Modify an MSI Bios EXE file

Hi Guys,

First post here, I’ve been looking around on this forum for an answer, how to extract MSI BIOS image files (.bin .rom etc) from a .exe
Sorry if this subject has been covered before, If someone would be kind enough to drop a link or know the procedure?
Ive tried DOS commands (extract etc) but I get the error message that it must be run on a USB drive.
I cam across a post on Phoenix and it recognises that the .ROM file is in there but how to extract it?

Kind Regards
Matt

EDIT Found the solution, There is an application called B2MB that did what I need.

EDIT by Fernando: Thread title customized

B2MB.rar (683 KB)

Shouldnt 7-zip do the same?

You can also use a hex editor. The bios rom is appended to the executable.
Open bios EXXXXXXX.exe with winhex. Del 0h - 2BC39C h (bios = 800 000 h). Save as rom.
or
Boot to dos from a USB key, run the EXXXXXXX.exe & update system. The extracted rom file is left on the USB Key.
or
After you update the bios you can make a backup of it with AFUDE238.exe.

Phoenixtools work as well maybe.

Because I look how to extract .bin/.rom file from .exe, I will make an example for MSI 970A-G46 - V2.8 - Tested and Working!
Open the BIOS.exe file with hex editor
Create a file in hex editor and fill with FF from 0x to 2FFFFx
From .exe file copy from 2EC3C9x to ABC3C8x address and paste it in file created before next from 2FFFFx address.
You will have 64Mbite file.

I mention that this bord run with AMD CPU, and the BIOS may be different from Intel board

@OCBSlimz

Just wanted to say thanks for posting this solution. I been trying all day to extract an MSI exe bios with normal tools such as 7Zip to no avail, but this B2MB was the only thing I found that worked. Now a failed bios update on a MSI H67MS-E23 has been salvaged thanks to your post above. At least Google search gave me your result right away. Thanks

@Pityu :
I’d love if you could add the file because this is exactly what I’m trying to do.

@Bitsoup - see attached file in post #1 it will extract BIOS from .exe for you.

@Lost_N_BIOS :
B2MB extract produces this error-

Screenshot_7.png



But creates these two files 1kb each-

Screenshot_8.png



MMTool is unable to read either file-

Screenshot_9.png

@Bitsoup - Give me link to MSI BIOS Download I assume the .bin file is probably the correct one, but maybe you’re using wrong MMTool for this BIOS. But I can’t see the size of the .bin, if 1kb too, yes that’s wrong

Attached !

MSI 970A-G46 - V2.8_Pure.rar (3.75 MB)

https://www.msi.com/Motherboard/support/970A-G46.html

I found some success running the exe file in Windows on a USB which extracted the files during the process. I was able to copy and move them then cancel the install.

Screenshot_4.png



This is what that folder contains. E7693AMS.280 appears to be the correct file and runs in MMtool

Screenshot_5.png

@Pityu :
Thanks!

Yes, if you have system with MSI motherboard, this method working very well.
In another system it will not work!

@Pityu - It usually works fine for me here not on MSI board, straight from the desktop or other storage folders, but this BIOS it doesn’t. Of course I know several other methods to get BIOS from file too, so if it not work for some BIOS you can still get from the exe

Sorry for not giving you file right off @Bitsoup I was not sure what motherboard or BIOS version you wanted (Which you still did not say). And yes, the .280 is the BIOS.bin file.

@Lost_N_BIOS :
Sorry i did not specify!
MSI 970A-G46
AMI 2.8

@Lost_N_BIOS
I will be very glad if you tell me one easy method for extracting this BIOS. The method from post #5 I give, it is very complicated for most of the users.
Thanks !

@Pityu - Oone easy, user friendly method is follow the exe directions and put on USB then run, that extracts the BIOS.
Easier way for your step #5 via hex is open exe in hex, go to 002ec3c9, select range 8MB or 8000000h (Or select remaining manually, since that (BIOS) is all that’s left from there to the end), copy paste to new file, done.

How you explained it doesn’t make sense to me, EOF is 012bc3c8, and what you mentioned ABC3C8 stops in middle of BIOS right before NVRAM starts, so yes I can see how that would be hard for users, it’s doesn’t work for me how you explained it
Also, no need for step above that about creating hex file with FF filled to 2FFFFx? None of that necessary, and also doesn’t make sense to me either. New blank file is all you need, copy/paste from exe, then done.

@Bitsoup
Can you please upload your file extracted. I need to compare with Lost_N_Biios method.
Thank you in advance.

Sorry @Pityu , I forgot when checking your method it was wrong for me some, not enough selected starting at point you mentioned and I misspoke on the #'s above last night too! You need to start at end of exe, at 002bc3c9 then select rest of file 10000000 (16MB/16384KB)
Sorry for any confusion I made!

I now see both your 8MB file and my 16MB file open properly in UEFITool. Looks like two BIOS volumes, one version 09 and one 29 by looking at FID in last volume of each, neither match the 28 of the file name?? Maybe this exe is same for two boards?
I checked both in AMIBCP and both show version 29 though, so who knows what goes on here!

WTH.png