![]() |
1
1
特别感谢@Artem Razin:
它很棒,很有帮助。此外,他指定的虚拟化也是一种不错的方法。如果你需要使用反调试环境,我会给你发布一个很好的方法。如果您提到例外情况:
我假设你使用Eziriz。NET反应器。当我在支持下发言时。他们说你不能为特定的HardwareID提供两个反调试版本。因为HardwareID涉及到许可证系统,它决不能绕过! 我可以通过使用告诉您一个解决方法。NET Reactor CLI和MSBuild目标。 应该是什么情况?(我将展示在编写CLI之前我们需要做什么…)
所以请使用目录。为此构建目标。以下是模糊处理的代码:
请使用以上代码! 如果你需要它尽可能简单。但您需要为开发人员手动创建nuget包。通过MSBuild或您需要的方式。 但是 如果您使用。NET Framework,并希望生成模糊可调试的nuget包(用于开发人员)。同时还为您的消费者提供反调试版本。可以使用以下MSBuild目标。
(请参阅链接XML内容较大,无法发布到StackOverflow) |
![]() |
2
1
自exe打包器时代以来,反调试是一个众所周知的功能。不幸的是,这是一个全过程的事情。通常NET模糊处理程序检查调试器特定的环境变量。 无法阻止调试器进入程序集。 我想说的是,反调试适用于那些希望保护其最终用户产品的人,而不是库。 你可以虚拟化你的代码(像ArmDot这样的现代模糊处理程序提供了这一功能),所以调试它几乎没有意义。 另一个想法是将敏感代码隔离到一个单独的进程中,该进程使用启用的反调试功能运行。在客户端,您只需提供一个代理,将所有调用重定向到进程。 |