all*_*tic 10
从技术上讲,除非你有一台时光机,否则没有办法阻止已经发生的事情。你的问题表明你认为你的程序已经被破坏(过去完成时)——这是一个已经发生的动作。阻止已经发生的动作需要时间旅行,因为我们没有其他方法可以做到这一点。
这个看似愚蠢的论点之所以有意义是因为,即使你今天在你的代码中实现了一种混淆技术,让任何人都完全不可能再次对你的代码进行逆向工程,但仍然至少有一个副本没有混淆的代码已经以某种方式发布,并且已经返回到可用的源格式(或者你相信)。
因为我不知道地球上有谁创造了可以工作的时间机器,所以我怀疑是否有任何可能的方法可以通过技术手段正确处理这种情况。如果您的软件可以免费下载,那么很可能有成千上万的人拥有未经混淆的二进制文件的副本,并且可以随时在彼此之间共享这些二进制文件并随意对其进行逆向工程。即使您以收费方式出售您的软件,如果该费用不是非常高,那么它可能已经被不止一个人进行了逆向工程,无论是付费客户还是盗版者。
你可能不得不求助于地球上唯一可以(以极其不完美的方式)试图纠正过去发生的错误或不道德行为的机构:法律体系。你看,即使有人做了一些非常讨厌的事情,比如使用你的代码作为基础发布竞争产品,你也不需要时间机器来阻止他们这样做:你可以简单地通过诉讼针对最严重的罪犯,并让司法系统发挥作用。你不一定会得到理想的结果,而且你可能不会得到所有应得的钱(律师费等等);但这比坐在这里希望你有一台时光机要好。
当然,前进,任何新的您发布的代码时,应考虑混淆,如果你的目标是防止其他人能够方便地逆向工程的.NET程序集。但我会把这个话题留给其他回答者;我只是想成为一个学究。
| 归档时间: |
|
| 查看次数: |
1557 次 |
| 最近记录: |