约有 1,303 项符合查询结果, 以下是第 53 - 131项。
费时 < 1 秒。
1,_CRT_DEBUGGER_HOOK是CRT中与VS调试器通信的代码,当使用VS调试器时,这个函数会触发一个异常,通知VS调试器,VS调试器通常附带的参数_CRT_DEBUGGER_GSFAILURE,知道这是溢出情况。不使用VS调试器时,这个函数会跳转到一个dummy的函数
2,UnhandledExceptionFilter里对GS也有特殊支持,会判断异常代码是否是0C0000409h,即STATUS_STACK_BUFFER_OVERRUN,也即是__report_gsfailure中模拟出的异常
0:001> !error 0C0000409h
Error code: (NTSTATUS) 0xc0000409 (3221226505) - The system ...
Posted in Windows内核调试
by
格蠹老雷
on 2011-05-03
尝试下面的命令:
dt nt!_LIST_ENTRY
+0x000 Flink : Ptr32 _LIST_ENTRY
+0x004 Blink : Ptr32 _LIST_ENTRY
.chain
kdexts: image 6.1.7015.0, API 1.0.0, built Thu Feb 26 09:54:56 2009
[path: C:\windbg\WINXP\kdexts.dll]
对于公共调试符号,类型信息是先剔除再加回,但是像_LIST_ENTRY这样重要的结构定义通常不会遗漏的
用下面这个命令生成一个mini dump发上来看一下
.dump /m ...
Posted in WinDbg
by
格蠹老雷
on 2011-05-03
《软件调试》9.4节(P203)介绍了这个对象的结构定义和原理,印象里Vista的公开符号中包含了这个数据结构的正式定义
这个内核对象是XP引入的,哪个版本改Type了?
Posted in Windows内核调试
by
格蠹老雷
on 2011-05-01
因为Paged Pool中的内存页可能随时被交换到Pagefile中,Pagefile中会有Paged pool的一个“投影”
在内核调试会话中,可以使用!vm来观察包括Pagefile在内的虚拟内存信息
《软件调试》详细介绍了堆的内部结构和用法,确实没有深入介绍内核池,篇幅是个问题:-)
Posted in Windows内核调试
by
格蠹老雷
on 2011-05-01
机器上应该是安装了Symantec的安全软件,分页池上标记为SaEe的内存开销非常高,分配和释放次数超出了正整数的表达范围,静分配也有40多MB...
网站上已经确定有关的问题:
High paged pool memory usage for Auto-Protect
Fix ID: 1511152
Symptom: Pool monitor shows high memory usage for SavE and SaEe pooltags.
Solution: AV engine ...
Posted in Windows内核调试
by
格蠹老雷
on 2011-04-28
不客气,如果你关心的是PageFile使用情况,那么应该观察NonPaged Pool,在界面上按n切换,然后b按字节排序
Posted in Windows内核调试
by
格蠹老雷
on 2011-04-27
自动分析对手工产生的蓝屏帮助很小
!process 0 0 csrss.exe
找到EPROCESS地址后,!process
同时尝试!locks观察可能的死锁...
Posted in Windows内核调试
by
格蠹老雷
on 2011-04-27
如果分析的是正常的代码(编译器生成的,没有故意反调试的),那么可以反汇编所在的整个函数,然后搜索当前指令的地址,通常就可以找到JMP/JE/JNE/JZ/JNZ等指令。
如果是顺序执行的情况,那么可以尝试ub
Posted in C/C++本地代码调试
by
格蠹老雷
on 2011-04-22