避免在调试时输入 DLL,像在生产中一样使用它

avoid entering dll while debugging, use it like in production

提问人:Gigi 提问时间:10/12/2023 更新时间:10/12/2023 访问量:34

问:

我继承了一个使用“魔术”dll 的 C#/WebForms 项目。对于dll,我没有来源,它似乎以某种方式混淆了。此外,如果我在 Visual Studio 中开始调试,我会在很早的阶段(在 Application_BeginRequest() 中收到一个 FatalExecutionEngineError。值得一提的是,该项目与dll一起在生产中工作正常。我的问题是调试。如果我删除该dll并用一些假人替换其类和方法,则不会出现该错误。我想在Visual Studio中调试,但不知何故像在生产中使用dll一样。当然,我无法调试 dll,但至少我可以调试项目的其余部分。

那么,如何做到这一点呢?如何让dll“思考”在生产中?像“只启用我的代码”这样的微不足道的解决方案没有帮助。我可以在某处配置解决方案以从调试中排除 dll 吗?我可以做些什么来避免调试器访问dll吗?

C# 调试 DLL WebForms 混淆

评论

0赞 Klaus Gütter 10/12/2023
似乎DLL内置了一些反调试功能。您能否联系 DLL 的作者/供应商?
0赞 Fildor 10/12/2023
这种“魔力”是否如此独特,以至于这是唯一可用的 dll 可以为您提供所需的功能?使用调试器会让我寻找替代方案,如果我使用的依赖项之一阻止了我这样做。
0赞 Paweł Łukasik 10/12/2023
答案可能取决于 dll 如何知道它正在调试的事实。如果不在 dll 中检查它,这很困难。
0赞 Gigi 10/13/2023
@KlausGütter 不,作者死了。
0赞 Gigi 10/13/2023
@Pawe łłukasik 我希望我能对调试环境(即 Visual Studio)做一些事情,而不是对 dll 做一些事情。

答: 暂无答案