Re: STATUS_PRIVILEGED_INSTRUCTION

转储分析

STATUS_PRIVILEGED_INSTRUCTION


yarpee 2012-07-23, 18:26 下午
分析一个dump时WinDbg出现
DEFAULT_BUCKET_ID:  STATUS_PRIVILEGED_INSTRUCTION
PRIMARY_PROBLEM_CLASS:  STATUS_PRIVILEGED_INSTRUCTION
BUGCHECK_STR:  APPLICATION_FAULT_STATUS_PRIVILEGED_INSTRUCTION

崩溃出现在一个对象的构造函数中,uf该构造函数,崩在mov     eax,dword ptr fs:[00000000h]
56 0abe0650 6aff            push    0FFFFFFFFh
56 0abe0652 6898edc10a      push    offset xxx!__sse2_available_init+0x6820 (0ac1ed98)
56 0abe0657 64a100000000    mov     eax,dword ptr fs:[00000000h]

请问下这哪里是特权指令呢?该怎样继续分析?

Re: STATUS_PRIVILEGED_INSTRUCTION


格蠹老雷 2012-07-25, 12:59 下午

信息不够,执行r;dg @fs,把结果贴上来看下...

Re: STATUS_PRIVILEGED_INSTRUCTION


yarpee 2012-07-27, 13:15 下午

这个dump已经找不到了,请教另外一个问题,对于多次释放一个对象造成的堆破坏,dump里多次释放的对象地址为0x126d0bf0,但是!heap 0x126d0bf0 -x没有该堆块信息,该如何跟呢?本来是想通过use dt DPH_BLOCK_INFORMATION with the header address, followed by dds with the block's StackTrace field.

Re: STATUS_PRIVILEGED_INSTRUCTION


格蠹老雷 2012-07-28, 20:47 下午

  多个空闲块可能合并成一个大的空闲块,空闲块也可能分配出去。可以!heap -a <堆句柄>列出所有堆块,查看0x126d0bf0地址附近的堆块...

这样的问题最好是先启用App Verifier的验证机制,然后重现问题,第二次释放时被验证模块抓住,实时break到调试器

Powered by Community Server Powered by CnForums.Net