我希望创建包含注册算法的共享软件.我正在寻找一种编程语言,不能轻易地反编译成可读代码.例如,C#可以反编译成可读代码.
我有什么选择?
编辑:我正在寻找只能反编译成汇编的东西.例如,Delphi不能像C#或Java一样反编译,但从我所听到的,Delphi正在消亡.
德尔福并没有死,它还活着.
正如社区一样,在深思熟虑.
您还可以在Delphi Wikia上看到更多delphi项目,免费软件,共享软件和商业广告.
因此,我认为Delphi是软件开发的一个很好的选择.免费软件,共享软件或商业.
更新:2011年9月1日,Embarcadero发布了Rad Studio XE2.这个发布增加了64位编译,Livebindings,Native Mac OSX编译,IOS(通过XCode)以及更强大的delphi Dev环境.
如果您的CPU能够看到代码并运行它,根据定义,一个足够有才能的人也可以这样做.
但是,您可以通过混淆器运行代码来使其变得更难.
我建议商业和经济学的语言可以保护你的程序.
如果你的目标是消费者,并以10美元的价格定价,那么几乎所有人都会觉得更容易向你付10美元而不是进入你的程序并进行逆向工程.
如果您的目标是公司,并且说定价为10,000美元,那么让购买部门批准付款比对代码进行反向工程更容易.对于购买产品的真实公司而言,运行未经许可的代码是不值得的审计风险.
最后,保护代码的成本/收益是什么?如果用汇编而不是C#编写程序,可能会产生更高的生产成本,同时降低逆向工程的可能性.但是,这个成本是否超过潜在的销售损失?这段时间可以更好地为购买产品的人增加价值吗?通常,尝试将产品销售给从不为软件付费的人并非经济策略.
你可以用Perl编写它.
(我小子,我小子!放下干草叉!)
正如其他人所说,德尔福并没有死亡.
正如其他人所说,没有防弹方法.
正如其他人所说,有一些工具可以使饼干的生命更加艰难.
但其他人没说的是:
与例如混淆玩具相比,Java,.NET(等)混淆是一种玩具.Delphi和其他原生解决方案.(当然是YMMV)
可以在此处找到相对保护可执行文件的非常好的技术.
在我之后重复:"不安全不是安全."
你最好使用硬加密算法("硬"并不意味着"困难",但"不是双向的;不容易逆转".
这在逻辑上不可能吗?
如果可以运行代码,则可以获得CPU执行的指令.此时,对于某些可读定义,您的算法是可读的.