>    vcam.ax!CopyMediaType()  + 0x49 bytes
     vcam.ax!CMediaType::Set()  + 0x41 bytes
     vcam.ax!CMediaType::operator=()  + 0x2f bytes
     vcam.ax!CVCamStream::SetFormat(_AMMediaType * pmt=0x00000000)  Line 201    C++
     FlashPlayer.exe!005641be()

有人可以逐行解释以上内容吗?

最佳答案

这意味着指令指针位于可执行文件vMedia.ax中的CopyMediaType()函数中,下一个操作是函数中机器代码的0x48(= 73)字节。

从可执行文件vcam.ax(CMediaType对象的Set方法)中调用了此函数,该函数的返回地址为代码的0x41字节。

等等。

FlashPlayer.exe没有调试符号,因此它无法告诉您调用起源于哪个函数,它只能说返回地址在哪里。这是FlashPlazer.exe代码中的绝对返回地址

使用一个参数(指向_AMMediaType对象的指针)调用SetFormat。指针为NULL。

其他功能没有参数似乎很奇怪。 operator =应该有一个参数,但是调试器似乎没有足够的信息来显示它。它可能是一种不同的函数调用方法,因为它将SetFormat调用识别为C++代码,而其他方法则不能。

07-24 14:03