gpt4 book ai didi

delphi - 如何检测可能正在分析我的软件的调试器或其他工具?

转载 作者:行者123 更新时间:2023-11-28 19:42:57 26 4
gpt4 key购买 nike

一个非常简单的情况。我正在开发 Delphi 2007 中的一个应用程序,它通常被编译为“发布”但仍在调试器下运行。偶尔它也会在 SilkTest 下运行,用于回归测试。虽然这很有趣,但我想做一些特别的事情......

我想检测我的应用程序是否在调试器/回归测试器中运行,如果是这样,我希望应用程序知道使用了哪个工具! (因此,当应用程序崩溃时,我可以在它的错误报告中报告此信息。)

有什么建议,解决方案吗?

最佳答案

您可以检查启动您的应用程序的父进程。使用 CreateToolhelp32Snapshot/Process32First/Process32Next 获取父 PID(PROCESSENTRY32.th32ParentProcessIDTProcessEntry32.th32ParentProcessID) 为您的应用程序 PID。然后获取父 PID 的文件名以与您要检查的应用程序(如 SilkTest)进行比较。

检查 this article用于代码使用。

除了IsDebuggerPresentCheckRemoteDebuggerPresent,还可以查询PEB.BeingDebugged(PEB是Process Environment Block,要获取PEB必须查询 TEB,它是线程环境 block )。

关于delphi - 如何检测可能正在分析我的软件的调试器或其他工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1443268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com