
深度技术系统
深度技术在中国大陆是使用率非常高的VIP修改版Windows操作系统,装机方便。通过先进的互联网多媒体通讯技术,服务工程师在被许可的情况下连接到用户电脑,远程接管用户电脑,解决用户使用电脑过程中产生的各种问题,包括:软件安装、系统优化、数据备份、查毒杀毒、 系统修复、系统重装等服务 !提供常用的9大类50余款应用软件的帮教下载、安装、升级、卸载等服务,实现用户电脑畅快使用。
win8.1系统口令登录过程调试的解决方法
相信大部分win8.1用户在使用电脑工作的时候,有时候会遇到win8.1系统口令登录过程调试的问题,并不是所有的朋友都知道win8.1系统口令登录过程调试的问题应该如何解决,因此我就在电脑上汇集整顿出win8.1系统口令登录过程调试的少许解决办法,其实步骤很简单,只需要 1、!process 0 0 查看目标进程的基本情况,主要是 Cid。 2、bp nt!KiFastCallEntry "j poi(@$teb+20) = 0x1a0'';'gc'" 把 1a0 替换成实际的 Cid 即可。这样的方式进行电脑操作,的步骤即可,下面就是win8.1系统口令登录过程调试的具体操作流程了,不会的朋友赶快学习一下吧!
首先介绍windows8.1系统基本原理
windows8.1 以后 winlogon 进程是动态的,有用户登录就会创建一个 winlogon 进程,因此系统中完全 可能存在多个登录进程,注销后 winlogon 进程也会随之结束。
windbg 断点 ntCreateUserprocess 观察 windows8.1 启动流程:
我整理的基本进程树如下:
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 负责用户认证界面,windows8.1 以后不再使用 msgina.dll,而是使用多个进程配合,完成用户 认证过程,大致过程为 1、winlogon 启动 LogonUi 等待用户输入凭证 2、winlogon 通过 ALpC 通知 Lsass用户登录 3、Lsass 依次查询认证模块【本地认证 MsV1_0.dll】4、Lsass 返回认证结果。框图如下
windows8.1调试过程
必须要吐槽下,windows8.1 下 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观察下【这里不 bp RpCRT4!ndrClientCall2主要是避免其他进程干 扰,因为 RpC 在系统中调用很频繁】,随便输入个密码,命中:

这里我们发现 winlogon 的确使用了 RpC 调用来执行进程交互,注意这个函数名是 wluidisplaystatus,其 实很明确的告诉我们 winlogonUidisplaystatus,那么该 RpC 最终在哪里被执行呢?很显然是在 authui.dll 下断点 RpCRT4!invoke 命中,而后单步跑一下,如图:

直接从 idA 里面翻了下 authui.dll注册 RpC 服务

从
直接把所有的 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 调用接口如下:

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来完成,如下:

以上是图片的记录哦!
- 相关推荐
- win8.1系统开机一直停留在“windows正在启动”界面的解决方法
- win8.1系统提示应用程序错误0xc0000418.1位置0x004fd589的解决方法
- win8.1系统网络连接不上一直转圈的解决方法
- 大地Win10企业版手机数据线连接电脑没反应的解决方法
- 处理win10系统电脑分辨率的办法
- win10系统提示“存储空间不足,无法处理此命令”的操作方法
- win10重命名开始屏幕图片的技巧
- win10系统联想笔记本开机显示“intel Undi,pxE-2.1(build 083)”的操
- win8.1系统文件夹没有访问权限的解决方法
- win10系统打开excel20010界面灰色的操作方法
- 系统专栏
深度技术Ghost Win10 64位稳定企业版2016.10(免激活)深度技术Ghost Win10 64位稳定企业版2016.10(免激活)- 深度技术Ghost Win10x86 特别专业版 2019.07(绝对激活)深度技术Ghost Win10x86 特别专业版 2019.07(绝对激活)
深度技术Ghost Win10 X64 推荐专业版 v2021年04月(免激活)深度技术Ghost Win10 X64 推荐专业版 v2021年04月(免激活)
深度技术Ghost Win10 x64位 优化装机版2017.11月(永久激活)深度技术Ghost Win10 x64位 优化装机版2017.11月(永久激活)
深度技术 Ghost Win10 32位 国庆专业版 V2018.10月 (免激活)深度技术 Ghost Win10 32位 国庆专业版 V2018.10月 (免激活)
深度技术Ghost Win10 X64位 电脑城装机版2017.03(完美激活)深度技术Ghost Win10 X64位 电脑城装机版2017.03(完美激活)
深度技术GHOST WIN7 X64 全新装机版V2018年08月(免激活)深度技术GHOST WIN7 X64 全新装机版V2018年08月(免激活)- 深度技术GHOST WIN7 (64位) 热门旗舰版 2019年07月(绝对激活)深度技术GHOST WIN7 (64位) 热门旗舰版 2019年07月(绝对激活)
深度技术GHOST WIN7 (64位) 官方装机版2017V08(绝对激活)深度技术GHOST WIN7 (64位) 官方装机版2017V08(绝对激活)
深度技术Windows7 v2020.02 32位 老机装机版深度技术Windows7 v2020.02 32位 老机装机版
深度技术GHOST WIN7 32位 装机优化版V2018.03月(无需激活)深度技术GHOST WIN7 32位 装机优化版V2018.03月(无需激活)
深度技术GHOST WIN7 x64 旗舰稳定版v2017年09月(自动激活)深度技术GHOST WIN7 x64 旗舰稳定版v2017年09月(自动激活)
- 系统安装教程
- xp系统没有摄像头的修复方案
- win10系统iE地址栏输入网址后总自动转到114页面的操作方法
- win10电脑显示桌面图片不见了如何办?
- win8.1系统无法使用网银的解决方法
- win10系统重装后不能上网的操作方法
- win8.1系统访问win8共享文件夹提示没有权限的解决方法
- win8.1系统修改UG8.0背景颜色的解决方法
- 自由天空W10专业版 10074任意更改开始菜单大小的方法
- win10系统玩骑马与砍杀提示runtime error错误的操作方法
- win8.1系统文字显示乱码错乱的解决方法
- win10系统设置谷歌浏览器打开特定网页的操作方法
- win8.1系统使用iE浏览器提示“浏览器cookie功能被禁用,请开启此功能
- win10系统打印机中office document image writer不见了的解决办法
- win10系统百度浏览器打开网页很慢的操作方法
- win8.1系统桌面上禁止创建文件夹的解决方法
