在打开的窗口中单击高级系统设置:
接着在打开的系统属性对话框中,切换到硬件选项卡,并单击设备安装设置按钮:
在弹出的设备安装设置对话框中选择第二项,即否,让我选择要执行的操作:
或者通过控制面板也能打开设备安装设置对话框。单击开始按钮,选择控制面板:
在控制面板窗口中单击设备和打印机项:
在打开的设备和打印机窗口中,从设备中找到计算机,并右击之,从弹出的快捷菜单中选择设备安装设置命令:
最后再单击保存更改保存设置即可,卸载驱动后重启了就不会再自动安装驱动了。
win7的阴影效果是较宽的渐变的,比XP上的纯色阴影过渡更多,也显得更漂亮,还能应用透明效果。但我们在使用了某些优化软件或运行了某些游戏后,会发现WIN7漂亮的效果已不见。但因为这现象很特别,所以一般情况下刚开始我们比较难于找到解决方法。
在桌面空白地方右击,从弹出菜单中选择屏幕分辨率:
然后在打开的窗口中单击右下角的高级设置链接
在打开的属性对话框中,切换到监视器选项卡,单击下面的颜色下拉列表框,可以发现可以有16位或32位色的选择:
我们选择其中的一种,单击确定按钮保存退出即可。
我们还可以进行更为详细的快速的设置。切换到适配器选项卡,单击最下面的列出所有模式按钮:
从弹出的对话框显示的有效列表中选择一种,然后单击确定按钮即可:
最后我们再来对比下16位色(上图)和32位色(下图)的区别。上图16位的完全是纯色,且边框和标题栏都没有过渡颜色、也不透明,而32位反之:
基本原理
Windows7 以后 Winlogon 进程是动态的,有用户登录就会创建一个 Winlogon 进程,因此系统中完全 可能存在多个登录进程,注销后 Winlogon 进程也会随之结束。
Windbg 断点 NtCreateUserProcess 观察 Windows7 启动流程:
我整理的基本进程树如下:
smss.exe autochk.exe
smss.exe 00000000 0000003c //session 0
Csrss.exe
Wininit.exe
Services.exe
开机自启动服务进程
Lsass.exe
Lsm.exe
smss.exe 00000001 0000003c //session 1
Csrss.exe
Winlogon.exe
LogonUI.exe
LogonUI.exe 负责用户认证界面,Windows7 以后不再使用 msgina.dll,而是使用多个进程配合,完成用户 认证过程,大致过程为 1、Winlogon 启动 LogonUI 等待用户输入凭证 2、Winlogon 通过 ALPC 通知 Lsass用户登录 3、Lsass 依次查询认证模块4、Lsass 返回认证结果。框图如下
调试过程
必须要吐槽下,windows7 下 windbg 内核调试应用程序经常断不下了,害我浪费了很多功夫~~现总结 了一个稳当可靠的办法:
1、!process 0 0 查看目标进程的基本情况,主要是 Cid。
2、bp nt!KiFastCallEntry "j poi(@$teb+20) = 0x1a0'';'gc'" 把 1a0 替换成实际的 Cid 即可。
3、等断点命中后,bp winlogon!XXXXX
4、.reload /user 下,bl 看一下,确保函数解析成地址。
首先看 Winlogon 和 LogonUI 之间的交互,LogonUI.exe 就是一个壳,类似 svchost,真正的功能是通 过 authui.dll模块完成的,从《Windows Internals5》介绍,winlogon 是通过 ALPC 的东西同 Lsass 通信的,但是 LogonUI 没怎么讲,我估计八成也是一样的,应该就是 RPC 调用。
RPC 调用分服务端和客户端,客户端最终 RPCRT4!NdrClientCall2 执行调用,而服务端最终会执行
RPCRT4!Invoke执行具体的函数。
我们断点 winlogon!NdrClientCall2观察下,随便输入个密码,命中:
这里我们发现 winlogon 的确使用了 RPC 调用来执行进程交互,注意这个函数名是 WluiDisplayStatus,其 实很明确的告诉我们 winlogonUIDisplayStatus,那么该 RPC 最终在哪里被执行呢?很显然是在 authui.dll 下断点 RPCRT4!Invoke 命中,而后单步跑一下,如图:
直接从 IDA 里面翻了下 authui.dll注册 RPC 服务
TuLaoShi.com从
直接把所有的 RPC 接口函数 DUMP 出来,如下:
其中 WluirRequestCredentials很惹人关注,对应的 winlogon!WluirRequestCredentials函数如下:
Winlogon 同 logonUI 的 authui.dll 中通过一一对应的 RPC 函数完成接口调用,下面是一次错误密码测 试过程时,依次命中的调用情况:
序号函数名描述
1
winlogon!WluiRequestCredentials请求用户输入凭证,注:该函数是阻塞函数,会一直等待直到用户确认登录才返回。
2
winlogon!WluiDisplayStatus显示状态?未细究。
3
winlogon!WluiReportResult通报结果。
4
winlogon!WluiDisplayRequestCredentialsError显示登录错误提示。
我们发现基本上 LogonUI 进程没干啥活,所以的动作都是 winlogon 的 WluiXXXXXX 接口消息驱动的,
IDA 里面会发现大量的 DirectUI 界面代码。
Winlogon 使用状态机来维护整个登录过程中的各种情况处理,通过 Winlogon!StateMachineSetSignal
来完成状态切换,整个状态定义 DUMP 如下:
例如:断点 Winlogon!StateMachineSetSignal点击登录界面残障人士按钮,命中如下:
注意其中的参数二对应的是状态,查下状态 9 对应的正是 g_xWinsrv_AccessNotify_Signal,winlogon
和 LogonUI 的交互基本上流程基本比较清晰了,下面我们重点研究下 winlogon 同 lsass 进程完成密码认证
的一些细节。
Winlogon 同样使用 RPC 调用完成同 lsass 的交互,不同的是 windows 把这几个 RPC 调用封装成了 DLL
形式,分别是 SspiCli 客户端和 SspiSrv 服务端,最终还是调用了 RPCRT4 函数,证据如下:
直接从 IDA 中 DUMP 出 SSPISRV 的 RPC 调用接口如下:
根据《windows internals 5》一文,Winlogon 调用 SspiCli!LsaLogonUser完成登录,该函数最终通过
RPC 调用 Lsass::SspiSrv!SspirLogonUser
其中 AuthenticationInformation 参数里面包含了登录所需的信息,具体结构如下:
Windbg 显示这里密码被加密了,哈哈,下内存写断点,命中堆栈如下:
Winlogon!WLGeneric_Request_Logon_Credz_Execute 对应的代码如下:
该函数首先通过 RequestCredentials 函数请求登录凭证,如果是本地登录模式,该函数最终会调用 WluiRequestCredentials函数执行 LogonUI 进程的 RPC 服务函数 authui!WluiRequestCredentials,请求用户输入登录凭证。
最终 authui!CRequestCredentialsCallbackData::GetCredential获取用户登录凭证,数据结构为
_CRED_PROV_CREDENTIAL* 可惜没有数据结构定义。
输入qqqqqqqq调试显示 DUMP 如下:
下内存断点:Ba w1 0027e5c8+3e,命中堆栈如下:
这里 windbg 函数显示的函数 CRequestCredentialsCallbackData::GetShutdownChoice+0x63是错误的,实际 是 sub_7483CBE7 函数:
查看一下内存数据,如下:
源地址是 0027e510,长度是 000000b0 :
Ba w1 0027e510+3e,命中 查看源地址 238df78: 继续跟踪内存 Ba w1 238df78+3e
查看内存如下:
函数 KerbInteractiveUnlockLogonPack是一个可以 google 到的函数,很好。
02 024df8fc 024df924 024df928 authui!KerbInteractiveUnlockLogonPack+0x90
断点 ba w1 023888b8 命中堆栈
CredProtect 函数 MSDN 如下:
查看堆栈第二个参数,果然是明文密码:
对应的解密函数 CredUnprotect
这些内容实际在 lsass 进程里面解密,断点 ADVAPI32!CredUnprotectW命中堆栈如下:
最终的密码认证还是通过群众喜闻乐见的 msv1_0!LsaApLogonUserEx2来完成,如下:
世界上最快而又最慢,最长而又最短,最通俗而又最名贵,最轻易忽视而又最令人懊悔的就是时候。grub4dos官方网站:http://grub4dos.sourceforge.net/
后解压,把grub4dos目次下的grldr、grldr.mbr、menu.lst这3个文件放到体系根目次下如:C:
以经管员模式运行
科学家必须在错杂的经验事实中抓住某些可用紧密公式来默示的广泛特点,由此寻找天然界的广泛道理。bcdedit /create /d "Grub4DOS" /application bootsector
成功后显示
记下{9861ede3-8496-11e1-a57e-f07a45f050c3}这一串,然后持续履行
bcdedit /set {9861ede3-8496-11e1-a57e-f07a45f050c3} device partition=C: // {9861ede3-8496-11e1-a57e-f07a45f050c3}这一串就由上一句生成bcdedit /set {9861ede3-8496-11e1-a57e-f07a45f050c3} path grldr.mbrbcdedit /displayorder {9861ede3-8496-11e1-a57e-f07a45f050c3} /addlast // 添加到菜单
一切都顺利的话显示
重启后开机菜单会多出一个Grub4DOS高尔基
windows7右键无法新建快捷方式的问题,问题描述如题,下面记录下解决办法,查看跟.lnk相关的注册表信息,保存以下代码到a.bat运行。
问题描述如题,下面记录下解决办法:
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com)1、查看跟.lnk相关的注册表信息,保存以下代码到a.bat运行:
C#代码
Reg Query HKCR.lnk /S "%Userprofile%DesktopRegQuery.txt"&Start Notepad "%Userprofile%DesktopRegQuery.txt"
这段代码会查找注册表里有关.lnk(快捷方式)的设置,并且把查找结果保存到桌面的RegQuery.txt文件里,然后打开这个文件。
2、查看搜索到的信息,我的信息如下:
RegQuery.txt
HKEY_CLASSES_ROOT.lnk
(Default) REG_SZ lnkfile
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com)HKEY_CLASSES_ROOT.lnkShellEx
HKEY_CLASSES_ROOT.lnkShellEx
(Default) REG_SZ
HKEY_CLASSES_ROOT.lnkShellEx
(Default) REG_SZ
HKEY_CLASSES_ROOT.lnkShellEx
(Default) REG_SZ
HKEY_CLASSES_ROOT.lnkShellEx
(Default) REG_SZ
HKEY_CLASSES_ROOT.lnkShellNew
Handler REG_SZ
IconPath REG_EXPAND_SZ %SystemRoot%system32shell32.dll,-16769
ItemName REG_SZ @shell32.dll,-30397
MenuText REG_SZ @shell32.dll,-30318
NullFile REG_SZ
Command REG_SZ rundll32.exe appwiz.cpl,NewLinkHere %1 -------加粗~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HKEY_CLASSES_ROOT.lnkShellNewConfig
DontRename REG_SZ
加粗的一行即为问题所在,ShellNew的Command如果以上的情况,那么就需要修改了。(上面的注册表情况是适用于XP)
3、修复问题(只需要删除掉Command这一行就好),保存以下代码到b.bat,运行:
C#代码
reg delete HKCR.lnkShellNew /V Command /F
这行代码会删除掉ShellNew里的Command这行,完成之后再右键-新建-快捷方式。我已经能顺利新建快捷方式了。
4、修复问题后的lnk相关注册表信息如下:
RegQuery.txt 写道
HKEY_CLASSES_ROOT.lnk
(默认) REG_SZ lnkfile
HKEY_CLASSES_ROOT.lnkShellEx
HKEY_CLASSES_ROOT.lnkShellEx
(默认) REG_SZ
HKEY_CLASSES_ROOT.lnkShellEx
(默认) REG_SZ
HKEY_CLASSES_ROOT.lnkShellEx
(默认) REG_SZ
HKEY_CLASSES_ROOT.lnkShellEx
(默认) REG_SZ
HKEY_CLASSES_ROOT.lnkShellNew
Handler REG_SZ
IconPath REG_EXPAND_SZ %SystemRoot%system32shell32.dll,-16769
ItemName REG_SZ @shell32.dll,-30397
MenuText REG_SZ @shell32.dll,-30318
NullFile REG_SZ
HKEY_CLASSES_ROOT.lnkShellNewConfig
DontRename REG_SZ
----EOF----
想快速的查看您的Windows7桌面吗?想快速的切换您的应用程序吗?想同时观察您打开的多窗口吗?想只用键盘来打开您的快速启动吗?这些功能其实在Windows7系统里都能以最简单的方式做到,下面就让图老师小编带您领略一下Win键的魅力!
首先我们来看看Win键有什么用,其实这个键位最根本(图老师整理)的作用是打开Windows7开始菜单,在键盘上就是位于ctrl和alt中间的那个小键。当您在进行某项工作的时候,要切回到Windows7桌面,如果开启了很多的窗口,一个一个的最小化是不是非常的麻烦呢?其实在Windows7里面简单的Win键加上空格键(win+空格)就可以让所有窗口最小化。当我们打开了很多程序窗口的时候,这招非常管用,而且Windows7桌面还会出现华丽的光影效果哦!没试过的赶紧试一下吧。
还有传说中绚丽的3D桌面展示效果。很多人都知道XP里面可以利用alt+tab来做到快速的切换打开的程序窗口,在Windows7里面得到了很大的加强。当你按下win+tab的时候你会惊讶的发现Windows7桌面变成了3D的,并且可以随意的浏览所有程序窗口。另外,只需要再加上它旁边的ctrl键就可以固定这一效果在你的Windows7桌面上。怎么样,有没有发现Windows7桌面变得那么的美。
有试过按住win再按数字吗?这可以快速的打开固定在Windows7任务栏上的快速启动项。相信当你秀出这招的时候,都很令旁边的小白们惊讶不已,很酷吧!办公族们是不是经常的要用到投影仪和电脑的屏幕啊?现在的Windows7可以解决繁杂的操作,只需要轻轻的一点Win+P键就可以快速的切换电脑屏幕和投影仪。这样的手法是不是为您的会议省下了更多的时间呢?
还有一个Win+X键,说道这个键位可就是太强大了,这个键位可以打开移动中心设置窗口。里面都有什么呢?其实里面包括的东西非常多,包括了显示器的亮度控制、音量控制、笔记本的电量控制、手机同步控制、外接显示器控制等。
说到这里大家是不是对win键有了一个新的认识呢?个人认为Windows7里面的win键设计的十分强大,就像是一把万能的钥匙,能够用来开启很多独特的功能,使用Windows7的朋友可以慢慢去了解这个Win键的魅力所在。
电脑常识
一、Windows7是什么意思?
Windows 7 是由微软公司(Microsoft)开发的操作系统,核心版本号为Windows NT 6.1。Windows 7 可供家庭及商业工作环境、笔记本电脑、平板电脑、多媒体中心等使用。2009年7月14日Windows 7 RTM (Build 7600.16385)正式上线,2009年10月22日微软于美国正式发布 Windows 7 。Windows 7 同时也发布了服务器版本Windows Server 2008 R2。2011年2月23日凌晨,微软面向大众用户正式发布了windows7升级补丁Windows 7 SP1 (Build7601.17514.101119-1850),另外还包括Windows Server 2008 R2 SP1升级补丁。
二、Windows版本
在市场中,Windows7又有很多版本,其中分为:Windows7简易版、Windows7家庭普通版、Windows7家庭高级版、Windows7专业版、Windows7企业版、Windows7旗舰版、Windows7鲍尔默签名版。这几个版本具有不一样的风格以及不一样的价格,具体可以参考Windows的官方网站进行查询。