2011-12-26 51 views
3

我有一个使用Skype的Delphi 6 DirectShow DLL。我的DLL调试设置是将主机参数设置为我的运行参数给Skype。问题在于Skype客户端中出现INT01和INT03指令,这些指令使得调试变得不可能,因为它们不断遭到攻击。每遇到其中一个命令时,Delphi调试器就会弹出一个访问冲突,CPU窗口的指令指针正好位于INT 01或INT 03指令上。如何忽略/禁用用于调试我的Delphi 6 DLL的主机EXE中的INT 01和INT 03指令?

有没有办法解决这个问题,所以我可以正确调试? (注意,我认识到有可能已经由Skype加载的其他外部DLL中的一个是问题所以它不是Skype,但这是我需要在任何情况下解决的同样的问题)。

+0

只需用NOP修补它们操作码 – OnTheFly 2011-12-26 01:43:21

回答

3

Skype采取了许多广泛的措施来击败调试器。你遇到的几乎肯定是其中之一。

您可能需要在Skype以外的其他环境中调试DLL。

+0

好的,谢谢。 – 2011-12-26 01:22:23

+1

要添加到duskwuff的上面:您可能想要添加调试输出到文件和/或使用'OutputDebugString' API并由DebugView工具监视,以便从Skype进程运行时调试输出,而无需在其中附加实际调试器。 – 2011-12-26 06:09:03