在这篇伟大的文章(http://eatplayhate.wordpress.com/2010/07/18/mono-cecil-vs-obfuscation-fight/)中,作者声称Mono.Cecil并不完美,但它很好地翻译了90%的函数,没有任何问题。
我要问你们的问题是:一个邪恶的程序员可以混淆不能使用Mono.Cecil解混的恶意代码,从而在我的程序(第三方代码)中造成严重的漏洞吗?如果答案是肯定的,你知道我可以使用什么符号来编写这样的代码,或者我如何保护自己不受这样的代码的影响?
发布于 2013-04-28 12:52:22
当然,一个邪恶的程序员总是可以更好地混淆代码而不是你去混淆它。毕竟,提前确定任意代码的行为是一个无法确定的问题。
更实际的情况是,谁投入了更多的精力,混淆与去模糊的斗争就结束了。模糊处理比去模糊容易得多,但是由于各种原因,商业模糊处理程序往往没有您可以手工或使用自定义模糊处理程序编写的代码复杂得多。Mono Cecil足够好,可以对许多常见的混淆工具进行去模糊处理,但这并不意味着它可以对后者做任何事情。
如果您想了解一些手动混淆代码的技巧,请看一下this crackme。它是Java字节码,而不是CLI,但思想是相似的。在写这篇文章的时候,还没有人解决这个问题,尽管在一个类中只有一个方法。它甚至没有使用反射,正确地使用反射使得自动去模糊几乎是不可能的。
然而,真正的问题是,您试图用它来做什么。您是否正在尝试检查任意代码中的恶意行为?抱歉,但那是不可能的。您需要在沙箱中运行它。
https://stackoverflow.com/questions/15900920
复制相似问题