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