gucong 发表于 2010-2-19 23:55:41

安全的替换XP的开机画面

本帖最后由 gucong 于 2010-2-26 03:28 编辑

网上有不少替换XP的开机画面的方法,经过测试,发现有时会使系统无法启动。利用AutoIt则可以安全的替换它。
完成后效果:

AutoIt方式实现方法代码:
SplashTextOn("XP to VISTA", "正在更改开机画面")
RunWait(@SystemDir & "\reshacker.exe -addoverwrite ntoskrnl.exe ,Kernel.exe ,Kernel.res ,,,",@SystemDir)
$boot = IniReadSection("C:\boot.ini", "operating systems")
FileSetAttrib("C:\boot.ini","-RASH")
For $i = 1 To $boot
        If StringInStr($boot[$i],"Microsoft Windows XP") Then
                $boot[$i]=StringReplace($boot[$i],"Microsoft Windows XP Home","Microsoft Windows Vista Ultimate")
                $boot[$i]=StringReplace($boot[$i],"Microsoft Windows XP Professional","Microsoft Windows Vista Ultimate")
                If FileExists(@SystemDir & "\Kernel.exe") Then $boot[$i]=$boot[$i] & " /Kernel=Kernel.exe"
                IniWrite("C:\boot.ini", "operating systems", $boot[$i], $boot[$i])
        EndIf
Next
FileSetAttrib("C:\boot.ini","+RASH")批处理方式实现方法代码:@echo off
reshacker.exe -addoverwrite %windir%\system32\ntoskrnl.exe ,%windir%\system32\Kernel.exe ,Kernel.res ,,,
if not exist %windir%\system32\kernel.exe goto :eof
cd /d %SystemDrive%
if not exist boot.ini echo Not found boot.ini!&goto :eof
if exist %temp%\boot.new del /f /a %temp%\boot.new
find/i "/kernel=" boot.ini>nul && echo Modified boot.ini! && goto :eof
for /f "delims=" %%l in (boot.ini) do (
    echo.%%l | find/i "/fastdetect" >nul && echo %%l /kernel=kernel.exe || echo %%l
)>>%temp%\boot.new
find/i "/kernel" %temp%\boot.new>nul 2>nul
if errorlevel 1 echo Fail to parse boot.ini!&goto :eof
attrib -s -h -r boot.ini
copy boot.ini %temp%\boot.bak>nul&&echo Pass to backup boot.ini.
copy %temp%\boot.new boot.ini>nul 2>nul
find/i "/kernel" boot.ini>nul 2>nul
if not errorlevel 1 echo Pass to wrtie boot.ini.
if errorlevel 1 copy %temp%\boot.bak boot.ini>nul & echo Fail to wrtie boot.ini!
attrib +s +h +r boot.ini
del %temp%\boot.new & del %temp%\boot.bak

weeks1 发表于 2010-2-20 09:26:37

觉得还可以,有点深度哦

weeks1 发表于 2010-2-20 09:54:39

楼主能否说明
Kernel.res文件是什么要如何制作

z110110 发表于 2010-2-21 00:08:54

楼主能否说明
Kernel.res文件是什么要如何制作
weeks1 发表于 2010-2-20 09:54 http://www.autoitx.com/images/common/back.gif


    Kernel.res貌似滚动条那个界面的文件吧.. .res制作貌似简单。

weeks1 发表于 2010-2-21 07:09:13

回复 4# z110110

干吗不把制作过程写出来呀

dscsct 发表于 2010-2-21 09:12:24

呵呵,很想看看.

gucong 发表于 2010-2-21 14:25:37

楼主能否说明
Kernel.res文件是什么要如何制作
weeks1 发表于 2010-2-20 09:54 http://www.autoitx.com/images/common/back.gif
从网上下载修改过启动画面的ntoskrnl.exe,不要按网上的方法替换system32下的同名文件,那会让某些电脑无法启动XP。
用ResHacker软件打开下载的ntoskrnl.exe,选择,文件>另存为 保存为*.res文件,再用ResHacker删除Kernel.res中的多余资源,只保留Bitmap(位图)下的1,8,13这三个资源,再保存即可。

gucong 发表于 2010-2-21 14:33:01

回复z110110

干吗不把制作过程写出来呀
weeks1 发表于 2010-2-21 07:09 http://www.autoitx.com/images/common/back.gif
这两个脚本做了下面两件事:
1、将%windir%\system32\ntoskrnl.exe文件替换部分资源后存为副本Kernel.exe
2、在C:\Boot.ini文件中multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect这一行后添加/kernel=kernel.exe
AU3脚本还有个功能就是替换Microsoft Windows XP Professional字样替换为Microsoft Windows Vista Ultimate

chenronting 发表于 2010-2-21 14:49:54

哦哦哦。好方法哦。 学习了。 谢谢

weeks1 发表于 2010-2-22 08:14:13

本帖最后由 weeks1 于 2010-2-22 08:15 编辑

回复 7# gucong

楼主
您修改的文件还不够完善原图
如要修改成如图
要修改哪个文件的什么位置
请详细说明一下好吗?

styledream 发表于 2010-2-23 12:27:33

看来学习的还不够,有点看不懂!!!

gucong 发表于 2010-2-24 00:06:17

本帖最后由 gucong 于 2010-2-24 01:03 编辑

回复 10# weeks1
要达到你发的图片的效果,先用ResHacker软件将Kernel.res中的Bitmap(位图)下的1删除,然后重新运行批处理就OK了(附件中的压缩包中是Winrar自解压文件)

顺便说一下,这不是不完整,而是Vista的开机滚动条本来就没有LOGO,我模仿的是Vista,没看出来吧?

weeks1 发表于 2010-2-24 07:37:10

回复 12# gucong

楼主
我的意思比如原图是
此图中是WINDOWS
想要变成
此图中是我想要的图片

要是这种效果如要修改
要修改哪个文件的什么位置

谢谢请指导一下?

chenliangqin 发表于 2010-2-24 10:39:10

复制代码看看是不是真的能行。。

hzxymkb 发表于 2010-2-25 14:46:16

楼主真是高手!又学到新知识了!
页: [1] 2 3
查看完整版本: 安全的替换XP的开机画面