web-dev-qa-db-ja.com

このDOSexe BIOSアップデータからROMファイルを抽出するにはどうすればよいですか?

Dell VOSTRO 260BIOSを更新しようとしています。私はどこにでも行くのに苦労しています、詳細については参照してください:

Flashromを直接抽出することにしました。フラッシュステップを実行しようとはしていません。単にexeからROMを抽出するためです。したがって、exeをダウンロードしてdosemuを使用して実行しようとすると、次のようになります。

$ wget http://downloads.Dell.com/FOLDER01639275M/1/MS-A10.exe
$ dosemu -dumb MS-A10.exe > log
$ cat log
SfxDos v2.11. [2012/06/25]
Extracting Files: [6174382 / 6174382] 100%  
Missing SMBIOS Table

これはどういう意味ですか?誰かがそれらのexeファイルから実際のファームウェアを抽出することに成功しましたか?動作するものが見つかりませんでした:

$ unrar l MS-A10.exe 

UNRAR 5.00 beta 8 freeware      Copyright (c) 1993-2013 Alexander Roshal

MS-A10.exe is not RAR archive

または

$ unzip -l MS-A10.exe 
Archive:  MS-A10.exe
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of MS-A10.exe or
        MS-A10.exe.Zip, and cannot find MS-A10.exe.Zip, period.

参考のため:

$ file MS-A10.exe 
MS-A10.exe: MS-DOS executable

この自己解凍型DOSexeからROMファイルを抽出するにはどうすればよいですか?

1
malat

実際、それは些細なことでした。単にワインの下で実行してください。

$ wine MS-A10.exe

出力は.wineディレクトリにあります。

$ find $HOME/.wine | grep MS-A10
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10/AFUWIN.EXE
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10/AMIFLDRV.VXD
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10/AMIFLDRV64.SYS
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10/AMIFLDRV32.SYS
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10/RosaBUU.exe
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10/Pmxdll.dll
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10/Idrvdll.dll
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10/FWUpdLcl.exe
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10/settings.ini
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10/error.log
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10/1176upd.BIN
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10/AFUWINx64.EXE
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10/RosaBUU.log
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10/MS-A10.BIN
/home/mathieu/.wine/drive_c/users/mathieu/Temp/MS-A10/FWUpdLcl64.exe

と:

$ file MS-A10.BIN
MS-A10.BIN: Intel serial flash for PCH ROM

これは、このBIOSアップデートを実行しようとする人にはほとんど関心がないと思います。Win7/ 32ビット修復ディスクを使用することはオプションではないことに注意してください(私は ここ の指示に従いました)。実際、実行時に必要なDLLでは、oledlg.dllを見つける必要があります。

$ objdump -x RosaBUU.exe  | grep DLL
 vma:            Hint    Time      Forward  DLL       First
    DLL Name: dbghelp.dll
    DLL Name: KERNEL32.dll
    DLL Name: USER32.dll
    DLL Name: GDI32.dll
    DLL Name: COMDLG32.dll
    DLL Name: WINSPOOL.DRV
    DLL Name: ADVAPI32.dll
    DLL Name: Shell32.dll
    DLL Name: COMCTL32.dll
    DLL Name: SHLWAPI.dll
    DLL Name: oledlg.dll
    DLL Name: ole32.dll
    DLL Name: OLEAUT32.dll

どうやらこのDLLはWin7/32ビット修復ディスクからは存在しません。

3
malat

ROM(Windowsが必要な場合があります)を抽出するためのコマンドラインスイッチがあります:

MS-A10.exe /writeromfile
1
Martin Zeitler

追加のパラメータ「-」を指定してEXEファイルを実行した場合の出力は何ですか? ?
使用可能なコマンドラインオプションのリストが表示される場合があります。

DOS用の古いバージョンのRARで作成されている場合、通常、「-x」は、直後にBIOSフラッシャーを実行しようとせずに、抽出のみを実行します。

とにかく:Linux環境内からDOSベースのフラッシュユーティリティを実行することはできません。それが実際にあなたが見ているSMBiosメッセージを引き起こしています。これは、BIOSチップが見つからないことを意味します。 dosemuのようなエミュレーターは役に立ちません。 DOSコマンドにハードウェアへの必要な低レベルのアクセスを与えることはできません。

最良のオプションは、FreeDOSでUSBブートスティックまたはブータブルCDを作成し、そこからEXEを実行することです。 EXEを解凍する必要はまったくありません。 (読み取り専用メディアから実行する場合は、RAMディスクを作成してそこからEXEを実行するようにFreeDOSをセットアップする必要があります。BIOSファイルを抽出するための書き込み可能な作業ディレクトリが必要です。)

0
Tonny