使用WinDbg

时间:2016-09-19 07:39:06

标签: debugging windbg

我试图在我的一个Windows应用程序中使用WinDbg验证COM数据包结构(序列化数据包),该应用程序使用COM进行进程外通信。

我所知道GetHGlobalFromStream()函数的调用格式为Reference

hr = ::GetHGlobalFromStream(pMarshalStream, &rhglobal);

在编组期间,此调用成功后 rhglobal 应指向指定流对象使用的当前内存句柄,它应指向序列化数据包(以MEOW标头开头)。

所以为了验证WinDbg,我做了这个

1. bp combase!GetHGlobalFromStream  ; set break point at GetHGlobalFromStream
2. r $t1 = poi(esp+8); t1 is holding the address of rhglobal; 2nd arg.
3. db $t1;  dump bytes at address t1 (rhglobal) before call completed.
4. gu;      Step out of GetHGlobalFromStream() function
5. db $t1; Here we are back to callee; So we again tring to dump content of t1 (rhglobal).

但是在最后一行,我想我应该看到OBJ_HEADER的前几个字节" MEOW "。但我不明白。

我有什么不对的吗?如果它不是查看数据包的正确方法,我怎么能看到使用调试器?

0 个答案:

没有答案