我有一个自动运行的应用程序,它说:
因此,我继续调试并看到:
(df0.c2c): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
006a75ba cc int 3
这仍然没有说明太多内容,因此我遍历堆栈以检查是否还有更多信息:
0:000:x86> dda esp
0018fdc4 006851cc "..u.j...]g"
0018fdc8 023dcd38 "..g"
0018fdcc 0018fdf4 "..."
0018fdd0 006a7701 "3.ZYYd.....X........_^[]."
0018fdd4 006a771c "Protection Error"
0018fdd8 023dcc80 "Debugger detected - please close it down and restart!."
这告诉我已经检测到一个调试器,但是哪一个......
有没有简单的方法来发现这一点?
尝试过的事情:
- 进程监视器跟踪没有显示任何内容
Debug
,并且通过阅读它我什么也没看到。 - 我没有安装 Divx 或 Nero。
因为它埋得太深了,我怀疑其他软件也可能有这种保护……
答案1
DEP 似乎被解释为调试器, 解决了...
答案2
在 Vista 之前的 Windows 中,默认调试器是沃森医生如今,它似乎只是更大“Windows 错误报告”服务。
DEP 不是调试器,它是一种安全功能,用于防止从未标记为可执行的内存空间执行数据(以防止缓冲区溢出用于代码执行)。
很可能是 DEP 导致程序崩溃,因为它(程序)错误地尝试访问未标记为可执行的内存,所以 DEP 正确地阻止了它,而程序不知道如何处理被阻止的情况,所以它崩溃了。
您已将该程序从 DEP 中排除,因此允许(不安全地)读取内存。
Hauppage 有一些 Vista 信息和驱动程序这里这可能会对您遇到的这个特定实施例有所帮助。
另外:我认为“保护错误”和“检测到调试器 - 请关闭并重新启动!”消息可能是 Hauppage 软件使用了反盗版技术,但这只是猜测。