PE下使用桌面主题的技巧

   在正常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路径指向你自己的图片。

时间: 2024-09-01 16:06:38

PE下使用桌面主题的技巧的相关文章

win7下远程桌面的使用技巧如何让其端口躲避攻击

  说起远程桌面功能大多数用户都已经习以为然了,或者说远程桌面的操作是一件很简单的事情,根本不值得一提了.如果你也是这样认为的,那你就错了,那是你还没有深入地了解远程桌面功能,让我们一起来看一下在win7系统下远程桌面的一些使用技巧. 让远程桌面端口躲避攻击 在默认状态下远程桌面使用的端口一般为"3389",如果我们不及时将这个端口号码更改掉的话,那么许多别有用心的黑客可能会利用这个端口,来远程控制和入侵本地工作站,以便窃取保存在本地工作站中的各类隐私信息.为了保护本地工作站的安全,我

如何隐藏XP系统桌面图标的技巧方法

  最近有个朋友反映说自己的XP系统电脑桌面上有太多的软件图标了,因为平时没有整理的习惯,所以看起来特别的乱,想要怎么才能让桌面好看一些,我建议他隐藏一些图标就可以了,那么该如何隐藏呢,可能很多朋友都不知道怎么操作,其实方法非常的简单,这里小编就给大家讲述如何在XP系统中隐藏桌面图标的方法. xp系统桌面隐藏图标的具体解决方法如下: 1. 首先大家在电脑桌面上找到一个空白的地方,找到以后点击空白处的鼠标右键,点击有就会出现一个菜单栏目,在弹出的菜单栏目中选择排列图标这个选项,点击后会弹出一个新的

如何解决XP系统下桌面主题变成经典模式

  如何解决XP系统下桌面主题变成经典模式           单击"开始"菜单,单击"控制面板",在控制面板里找到"管理工具",双击打开 在管理工具下双击"服务"项 右窗格找到并双击打开"Themes"服务 进入"常规"选项卡界面,点击启动类型的下拉框,选择"自动",单击"应用"

Win8.1系统主题设置技巧

  同Win7/XP系统一样,在Win8.1系统中我们也可以通过设置主题来个性化我们的操作系统,我们可以创建自定义的Win8.1系统主题,并与好友分享.下面小编就为大家介绍一下Win8.1系统主题设置技巧. 什么是Win8.1系统主题? - Win8.1系统主题是图片.颜色和声音的组合. 主题包括: 主题的各个部分: 1.桌面背景.为桌面上打开的窗口提供背景的图片.颜色或设计. 桌面背景可以是单张图片或幻灯片放映. 你可以选择 Windows 附随的桌面背景图片,也可使用你自己的图片. 2.窗口

让VC程序使用WindowXP的桌面主题风格

介绍 介绍怎样在让普通的程序可以支持WindowsXP的桌面主题风格. 最近写了一些简单的小应用,可是跑在我自己的XP系统上感觉很土,因为界面都是WIN95风格的,感觉格格不入.我使用了一些很COOL的XP桌面主题风格.很多程序像WINRAR都会随着系统的主题风格改变而改变界面风格.我想MS一定提供了某种机制让应用使用系统的主题风格.查了一下MSDN,原来很容易就可以实现. WINDOWS把这个叫做"Visual Styles"虚拟风格.我们所用的普通控件都位于系统的ComCtl32.

Win7桌面主题安装失败解决方法

win7的用户都喜欢设置自己的个性桌面,但是在安装桌面主题时有些用户遇到无法安装的问题,双击安装包之后,没有反应,这是怎么回事?仔细检查后,发现问题出在了安装包的文件名上. 原来,安装失败的主题包文件名第9个字符都是一个空格!比如我们在一个主题包的名字稍作改动,将第9个字符按下空格键,再保持重命名.双击安装,实效. 第九个字符为空格会导致Win7主题安装失败 如果是第10个字符按空格,安装则可正常进行. 其它字符为空格对Win7主题安装没有影响 至于为什么名字第9个字符空格可以导致安装失败,目前

自己动手制作Windows 7系统下的个性主题

  自定制桌面主题可以让桌面更个性,而且实施操作步骤也并不难.只需想好你要的主题样式,几分钟便可制作出专属自己的桌面主题. 1.在桌面右键单击,选择"个性化". 2.选择想作为桌面背景的图片,右键选中图片,并点击"设为桌面背景",将其作为Windows 7系统的桌面.你也可以在个性化菜单下选择"桌面背景"的方式选择. 3.在个性化菜单下选择"声音"作为音乐背景,一步一步进行设置.如果想要更换音乐文件,选中,点击"浏览

xp系统如何安装桌面主题

  一步步教你美化你的电脑的桌面主题. 相信长久的面对着自己电脑一成不变的XP主题桌面一定感到枯燥了吧??如果你不否认,那么请你在打开下面的网址选择一个你觉得漂亮的桌面主题包吧! 如果你已经选好了,那么我们就开始吧! 看看我的XP系统的桌面主题,如何?~~漂亮么?? 做到这一点真的不难,如果你也有美化XP的想法却不知道怎么下手的话,那么往下看,我会用最简单的方法教大家让自己的XP界面漂亮起来.(同样适用于win2003) 美化XP最重要的是XP主题的使用,这个是前提,我们平时接触到的对话框样式,

XP系统下制作多彩界面的技巧操作方法

  1.让登录界面变个背景色 Windows XP登录界面的背景色默认为蓝色,如果看腻了就可以换个色彩.打开注册表编辑器,依次展开"HKEY USERS.DEFAULTControl PanelColors"分支,双击右侧窗格中的"Background"子键,将其键值修改为"0 0 0",即可使登录背景变成黑色.如果想要其它颜色,可通过更改这三个数字来进行调整,你想要什么颜色呢? 2.加密文件不再暴露 在NTFS磁盘分区中,可看到加密和隐藏文件的