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

Windows内核调试

帖子发起人: aa1ss2   发起时间: 2009-04-13 21:40 下午   回复: 4

Print Search
帖子排序:    
   2009-04-13, 21:40 下午
aa1ss2 离线,最后访问时间: 2009/4/14 11:30:54 aa1ss2

发帖数前75位
注册: 2009-03-24
发 贴: 14
关于UnhandleExceptionFilter的一些疑问~
Reply Quote
刚刚学到这里,参照伪代码对SP2的UnhandleExceptionFilter跟了一下,发现几个问题想请教一下。

下面的行数全部指的是伪代码。

第一:322页的35行 NtGlobalFlag & 0x1 错了,后面的描述是NtGlobalFlag & 0x100,请问一下这个0x100是什么常量来的?
主要是想知道什么时候设置这个常量,引起调用RtlApplicationVerifierStop函数。


第二:326页的267行好像漏了一句return EXCEPTION_CONTINUE_SEARCH;

第三:hRealProcess和hRealThread的作用是什么呢,好像都没有看到使用。

第四:想请问一下张老师,323页的103行那里的异常处理是怎么看出来的呢?
作用好像是为了在读取注册表失败后写入默认的设置,不知道对不对呢?


IP 地址: 已记录   报告
   2009-04-14, 12:58 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 关于UnhandleExceptionFilter的一些疑问~
Reply Quote

一、你说的对,是应该&0x100,因为汇编代码是直接测试第二个字节(+0x69),我当时疏忽了,多谢。

7c863113 64a118000000    mov     eax,dword ptr fs:[00000018h]
7c863119 8b4030          mov     eax,dword ptr [eax+30h]
7c86311c f6406901        test    byte ptr [eax+69h],1

0x100这个常量的原始定义多半没有公开过,它的含义是vrf,也就是启用App 验证器:

C:\DbgLabs\bin\Debug>gflags /i frecheck.exe +vrf
Current Registry Settings for frecheck.exe executable are: 00000100
    vrf - Enable application verifier

二、对的,这个问题已经在勘误中。

三、见325页

四、进入异常保护块时会修改trylevel变量,参见24.5.2节关于SEH编译的内容。

 


IP 地址: 已记录   报告
   2009-04-14, 13:42 下午
aa1ss2 离线,最后访问时间: 2009/4/14 11:30:54 aa1ss2

发帖数前75位
注册: 2009-03-24
发 贴: 14
Re: 关于UnhandleExceptionFilter的一些疑问~
Reply Quote
多谢老师回答。
第三个问题我的意思是通过DuplicateHandle获得真正的句柄后,并没有作任何的操作就用CloseHandle给关闭了,那么这样做有什么意义呢?

CsrIdentifyAlertableThread这个函数应该也是没有公开的吧,能不能介绍一下作用?


IP 地址: 已记录   报告
   2009-04-14, 17:24 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 关于UnhandleExceptionFilter的一些疑问~
Reply Quote
不客气;
之间做操作了呀,创建调试器进程,也就是那个CreateProcess调用。因为在创建子进程的过程中会引用父进程的设施,所以复制当前句柄的目的就是防止这期间父进程退出后系统销毁父进程的所有资源。

IP 地址: 已记录   报告
   2009-04-14, 17:50 下午
aa1ss2 离线,最后访问时间: 2009/4/14 11:30:54 aa1ss2

发帖数前75位
注册: 2009-03-24
发 贴: 14
Re: 关于UnhandleExceptionFilter的一些疑问~
Reply Quote
明白了,没有想到被子进程继承了。

IP 地址: 已记录   报告
高端调试 » 软件调试 » Windows内核调试 » Re: 关于UnhandleExceptionFilter的一些疑问~

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