32 1234
发新话题
打印

[3]让你的Ghost XP更加自动化---dllcache的重建

[3]让你的Ghost XP更加自动化---dllcache的重建

[这个贴子最后由benjaminwan在 2004/05/31 07:44am 第 4 次编辑]

[1]让你的Ghost XP盘更加自动化--自动选择计算机类型原理简述
[2]让你的Ghost XP更加自动化---计算机类型自动检测的实现
[3]让你的Ghost XP更加自动化---dllcache的重建
[4]让你的Ghost XP更加自动化---最后的保护:OOBC
一般情况下,为减少万能Ghost XP的体积,制作时都删除了dllcache下的文件,但这样也破坏了系统的稳定性
曾有人提出,制作一个批处理,在最小化安装的注册组件阶段重建dllcache,但无奈文件太多太分散,不好实现。
但并不是不能实现。
我的实现方法:
1.在重新封装之前用命令dir %systemroot%\system32\dllcache\*.* /a /b> c:\sysprep\file.txt
保存dllcache内的文件列表到文件file.txt,因为操作系统不同,安装的系统组件不同,
dllcache内的文件不相同。
2.然后可以用sfc /purgecache清除dllcache了
3.最后在注册组件阶段用类似如下的命令来复制文件
FOR /F "usebackq" %%i IN (file.txt) DO if exist %systemroot%\%%i copy %systemroot%\%%i %systemroot%\system32\dllcache
这行命令的意思是读取file.txt的每一行并写入变量i中,并为每一行执行一个命令。
例如,file.txt第一行为abc.dll,第二行为efg.dll
那么实际执行时就会变成以下两句
if exist %systemroot%\abc.dll copy %systemroot%\abc.dll %systemroot%\system32\dllcache
if exist %systemroot%\efg.dll copy %systemroot%\efg.dll %systemroot%\system32\dllcache
file.txt内有多少行,就执行多少次命令
所以只要让它为各个不同的目录执行复制就可以了。
不要担心它的执行效率,只要在echo off模式下,速度并不慢,占用的时间大部分是花在复制文件上。
百密必有一疏,虽然这样做比较方便,但总有些文件会漏掉。
我提供的附件里的批处理,也只能恢复大概80%的dllcache内的文件。(在XP下测试)
----------------------------------------------------------------------------------------------------------
上篇文章中曾提到计算机类型的自动检测,其实方法多种多样,这次提供的附件中就附带了用PE来实现自动检测的批处理。
一个方法只有应用到实际中才可以显出其优劣,但你看到的不应该仅仅是它的优劣,而应该明白这个方法所蕴涵的知识。
-------------------------------------------------------------------------------------------------------------
                                                                    benjaminwan
                                                                    2004.5.26
附件: 您所在的用户组无法下载或查看附件

TOP

[3]让你的Ghost XP更加自动化---dllcache的重建

[这个贴子最后由benjaminwan在 2004/05/30 12:22pm 第 3 次编辑]

part2
附件: 您所在的用户组无法下载或查看附件

TOP

[3]让你的Ghost XP更加自动化---dllcache的重建

[这个贴子最后由benjaminwan在 2004/05/30 12:23pm 第 4 次编辑]

part3
附件: 您所在的用户组无法下载或查看附件

TOP

[3]让你的Ghost XP更加自动化---dllcache的重建

辛苦您了!支持!!
至于只能安装80%,是不是file.txt不太准确,要知道dllcache里不光只是文件,还有文件夹,是不是文件夹里的文件没写进file.txt里呢?

TOP

[3]让你的Ghost XP更加自动化---dllcache的重建

辛苦您了!支持!!

TOP

[3]让你的Ghost XP更加自动化---dllcache的重建

FOR /F "usebackq" %%i IN (file.txt) DO if exist %systemroot%\%%i copy %systemroot%\%%i %systemroot%\system32\dllcache
这个是不是只能拷贝%systemroot%目录里的,不能拷贝其它目录里的呢?
DLLCACHE里面是没有文件夹的!
作一个可以改变人生的人.

TOP

[3]让你的Ghost XP更加自动化---dllcache的重建

你附件中的DLL恢得的长文件名可能会出错!
作一个可以改变人生的人.

TOP

[3]让你的Ghost XP更加自动化---dllcache的重建

引用:
下面引用由je642004/05/27 10:17am 发表的内容:
FOR /F "usebackq" %%i IN (file.txt) DO if exist %systemroot%\%%i copy %systemroot%\%%i %systemroot%\system32\dllcache
这个是不是只能拷贝%systemroot%目录里的,不能拷贝其它目录里的呢?
DLL ...
是的,只能复制%systemroot%目录里的文件。
引用:
下面引用由je642004/05/27 10:25am 发表的内容:
你附件中的DLL恢得的长文件名可能会出错!
不用担心,其实不能恢复的那部分文件,就是由长文件名改成了短文件名存在dllcache下
打开用于控制XP安装时复制文件的txtsetup.sif
可以看到类似如下的复制语句:
evcreate.exe = 1,,,,,,,2,0,0,eventcreate.exe
意思是:原文件名为evcreate.exe,来源为i386,复制到%systemroot%\system32
复制后改名为eventcreate.exe
同时这个文件也要被复制到dllcache下,但文件名仍为evcreate.exe
所以对这部分文件比较难办。

TOP

[3]让你的Ghost XP更加自动化---dllcache的重建

由于没有考虑到XP的osloader不能用于2003,所以昨天的附件在2003下重新封装会导致2003无法启动,现已更正,附件已更新。

TOP

[3]让你的Ghost XP更加自动化---dllcache的重建

引用:
下面引用由benjaminwan2004/05/27 01:35pm 发表的内容:
不用担心,其实不能恢复的那部分文件,就是由长文件名改成了短文件名存在dllcache下
打开用于控制XP安装时复制文件的txtsetup.sif
可以看到类似如下的复制语句:
evcreate.exe = 1,,,,,,,2,0,0,eventcreate.exe
...
其实我是指你的路径了!!!
比如:
Microsoft Shared
要不要改成
Micros~1
eventcreate.exe这种长文件名的我在DLLCACHE目录里面倒是没发现!
作一个可以改变人生的人.

TOP

 32 1234
发新话题