- 博客(5)
- 资源 (2)
- 收藏
- 关注
原创 获取调用栈信息的函数RtlCaptureStackBackTrace()
这是一个导出函数,使用时必须试探页面产生异常的能力(probe the ability to take page fault)—(翻译 ddk文档)。USHORT //返回捕捉到的结构数 RtlCaptureStackBackTrace( __in ULONG FramesToSkip, __in ULONG FramesToCapture, __out_ecount
2018-01-08 20:32:45 4908 2
原创 关于调用栈一个函数ObpPushStackInfo
kd> !obtrace 0xfa96f700(对象地址)Object: fa96f700 Image: cmd.exeSequence (+/-) Stack-------- ----- --------------------------------------------------- 2421d +1 nt!ObCreateObject+180
2018-01-08 16:42:01 360
原创 ObReferenceObjectByPointer
ObReferenceObjectByPointerWithTag()例程介绍参考ddk文档。这个函数和ObReferenceObjectByHandleWithTag()最后要完成的任务是一样的—“ReferenceObejct”,只不过方法不一样。通过指针引用对象相对通过句柄来说,逻辑要简单得多,可以将二者结合起来看,上一个写的不清楚的地方在这里可能有答案。 lkd> dt nt!_object
2018-01-06 22:04:59 668
原创 自己尝试还原的ObReferenceObjectByHandle
ObReferencObjectByHandle()这个函数从字面上看就可以知道是通过句柄(Handle)来访问对象。还原的过程中对汇编语言强大又有了进一步的认识,其效率之高令人惊叹,每个寄存器的使用都是那么的精妙绝伦,相同或类似的功能的代码很少重复出现。效率高的代价就是可读性较差,和C代码相比就会表现出巨大的差异;但是对于那些比较熟悉这两种语言的高手来说,随意在两者之间切换应该不是什么问题,而我看
2018-01-05 21:57:55 1212
原创 通过WinDbg收集关于ExCreateCallback的信息
lkd> dt nt!_object_attributes +0x000 Length : Uint4B +0x004 RootDirectory : Ptr32 Void +0x008 ObjectName : Ptr32 _UNICODE_STRING +0x00c Attributes : Uint4B +0x01
2018-01-01 21:47:54 427
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人