|
推荐

楼主 |
发表于 2016-11-25 22:30:59
|
只看该作者
制作了个提取微软iso的引导文件批处理,只是自己为了学习一下
微软的xp镜像或xpe镜像或win7的镜像的引导文件都有结束标志 55AA
win7的引导文件ETFSBOOT.COM一般为4k
xp的引导文件一般为2k
----------------------------------------------------------------------------------------
所需工具
hex2dec 10进制和16进制转换程序
strw 处理文件的程序
dd for windows windows下的dd工具
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@echo off
cd /d %~dp0
set /p ui=拖入要提取引导文件的iso:
echo 光盘引导记录扇描述符扇区:位于17扇区,其偏移地址0x8847是系统引导标识所在扇区号(十六进制) iso的一个扇区是2048个字节
for /f "tokens=2 delims= " %%a in ('strw %ui% 0x8847 1 /v') do set o=%%a
echo %o%
echo 系统引导标识扇区
for /f "tokens=2 delims== " %%a in ('hex2dec 0x%o%') do set kk=%%a
echo.
echo %kk%
set /a p=%kk%*2048+40
echo %p%
for /f "tokens=2 delims== " %%a in ('hex2dec %p%') do set kk=%%a
echo.
echo %kk%
echo 系统引导扇区
for /f "tokens=2 delims= " %%a in ('strw %ui% %kk% 1 /v') do set o=%%a
echo %o%
for /f "tokens=2 delims== " %%a in ('hex2dec 0x%o%') do set kk=%%a
echo.
echo %kk%
rem iso的一个扇区是2048个字节
set /a p=%kk%*2048
echo 引导文件开始地址:%p%
for /f "tokens=2 delims== " %%a in ('hex2dec %p%') do set kk=%%a
echo.
echo %kk%
pause
echo 微软的引导文件都有结束标志 55AA
for /f "skip=3 delims= " %%a in ('strw %ui% %p% 0 /F /hex:55AA') do (set /a a=1+%%a
echo.
)
echo %a%
for /f "skip=3 delims= " %%a in ('strw %ui% %a% 0 /F /hex:55AA') do (echo %%a
set /a a=2+%%a
echo.
)
echo %a%
set /a a=%a%-%p%
echo 引导文件大小为:%a%
pause
echo 提取引导文件
dd if=%ui% of=slic.bin bs=1 count=%a% skip=%p%
pause
exit |
|