据我所知,榕榕的教程教程总共有三个部分,其中的技术解密篇和问题集锦篇做的很不错,其中讲解了在制作GHOST XP中较高级的技术,解决了不少初学者甚至是老鸟的问题!但是大家也应该知道,制作教程其实比制作GHOST XP还要难,工作量大,这就难免会在教程中出现没有讲清楚或是容易让大家迷茫的地方.这里我就我所知道的完善一下,说的对的请大家虚心学习,不好的请指正.
1. DllcacheManager恢复时间的把握问题:原教程给出了在三个地方调用DLLCACHEMANAGER.EXE,但是对备份时DLLCACHEMANAGER.EXE的放置位置,备份时的三个选项(1.恢复时自动撤除自己,2.倒计时,3.恢复默认设置)和如何实现DLLCACHEMANAGER自动恢复(倒计时为0)并不是讲的很清楚,我在这里补充一下.
DLLCACHEMANAGER.EXE的放置位置:新版的DLLCACHEMANAGER.EXE可以放置在任何一个位置,但一般大家会放置在两个地方.一个地方是C:\WINDOWS,放在这个文件夹内时当打开DLLCACHEMANAGER.EXE备份的时候只有一个可选项(默认设置)可以选,若选上默认配置这个选项后在配合SRS使用时,会在封装完系统进入桌面后会自动调用,但是这个时候恢复是有倒计时的,并不能实现自动恢复(当然可以通过修改注册表,实现0倒计时).第二个可以放置在系统盘的非C:\WINDOWS的地方,例如放置在C:\这个根目录下面.这时启动DLLCACHEMANAGER.EXE备份时就会出现三个选向可以选(1.恢复时自动撤除自己,2.倒计时,3.恢复默认设置)很多人会误会选第二个倒计时为0就可以实现自动恢复,其实不是这样的.如果要实现自动恢复(0倒计时),须注册表中加入倒计时为0 的参数.例如,你把DLLCACHEMANAGER.EXE放置在C:\,备份时选择1.恢复时自动撤除自己,然后在注册表中导入
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]
"dllcache"="c:\DllcacheManager.exe /restore /autodelete /timeout"
其中的TIMEOUT就是用做实现自动恢复(0倒计时)
若想要用XPLOAD调用DLLCACHEMANAGER.EXE则可以把DLLCACHEMANAGER放置在\XPLOAD\SOFT的目录中然后单机备份选择1.恢复时自动撤除自己,然后在配置文件中加入
<item display="» 4.准备恢复备份的DLL文件">
<execute display="» 正在运行DllcacheManager...">
<program>#XPLODE#\soft\DllcacheManager.exe</program>
<arguments>/restore /autodelete /timeout0</arguments>
</execute>
</item>
其中的timeout0就是用做0倒计时恢复
2.关于ASRCLEAN的使用问题.ASRCLEAN的使用方法有两种
第一种是先用C的检测本机驱动的批处理产生两个列表:ASRLIST.TXT和OTHERLIST.TXT再使用批处理通过ASRLIST.TXT和OTHERLIST.TXT调用ASRCLEAN.另外一种是直接用木鸟提供的列表调用ASRCLEAN(这种我不再具体介绍,看完第一中大家也应该明白的了)
例如:
1.RUN.CMD
call c:\windows\runonce\check.cmdstart c:\windows\runonce\ASRClean.exe /ASRList:c:\windows\runonce\ASRList.TXT /OtherList:c:\windows\once\OtherL~1.txt /
2.CHECH.CMD
title 正在检测并清楚残留的驱动
@echo off
set dstfile=%1
if "%1"=="" set dstfile=c:\windows\runonce\ASRList.txt
if exist %dstfile% del /f /q %dstfile%
for /F "usebackq tokens=5 delims=\" %%I in (`reg query "hklm\SYSTEM\CurrentControlSet\Services"`) do if not %%I#==# call :_CheckSCSI %%I
goto :eof
:_CheckSCSI
set svc=%1
if %svc%#==# goto :eof
echo Checking %svc%...
reg query "hklm\SYSTEM\CurrentControlSet\Services\%svc%" /v Group 2>nul | find /i "scsi miniport" >nul 2>nul
if %errorlevel%==0 echo !Add %svc%! && echo %svc%>> %dstfile%
3.在注册表中导入
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]
"ASRCLEAN"="c:\windows\runonce.cmd"
这里是先调用CHECK.CMD检测本机多余的驱动再用生成的ASRLIST.TXT和OTHERLIST.TXT调用ASRCLEAN.这里主要容易范几个错误:1.在批处理调用时最好用上完整的路径,例如C:\WIODWS\RUNONCE\CHECK.CMD,调用生成的ASRLIST.TXT和OTHERLIST.TXT时也最好用上完整路径,例如:ASRList:c:\windows\runonce\ASRList.TXT /OtherList:c:\windows\once\OtherL~1.txt 否就会调用不到列表
2.DOS命名问题,在DOS下只支持8.3格式,即8个文件名 三个后缀名.若用到OTHERLIST.TXT时必须必须在调用时命名为OTHERL~1.txt注意:我这里是把上面的RUN.CMD和CHECK.CMD和ASRCELAN.EXE放在C:\WNDOWS\RUNONCE\ 目录下的,目录你们可以自己修改,但要注意我上面提到的命名问题和绝对路径问题
另:我觉得调用ASRCLEAN清楚残余驱动的时候需要的时间很长,但为了系统的稳定性只好牺牲时间了啊