이 DOS exe BIOS 업데이트 프로그램에서 ROM 파일을 어떻게 추출합니까?

이 DOS exe BIOS 업데이트 프로그램에서 ROM 파일을 어떻게 추출합니까?

DELL VOSTRO 260 BIOS를 업데이트하려고 합니다. 어디로든 이동하기 위해 애쓰고 있습니다. 자세한 내용은 다음을 참조하세요.

나는 단순히 플래시롬을 직접 추출하기로 결정했다. 단순히 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

자동 압축 해제 DOS exe에서 ROM 파일을 어떻게 추출합니까?

답변1

실제로 그것은 사소한 일이었습니다. 간단히 와인 아래에서 실행하십시오.

$ 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비트 복구 디스크에 존재하지 않습니다.

답변2

ROM을 추출하는 명령줄 스위치가 있습니다(Windows가 필요할 수 있음).

MS-A10.exe /writeromfile

답변3

추가 매개변수 "-?"를 사용하여 EXE 파일을 실행할 때 출력되는 내용은 무엇입니까? ?
사용 가능한 명령줄 옵션 목록을 얻을 수 있습니다.

DOS용 RAR의 이전 버전으로 만들어진 경우 일반적으로 "-x"는 BIOS 플래셔를 즉시 실행하지 않고 추출만 수행합니다.

어쨌든: Linux 환경에서는 DOS 기반 플래시 유틸리티를 실행할 수 없습니다. 이는 실제로 보고 있는 SMBios 메시지의 원인입니다. 이는 BIOS 칩을 찾을 수 없음을 의미합니다. Dosemu와 같은 에뮬레이터는 도움이 되지 않습니다. DOS 명령에 하드웨어에 대한 필요한 저수준 액세스 권한을 부여할 수 없습니다.

가장 좋은 옵션은 FreeDOS로 USB 부팅 스틱이나 부팅 가능 CD를 만들고 거기에서 EXE를 실행하는 것입니다. EXE의 압축을 풀 필요가 전혀 없습니다. (읽기 전용 미디어에서 실행하는 경우 FreeDOS를 설정하여 RAM 디스크를 만들고 거기에서 EXE를 실행해야 합니다. BIOS 파일을 추출하려면 쓰기 가능한 작업 디렉터리가 필요합니다.)

관련 정보