WinPE主题使用方法

在正常windows下更换主题相信大家也会了,但在PE下使用桌面主题大家应该就没见过吧。一起来操作一下吧。

先看看原理:Winlogon启动后先初始化一些全局变量,检测HKEY_LOCAL_MACHINESYSTEMSetup下的SystemSetupInProgress是否为零,如果是正常启动,如果为1,则在启动系统服务SamSs时告诉它不要管SAM数据库,启动一些必要的服务后,比如Services,lsass,然后就启动HKEY_LOCAL_MACHINESYSTEMSetup下由CMDline指定的程序,等待程序结束,重启或者关机。如果SystemSetupInProgress == 1,则初始化系统服务后调用MSgina.DLL登录XP。MSgina.Dll 在初始化时调用SHsvcs.Dll产生一个ThemesStartEvent系统级事件,代码如下:

#define ThemeWatchForStart_Ordinal 1

#define ThemeWaitForServiceReady_Ordinal 2

typedef DWORD (_stdcall *PFN_ThemeWaitForServiceReady)(DWORD dwTimeout);

typedef BOOL (_stdcall *PFN_ThemeWatchForStart)(void);

HMODULE hShsvcs = LoadLibrary(_T("shsvcs.dll"));

if( hShsvcs != NULL )

{

PFN_ThemeWaitForServiceReady pfThemeWait

= (PFN_ThemeWaitForServiceReady)GetProcAddress( hShsvcs, (LPCSTR)ThemeWaitForServiceReady_Ordinal);

PFN_ThemeWatchForStart pfThemeWatch

= (PFN_ThemeWatchForStart)GetProcAddress( hShsvcs,(LPCSTR)ThemeWatchForStart_Ordinal);

if( pfThemeWait != NULL &&

pfThemeWatch != NULL )

{

pfThemeWait(1000);

pfThemeWatch();

}

CloseHandle(hShsvcs);

}

那位同学说了:“把SystemSetupInProgress直接改成0不就得了!”

Lsass告诉你:“此路不通!重启吧你”

我告诉你:“我们可以改一改Winlogon,让它先启动Msgina或是直接调用Shsvcs就行了。”

ThemesStartEvent事件是出来了,怎么?还不行!

那是因为还有个家伙在捣乱:SXS.DLL。他会在系统要求它调用指定Dll时用FusionpAreWeInOSSetupMode函数进行判断SystemSetupInProgress是否为零,如果为1,它就会告诉系统:“我那个什么......先歇会儿再说。”

然而系统要实现Themes,恰恰需要它去找到合适的ComCtl32.Dll。

你可以修改它,但是合适的Dll在哪里?

这种概念是从微软的.NET FrameWork的GAC引入的。每当应用程序要求合适的Dll时,系统会调用SXS.Dll在%SystemRoot%WinSxS

文件夹中寻找,当有多个相同文件时,它就查看C:WindowsWinSxSManifests以C:WindowsWinSxSPolicies中的规则来调用相应的文件。

———————————————————————————————————————————————————

动手了:

1、启用Themes需要以下文件:修改版的Winlogon调用Msgina.Dll或直接修改MinLogon(XPE Feathure Pack 2007 中有此文件),Winlogon,Msgina.dll,Shsvcs.dll,Activeds.dll,,uxtheme.dll,themeui.dll,sxs.dllC:WindowsWinSxSManifests文件夹中的(对应SP3)

x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83.cat

x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83.Manifest

C:WindowsWinSxSPoliciesx86_policy.6.0.Microsoft.Windows.Common-Controls_6595b64144ccf1df_x-ww_5ddad775

文件夹下的

6.0.2600.5512.cat

6.0.2600.5512.Policy

C:WindowsWinSxSx86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83

文件夹下的

comctl32.dll

还有一些Windows文件夹System32下的文件,自己研究吧。(用Depends工具找一找文件的依赖关系)

2、修改文件。(均已SP3的文件为例)使用UltraEdit打开文件,Winlogon.exe 查找AF46FFFF85C07512,将最后的12改为27,查找

56E8151D000056 FF7614E8FC,修改为56E8151D000056 E8BC91FFFF(看清了,只修改最后五位);打开SXS.Dll查找530079007300740065006d005300650074007500700049006e00500072006f00670072006500可以看到S.e.t.u.p.I.n.p.r.o.g.r.e.s.s的字样,把最后的s改成t,即73改成74。

修改PE的注册表,在SYSTEMSetup下比照着SystemSetupInProgress新建一个REG_DWORD值SystemSetupInProgrest,设为0。特别注意要修改services.exe中的SystemSetupInProgress为SystemSetupInProgrest。

同时测试了基于bartpe的xpe硬盘版,因为xpe使用自己的pegina.dll重新进入sas序列,所以无法启用主题。

———————————————————————————————————————————————————

上传一个修改过的Minlogon,切记修改注册表。对了,最重要的是别忘了加上你自己的主题文件,它们一般在WindowsResources文件夹下。传了一个压缩的,是用我心如水的PE做的(hhh333的也不错,不过他的是SP2的,测试不方便),我重新上传一个精简过文件的IS_文件,可直接替换我心如水里面的winpe.is_

1、修改的注册表,添加了一些键值,比如对DX8游戏的支持;

2、修改为支持双核,理论上能在P4以上单核上启动;

3、自动检测硬件,安装驱动。(必须有相应的INF和驱动文件)

今天上传了一个自己用的Img格式的内核,根据站长的研究使主题自动开启。其中添加了VC2005的运行库,内置NV显示驱动,配合外置的DX9可以玩现在的新游戏了。

有一个小问题,墙纸不能自动加载是因为Windows只认bmp格式的图片,jpg格式的要转换成bmp。把你需要的墙纸转换成bmp,然后再修改HKEY_CURRENT_USERControl PanelDesktop下的WallPaper路径指向你自己的图片。

(0)

相关推荐

  • UxStyle破解系统主题使用方法

    微软对Windows 7/ Windows8的自定义主题做了许多限制。因此,在使用很多联机主题时,都要求计算机先破解主题文件。 现在,有了UxStyle,安装联机主题就简单多了。同时,UxStyle还 ...

  • XP系统桌面自动回到经典主题的方法

    Windows XP系统桌面突然变成灰白了,相信您也经常碰到这种问题。而且当您切换到了经典主题,XP的主题也都不见了?这是怎么回事呢?重新下载个安装,装上去,结果还是一样。 那XP系统桌面怎么自动回到 ...

  • win7禁止修改主题的方法

    几乎所有的windows系统用户都会为自己的系统选择一款自己喜爱的桌面主题,不过如果你的电脑时公用电脑的话,那么别人可能会改动你的系统主题,那么如果才能让系统主题固定不被修改呢?下面小编以win7系统 ...

  • Win10 Build 10056开启多彩主题设置方法

    Win10 Build 10056开启多彩主题设置方法2015-04-14 10:03 来源:www.pc841.com 作者:晴空雨 查看评论 分享给小伙伴们看看: 关注我们: Win10 Buil ...

  • Win10 Build 10056多彩主题设置方法

    在最新的Win10 Build 10056预览版中,内置了多种多彩主题颜色方案供用户选择,五颜六色的桌面界面,看起来非常漂亮.不过Win10 Build 10056多彩主题默认是关闭的,如果要开启此功 ...

  • ppt存储主题的方法 ppt如何存储主题

    ppt存储主题的方法   ppt如何存储主题? 1.将自己保存的主题文件放到,C:\Users\XXX-PC\AppData\Roaming\Microsoft\Templates\Document ...

  • win7系统打开自带壁纸和主题的方法 win7系统自带壁纸和主题如何使用

    现如今许多用户追求个性化的桌面,会在自己win7 64位系统电脑添加主题或壁纸,一般都是从网上下载安装.其实不必那么麻烦,win7系统自带有壁纸和主题,相信还有很多人不知道win7系统自带壁纸和主题怎 ...

  • 即刻app如何创建开启专栏主题?即刻app创建专栏主题的方法

    即刻APP是一款本地搜索工具,有些朋友不会使用该软件开启专栏主题,今天呢,就给各位朋友分享即刻app开启专栏主题的简单教程,希望对你有所帮助. 操作步骤 1.用户们如果想要在即刻里开启主题专栏,那么就 ...

  • 更好地设置小米手机壁纸和主题的方法

    今天教大家小米手机更换主题和壁纸的方法.接下来请跟我查看一下怎么操作吧.具体操作如下:1. 首先当然是先点击设置键打开系统设置界面.找到下图所示小米手机的系统设置界面中的壁纸选项并点开.壁纸下边的个性 ...