1、视频提供:昆山爱达人信息技术有限公司官网地址:联系QQ:1250121864QQ交流群 :49759272联系电话:0512-57882866,Windows开机密码的获取,本节课讲师void*,这个项目的意义:1 学完这个项目,我们对于基本的win32 SDK编程更为熟悉;2 熟悉了基本的进程操作,如遍历进程、跨进程读写内存、权限提升等;3 熟悉了常见的软件安全漏洞问题;这个项目所涉及到的知识:1 编程达人基础课程WIN32基础中的win32 SDK编程的基本概念和流程;2 编程达人基础课程WIN32基础中的对话框编程以及常用事件消息;3 编程达人基础课程C语言中的文件读写;4 编程达人基础
2、课程WIN32基础中的基本控件的操作;5 编程达人基础课程数据结构中的链表的遍历操作6 编程达人基础课程WIN32基础中的进程等内核概念的了解以及相关操作,昆山爱达人信息技术有限公司QQ:1250121864,WinXP演示效果,演示效果预览,Win7演示效果,昆山爱达人信息技术有限公司QQ:1250121864,开机引导过程简单概括起来有以下几个步骤Step1 开机BIOS自检阶段 Step2 MBR加载阶段Step3 Boot 加载阶段 Step4 检测和配置硬件阶段 Step5 内核加载阶段Step6 登录阶段,实现原理,昆山爱达人信息技术有限公司QQ:1250121864,Step6登
3、录阶段,登录阶段会做如下几件事:1. 启动机器上安装的所有需要自动启动的服务2. 启动本地安全认证 Lsass.exe3. 显示登录界面具体的过程如下图,昆山爱达人信息技术有限公司QQ:1250121864,Windows会话创建和用户登录过程,昆山爱达人信息技术有限公司QQ:1250121864,由此可见,lsass这个进程是我们重点关注的进程,调用其解密函数即可进行解密。破解开机密码的基本思想如下:Step1 密文地址特征码扫描Step2 秘钥地址特征码扫描Step3 解密函数地址特征码扫描Step4 进行解密注:特征码获取方法:自己逆向(中级班课程操作系统)具体的特征码我们代码中讲解,/
4、 解密函数特征码(lsasrv.exe)BYTE DecryptfuncSign = 0x8B, 0xFF, 0x55, 0x8B, 0xEC, 0x6A, 0x00, 0xFF, 0x75, 0x0C, 0xFF, 0x75, 0x08, 0xE8 ;/ 密文关键指针特征码(wdigest.exe)BYTE KeyPointerSign = 0x8B, 0x45, 0x08, 0x89, 0x08, 0xC7, 0x40, 0x04 ;/ 密钥KEY相关的关键地址特征码(lsasrv.exe)BYTE DecryptKeySign_WIN7 = 0x33, 0xD2, 0xC7, 0x45,
5、 0xE8, 0x08, 0x00, 0x00, 0x00, 0x89, 0x55, 0xE4 ;BYTE DecryptKeySign_XP = 0x8D, 0x85, 0xF0, 0xFE, 0xFF, 0xFF, 0x50, 0xFF, 0x75, 0x10, 0xFF, 0x35 ;,相关密文,昆山爱达人信息技术有限公司QQ:1250121864,昆山爱达人信息技术有限公司QQ:1250121864,两种方法实现基上诉本思想,第一种:跨进程读取内存第二种:dll注入法注:进程,dll与注入具体的相关知识在中级班课程里讲优劣比较: 跨进程读取内存编程实现较为繁琐,但稳定性好; dll注入
6、法实现过程简单但稳定性差,因为Win7新增了会话隔离机制;,昆山爱达人信息技术有限公司QQ:1250121864,进程与注入,进程A,进程B,dll,4GB地址空间,4GB地址空间,读取进程B的内存数据,读取进程B的内存数据,读取进程B的内存数据,dll,读取进程B的内存数据,dll,读取进程B的内存数据,昆山爱达人信息技术有限公司QQ:1250121864,关键数据结构分析,Windows使用链表来存储密文等相关信息(数据结构的相关知识在初级班课程里讲),WinXP :dwVerOff = 36,Win7 :dwVerOff = 32,dwVerOff+2,昆山爱达人信息技术有限公司QQ:1250121864,整个程序实现流程,step1 搭建对话框消息处理骨架step2 对具体的消息进行相应的处理step2.1 WM_INITDIALOG处理 step2.2 WM_COMMAND处理 step2.2.1侦测吧按钮功能的实现 step2.2.1.1 获取操作系统版本 step2.2.1.2 获取解密函数地址 step2.2.1.3 获得密文链表头地址 step2.2.1.4 伪造数据现场 step2.2.1.5 密码破译,