Tal*_*ode 68 .net c# reflector decompiling
我开始使用C#时学到的第一件事就是最重要的一件事.您可以使用Reflector或其他工具反编译任何.NET程序集.许多开发人员都不知道这个事实,当我向他们展示他们的源代码时,他们中的大多数都感到震惊.
防止反编译仍然是一项艰巨的任务.我仍在寻找一种快速,简便,安全的方法.我不想混淆我的代码,所以我的方法名称将是a,b,c左右.反射器或其他工具应该无法将我的应用程序识别为.NET程序集.我已经了解了一些工具,但它们非常昂贵.有没有其他方法来保护我的应用程序?
编辑:
我的问题的原因不是防止盗版.我只想阻止竞争对手阅读我的代码.我知道他们会,他们已经做到了.他们甚至告诉过我.也许我有点偏执,但商业竞争对手阅读我的代码并不能让我感觉良好.
Joe*_*orn 103
要记住的一件事是,您希望以具有商业意义的方式执行此操作.为此,您需要定义目标.那么,你的目标到底是什么?
防止盗版?这个目标是不可能实现的.甚至本机代码也可以反编译或破解; 在线提供的众多warez(即使是像Windows和Photoshop这样的产品)也证明了一个坚定的黑客可以随时获得访问权限.
如果你无法阻止盗版,那么仅仅减少盗版呢?这也是错误的.它只需要一个人破解你的代码就可以让每个人都可以使用它.你每次都要幸运.海盗只需要幸运一次.
我把它给你的目标应该是最大化利润.您似乎相信阻止盗版是这项努力的必要条件.它不是.利润只是收入减去成本.停止盗版会增加成本.这需要付出努力,这意味着在过程中的某个地方增加成本,因此减少了等式的这一方面.保护您的产品也无助于增加收入.我知道你看看所有那些海盗,看看你能赚到的所有钱,只要他们会支付你的执照费用,但事实是这绝不会发生.这里有一些夸张,但它通常认为,无法破解你的安全的海盗会找到一个类似的产品,他们可以破解或没有.他们将永远不会买它来代替,因此他们不会代表销售损失.
此外,保护您的产品实际上会减少收入.有两个原因.其中一小部分客户在激活或安全性方面遇到问题,因此决定不再购买或要求退款.另一个是实际尝试使用盗版软件以确保其在购买前有效的人中的一小部分.限制您的产品的盗版分发(如果您能以某种方式成功)可以防止这些人尝试您的产品,因此他们永远不会购买它.此外,盗版还可以帮助您的产品传播到更广泛的受众,从而吸引更多愿意为此付费的人.
更好的策略是假设您的产品将被盗版,并考虑如何利用这种情况.关于这个主题的几个链接:
我如何防止我的代码被盗?
保护.NET应用程序
Rha*_*ody 16
在这里工作,我们使用PreEmptive Solutions的Dotfuscator.
虽然不可能保护.NET程序集100%Dotfuscator让我觉得很难.我带来了很多混淆技术;
交叉装配重
命名重命名方案
重命名前缀
增强的重载归纳
增量混淆
HTML重命名报告
控制流
字符串加密
事实证明,对于小公司来说,它们并不是非常昂贵.他们对小公司有特殊定价.
(不,我不是为PreEmptive工作;-))
当然还有免费软件替代品;
ker*_*vin 10
几乎描述了整个情况.
在某些时候,代码必须被转换为VM字节码,然后用户可以获得它.
机器代码也没有太大的不同.像IDA Pro这样的好的交互式反汇编程序/调试 程序可以使任何本机应用程序透明化.调试器非常智能,可以使用AI来识别常见的API,编译器优化等.它允许用户从机器代码生成的程序集中重新构建更高级别的构造.
IDA Pro也在某种程度上支持.Net.
老实说,在从事逆向工程(兼容性)项目几年之后,我从经验中得到的主要是我可能不应该过多地担心人们窃取我的代码.如果有人想要它,无论我实施什么方案,都不会很难得到它.
没有任何混淆器可以保护您的应用程序,甚至这里没有描述。看到此链接,它是一个可以对几乎每个混淆器进行混淆的去混淆器。
https://github.com/0xd4d/de4dot
可以帮助您的最佳方法(但请记住,它们也不是完全教授)是使用混合代码,用不受管的语言对重要代码进行编码,并像C或C ++一样制作DLL,然后用Armageddon或Themida保护它们。Themida并非适用于所有解密工具,它是市场上最好的保护器之一,它还可以保护您的.NET软件。
归档时间: |
|
查看次数: |
104691 次 |
最近记录: |