Board logo

标题: 这个批处理文件是怎么传输GHOST密码的? [打印本页]

作者: 不得不爱     时间: 2005-10-20 13:45    标题: 这个批处理文件是怎么传输GHOST密码的?

谁能帮我解释一下批处理文件的意思?
@ECHO OFF
SET ERRCODE=
PATH=%TEMP%\TOOLS;%TEMP%\DOS
:CHECKCD
REM Check CD-ROM Drive
REM  0:Ready 1:NotReady 2:NotCD-ROMdrive 3:IllegalDrive
CDCHECK T: > NUL
CDCHECK T: > NUL
IF ERRORLEVEL 2 GOTO NO_CDDRV
IF ERRORLEVEL 1 GOTO SET_CDROM
SET CDDRV=T:
GOTO CD_EXIST

:SET_CDROM
REM Insert CD-ROM
BMPVIEW %TEMP%\BMP\SETCDROM.BMP
PAUSE > NUL

:CHECKCD2
REM Check CD-ROM Drive
CDCHECK T: > NUL
CDCHECK T: > NUL
IF ERRORLEVEL 2 GOTO NO_CDDRV
IF ERRORLEVEL 1 GOTO NOCDROM
SET CDDRV=T:
GOTO CD_EXIST

:CD_EXIST
REM Check Recovery CD-ROM
IF NOT EXIST %CDDRV%\PREINST.GHO GOTO BAD_CDROM
IF NOT EXIST %CDDRV%\PREINST.CRC GOTO BAD_CDROM
IF NOT EXIST %CDDRV%\GHOST.EXE GOTO BAD_CDROM
IF NOT EXIST %TEMP%\TOOLS\GHOST.EXE COPY %CDDRV%\GHOST.EXE %TEMP%\TOOLS > NUL
IF EXIST %CDDRV%\SPAN.BMP COPY %CDDRV%\SPAN.BMP %TEMP%\TOOLS > NUL
IF EXIST %TEMP%\TOOLS\SPAN.BMP COPY %TEMP%\TOOLS\SPAN.BMP %TEMP%\ > NUL
COPY %CDDRV%\PREINST.CRC %TEMP%\PREINST.CD > NUL

FOR %%A IN (%CDDRV%\*.*) DO CALL FILECOPY.BAT %%A %TEMP%\

:RECOVERY
IF NOT EXIST %CDDRV%\PREDATA.BAT GOTO BAD_CDROM
IF (%COMPMODE%) == () CALL %CDDRV%\PREDATA.BAT
REM --- IF NOT EXIST %TEMP%\BMP\CHANGE.BMP GOTO SKIP
REM --- IF (%CDMAX%) == (1) GOTO SKIP
REM --- BMPVIEW %TEMP%\BMP\CHANGE.BMP
REM --- PAUSE > NUL
:SKIP
SET ERRCODE=.
IF (%PASSMODE%) == (YES) GOTO GHOSTPASS
IF (%COMPMODE%) == (PARTITION) GHOST -clone,mode=pload,src=%CDDRV%\PREINST.GHO:1,dst=1:1 -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT%
IF (%COMPMODE%) == (DRIVE)     GHOST -clone,mode=load,src=%CDDRV%\PREINST.GHO,dst=1,szeE -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT%
IF ERRORLEVEL 1 GOTO REC_NG
GOTO GDONE

:GHOSTPASS
SET TGHOSTPS=%FILENAME%
IF (%COMPMODE%) == (PARTITION) TGHOST -clone,mode=pload,src=%CDDRV%\PREINST.GHO:1,dst=1:1 -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT%
IF (%COMPMODE%) == (DRIVE)     TGHOST -clone,mode=load,src=%CDDRV%\PREINST.GHO,dst=1,szeE -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT%
IF ERRORLEVEL 1 GOTO REC_NG

:GDONE
LBA /C > NUL
GDISK 1 /MBR > NUL
SET ERRCODE=..
IF (%COMPMODE%) == (PARTITION) GHOST -CRC32,action=pcreate,src=1:1,crcfile=%TEMP%\PREINST.HDD -afile=%DRV1%\PREINST.ERR -sure -fni %GOPT%
IF (%COMPMODE%) == (DRIVE)     GHOST -CRC32,action=create,src=1,crcfile=%TEMP%\PREINST.HDD -afile=%DRV1%\PREINST.ERR -sure -fni %GOPT%
IF ERRORLEVEL 1 GOTO REC_NG
SET ERRCODE=...
COMPFILE %TEMP%\PREINST.CD %TEMP%\PREINST.HDD > NUL
IF ERRORLEVEL 1 GOTO COMPERR

:NORMAL
IF EXIST CMOS.BAT CALL CMOS.BAT
REM Recovery success
SET ERRCODE=
BMPVIEW %TEMP%\BMP\THEEND.BMP

:LOOP
PAUSE > NUL
HWREBOOT
GOTO LOOP

REM ================= ERROR ===============================
:COMPERR
FC %TEMP%\PREINST.CD %TEMP%\PREINST.HDD > %TEMP%\COMP.LOG
GOTO REC_NG

:BAD_CDROM
REM Bad CD-ROM
BMPVIEW %TEMP%\BMP\BADCDROM.BMP /X=140 /Y=160
CLK
CHOICE > NUL
IF ERRORLEVEL 2 GOTO CDERREND
REM Push 'Y' button
BMPVIEW %TEMP%\BMP\Y1.BMP /XC /X=340 /Y=288
GOTO SET_CDROM

:NOCDROM
REM CD-ROM not found
BMPVIEW %TEMP%\BMP\NOCDROM.BMP /X=140 /Y=160
CLK
CHOICE > NUL
IF ERRORLEVEL 2 GOTO CDERREND
REM Push 'Y' button
BMPVIEW %TEMP%\BMP\Y1.BMP /XC /X=340 /Y=288
GOTO SET_CDROM

:NO_CDDRV
REM CD-ROM Drive not found
BMPVIEW %TEMP%\BMP\NO_CDDRV.BMP
PAUSE > NUL
GOTO END

:REC_NG
REM Recovery error
BMPVIEW %TEMP%\BMP\RECOVERR.BMP /X=96 /Y=168
ECHO %ERRCODE%
CLK
CHOICE /C:YNS> NUL
IF ERRORLEVEL 3 GOTO DEBUGEND
IF ERRORLEVEL 2 GOTO R_ERREND
REM Push 'Y' button
BMPVIEW %TEMP%\BMP\Y3.BMP /XC /X=392 /Y=272
REM Restart
BMPVIEW %TEMP%\BMP\REBOOT2.BMP
PAUSE > NUL
REM check boot devie
REM  0:FD 1:CD-ROM
CDCKBOOT > NUL
REM if errorlevel 1 then set boot priority "CD-ROM"=4
IF ERRORLEVEL 1 SETBOOT 4 >NUL
REM reboot
HWREBOOT
GOTO END

:R_ERREND
REM Push 'N' button
BMPVIEW %TEMP%\BMP\N1.BMP /XC /X=464 /Y=272
GOTO END

:CDERREND
REM Push 'N' button
BMPVIEW %TEMP%\BMP\N1.BMP /XC /X=412 /Y=288
GOTO END

:END
OFF
BMPVIEW %TEMP%\BMP\NO_PWOFF.BMP
PAUSE > NUL
GOTO END

:DEBUGEND
IF EXIST %TEMP%\PREINST.ERR FIND /I "Message:" %TEMP%\PREINST.ERR
[ Last edited by qwe1234567 on 2006-6-7 at 08:22 ]
作者: Michael     时间: 2005-10-20 18:58
每一行都要解釋?
作者: JonePeng     时间: 2005-10-20 22:36
大概就是自动寻找光驱盘符,然后自动运行ghost读取镜像文件再恢复到C盘。
作者: 不得不爱     时间: 2005-10-21 19:17
解釋一下恢复到C盘批处理文件的执行过程!
作者: chujiafu     时间: 2005-10-21 21:40
多看看几遍就能看懂了。
作者: DOSforever     时间: 2005-10-21 23:10


  Quote:
Originally posted by Michael at 2005-10-20 18:58:
每一行都要解釋?


作者: bush     时间: 2005-10-22 20:40    标题: 不好意思反问一句

这个好像不能在dos下運行吧? 看不懂~
作者: 不得不爱     时间: 2005-10-24 08:44
当然是在dos下運行咯!
作者: 本是     时间: 2005-10-25 14:30    标题: 详细注释!

这是预安装镜像文件的硬盘化安装批处理程序。详细注释见下面,注意:这不是能执行的.BAT!要运行,请用原来的.BAT。

@ECHO OFF
SET ERRCODE=
PATH=%TEMP%\TOOLS;%TEMP%\DOS
:CHECKCD
测光驱1
无光驱,跳转NO_CDDRV
未准备好,跳转SET_CDROM
SET CDDRV=T:
跳转 CD_EXIST

:SET_CDROM
插入光盘
显示图片SETCDROM.BMP

:CHECKCD2
测光驱2
无光驱,跳转NO_CDDRV
未准备好,跳转NOCDROM
SET CDDRV=T:
跳转 CD_EXIST

:CD_EXIST
测恢复光盘文件
无%CDDRV%\PREINST.GHO,跳转BAD_CDROM
无%CDDRV%\PREINST.CRC,跳转BAD_CDROM
无%CDDRV%\GHOST.EXE,跳转BAD_CDROM
无%TEMP%\TOOLS\GHOST.EXE,COPY %CDDRV%\GHOST.EXE %TEMP%\TOOLS > NUL
有%CDDRV%\SPAN.BMP,COPY %CDDRV%\SPAN.BMP %TEMP%\TOOLS > NUL
有%TEMP%\TOOLS\SPAN.BMP,COPY %TEMP%\TOOLS\SPAN.BMP %TEMP%\ > NUL
COPY %CDDRV%\PREINST.CRC %TEMP%\PREINST.CD > NUL
全部拷贝FOR %%A IN (%CDDRV%\*.*) DO CALL FILECOPY.BAT %%A %TEMP%\

:RECOVERY
无%CDDRV%\PREDATA.BAT,跳转BAD_CDROM
%COMPMODE%为空,CALL %CDDRV%\PREDATA.BAT
REM --- IF NOT EXIST %TEMP%\BMP\CHANGE.BMP GOTO SKIP
REM --- IF (%CDMAX%) == (1) GOTO SKIP
REM --- BMPVIEW %TEMP%\BMP\CHANGE.BMP
REM --- PAUSE > NUL
:SKIP
SET ERRCODE=.
(%PASSMODE%)为(YES)密码设置,跳转GHOSTPASS
(%COMPMODE%)为(PARTITION)分区拷,执行GHOST -clone,mode=pload,src=%CDDRV%\PREINST.GHO:1,dst=1:1 -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT%
(%COMPMODE%)为(DRIVE)全盘拷,执行GHOST -clone,mode=load,src=%CDDRV%\PREINST.GHO,dst=1,szeE -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT%
IF ERRORLEVEL 1,跳转REC_NG
跳转GDONE

:GHOSTPASS
SET TGHOSTPS=%FILENAME%
(%COMPMODE%)为(PARTITION),执行GHOST -clone,mode=pload,src=%CDDRV%\PREINST.GHO:1,dst=1:1 -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT%
(%COMPMODE%)为(DRIVE),执行GHOST -clone,mode=load,src=%CDDRV%\PREINST.GHO,dst=1,szeE -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT%
IF ERRORLEVEL 1,跳转REC_NG

:GDONE
LBA /C > NUL
GDISK 1 /MBR > NUL
SET ERRCODE=..
(%COMPMODE%)为(PARTITION),执行GHOST -CRC32,action=pcreate,src=1:1,crcfile=%TEMP%\PREINST.HDD -afile=%DRV1%\PREINST.ERR -sure -fni %GOPT%
(%COMPMODE%)为(DRIVE),执行GHOST -CRC32,action=create,src=1,crcfile=%TEMP%\PREINST.HDD -afile=%DRV1%\PREINST.ERR -sure -fni %GOPT%
IF ERRORLEVEL 1,跳转REC_NG
SET ERRCODE=...
COMPFILE %TEMP%\PREINST.CD %TEMP%\PREINST.HDD > NUL
IF ERRORLEVEL 1,跳转COMPERR

:NORMAL
有CMOS.BAT,执行CALL CMOS.BAT
REM 成功恢复
SET ERRCODE=
显示图片%TEMP%\BMP\THEEND.BMP

:LOOP
PAUSE > NUL
重启HWREBOOT
跳转LOOP

REM 出错
:COMPERR比较差异
FC %TEMP%\PREINST.CD %TEMP%\PREINST.HDD > %TEMP%\COMP.LOG
跳转REC_NG

:BAD_CDROM光驱无效
显示图片%TEMP%\BMP\BADCDROM.BMP /X=140 /Y=160
CLK
CHOICE > NUL
IF ERRORLEVEL 2 GOTO CDERREND
REM 选中Y
显示图片%TEMP%\BMP\Y1.BMP /XC /X=340 /Y=288
跳转SET_CDROM

:NOCDROM无光驱
显示图片%TEMP%\BMP\NOCDROM.BMP /X=140 /Y=160
CLK
CHOICE > NUL
IF ERRORLEVEL 2,跳转CDERREND
REM 选中Y
显示图片%TEMP%\BMP\Y1.BMP /XC /X=340 /Y=288
跳转SET_CDROM

:NO_CDDRV光驱未找到
显示图片%TEMP%\BMP\NO_CDDRV.BMP
PAUSE > NUL
跳转END

:REC_NG恢复出错
显示图片%TEMP%\BMP\RECOVERR.BMP /X=96 /Y=168
显示出错码ECHO %ERRCODE%
CLK
CHOICE /C:YNS> NUL
IF ERRORLEVEL 3,跳转DEBUGEND
IF ERRORLEVEL 2,跳转R_ERREND
REM 选中Y
显示图片%TEMP%\BMP\Y3.BMP /XC /X=392 /Y=272

显示图片%TEMP%\BMP\REBOOT2.BMP
PAUSE > NUL
REM 测启动设备
REM  0:FD 1:CD-ROM
CDCKBOOT > NUL
REM if errorlevel 1 then set boot priority "CD-ROM"=4
IF ERRORLEVEL 1设置SETBOOT 4 >NUL
重启HWREBOOT
跳转END

:R_ERREND
REM 选中Y
显示图片%TEMP%\BMP\N1.BMP /XC /X=464 /Y=272
跳转END

:CDERREND
REM 选中Y
显示图片%TEMP%\BMP\N1.BMP /XC /X=412 /Y=288
跳转END

:END
OFF
显示图片%TEMP%\BMP\NO_PWOFF.BMP
PAUSE > NUL
跳转END

:DEBUGEND
有%TEMP%\PREINST.ERR,执行FIND /I "Message:" %TEMP%\PREINST.ERR
作者: 不得不爱     时间: 2005-10-27 13:39
能解释下面一句吗?
GHOST -clone,mode=pload,src=%CDDRV%\PREINST.GHO:1,dst=1:1 -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT%
作者: quan_zhou     时间: 2005-10-27 16:56
大概是
将光盘的PREINST.GHO恢复到第一个硬盘第一个分区,若出错输记录文件到=%TEMP%\PREINST.ERR 。
作者: 不得不爱     时间: 2005-10-28 07:34
quan_zhou:
你知道GHOST的所有批处理参数吗?
作者: 本是     时间: 2005-10-31 12:41
Re qwe1234567:

我解释了那么长,你怎么这种态度?一句赞扬的话都没有!
别人给你回帖,你该先应答,再进一步提问呀。不要一副老大的派头!
你的帖我不想再跟了!

[ Last edited by 本是 on 2005-10-31 at 12:42 ]
作者: 不得不爱     时间: 2005-10-31 14:17
RE  本是:
你好,你解释得很好,我非常感谢你!也非常感谢关心我这个问题的人,只是我不明白的是GHOST -clone,mode=pload,src=%CDDRV%\PREINST.GHO:1,dst=1:1 -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT%这个命令是怎么将PREINST.GHO文件的密码发送给GHOST的,所以我忘记给各位致谢,非常对不起你!
作者: 本是     时间: 2005-10-31 15:14
Sorry! qwe1234567. 我也是半开玩笑的。玩笑就到此为止吧。言归正传--
因为GHOST命令行传递密码的手段是-pwd=xxx,所以GHOST -clone,mode=pload,src=%CDDRV%\PREINST.GHO:1,dst=1:1 -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT%中唯有%GOPT%是可变项,此环境变量可能就传递了密码,再仔细看看.BAT文件的其它行,应该可以找出%GOPT%的实际值。
作者: 不得不爱     时间: 2005-10-31 19:33
谢谢你的解答,我再问一下:
-afile=%TEMP%\PREINST.ERR 这个参数你能解释吗,我可以肯定地说%GOPT%应该不是传递密码的,因为SET不支持两个=号,我估计是-afile=%TEMP%\PREINST.ERR或者是-fni  -batch!
作者: jinshngchqun     时间: 2006-2-24 12:33
呵呵我的东芝笔记本里面就有这样的程序,他的GHO文件加了密码,估计密码是:
S3A1195D.001
作者: jinshngchqun     时间: 2006-2-24 12:39    标题: 在自动批处理里面有:

SET GOPT=-QUIET
作者: mpl2005     时间: 2006-6-6 20:38


  Quote:
Originally posted by 本是 at 2005-10-31 15:14:
Sorry! qwe1234567. 我也是半开玩笑的。玩笑就到此为止吧。言归正传--
因为GHOST命令行传递密码的手段是-pwd=xxx,所以GHOST -clone,mode=pload,src=%CDDRV%\PREINST ...

:tghost.exe会在环境变量里寻找TGHOSTPS变量的值,然后有一个算法把TGHOSTPS变量的值转成ghost.exe的口令再调用ghost.exe来恢复,这样,我们在不知道口令的情况下仍然完成了想要完成的任务,主要是tghost.exe这个文件
相关资料如下
SET SWN=S3A1685D
SET EXT=001
SET VOLLABEL=%SWN%%EXT%
SET FILENAME=%SWN%.%EXT%
SET TGHOSTPS=%FILENAME%


IF (%COMPMODE%) == (PARTITION) TGHOST -clone,mode=pload,src=%CDDRV%\PREINST.GHO:1,dst=1:1 -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT%
作者: shuiruobing     时间: 2006-6-6 21:16
顶一下
作者: 不得不爱     时间: 2006-6-6 22:24


  Quote:
Originally posted by mpl2005 at 2006-6-6 20:38:

:tghost.exe会在环境变量里寻找TGHOSTPS变量的值,然后有一个算法把TGHOSTPS变量的值转成ghost.exe的口令再调用ghost.exe来恢复,这样,我们在不知道口令砮..

原来是tghost.exe在这里作怪!谢谢了!
作者: lianji     时间: 2006-7-3 01:41
请问qwe1234567版主~~哪里看到的例子???能告诉出处吗????????
作者: mpl2005     时间: 2006-7-15 11:50
TOSHIBA A50系统恢复光盘
作者: faefb3     时间: 2007-2-18 03:14
A50的Ghost密码是四位字符。因为商业秘密,只能告诉这么多。