Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

《格蠹汇编》

帖子发起人: 烈火   发起时间: 2013-06-05 23:14 下午   回复: 0

Print Search
帖子排序:    
   2013-06-05, 23:14 下午
FireBurn 离线,最后访问时间: 2014/2/10 8:02:11 烈火

发帖数前50位
注册: 2013-01-26
发 贴: 28
《格蠹汇编》-第5章笔记
Reply Quote

第五章 拯救"发疯"的Windows7


讲述内容:一Win7进入桌面时提示“Windows must now restart because the Power service terminated unexpectedly”,随后强制重启。利用WER机制,分析系统转储文件,定位栈缓冲区溢出错误。

关键点:
1、WinRE
在高级启动菜单中选择Repair Your System,可以进入到WinRE(Windows Recovery Environment) 的命令行方式下。使用Dir *.mdmp /s搜索系统分区可以找到WER机制产生的转储文件。

2、GS机制
“VC8编译器在编译可能发生缓冲区溢出的函数时,会定义一个特别的局部变量,该局部变量会被分配在栈帧中所有其他局部变量和栈帧指针与函数返回地址之间...我们将其称为Cookie变量。”
在函数返回前对于Cookie变量进行检验,如果其值发生变化,说明栈发生溢出,返回地址很可能被破坏。此时就会跳转到__report_gsfailure,抛出栈缓冲区溢出异常,再由UnhandledExceptionFilter接管异常的处理,最后终止当前进程,这也最终导致了系统服务的终止和Win7的重启。

IP 地址: 已记录   报告
高端调试 » 图书 » 《格蠹汇编》 » 《格蠹汇编》-第5章笔记

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.