可以将dll库转换回源代码吗?
并不是说我想这么做,但我需要外包一些我正在编写的软件的非关键部分,但我不希望其他人复制我到目前为止所拥有的一切。
相应dll中的代码并不是全部代码。我已经设法在库中只包含了必要的代码,但我仍然不希望其他人复制我的代码。
我应该担心吗?
发布于 2010-10-11 03:35:12
有可能吗?是。
容易吗?那得看情况。
如果你是用.NET写的动态链接库,使用像Reflector这样的工具,decompilation是轻而易举的,除非你有obfuscated你的代码。
即使这不是.NET代码,它仍然是可能的,尽管难度要大得多。如果你用现有的工具混淆你的代码,你会使事情变得更加困难。
通常,如果您将代码(无论是否编译)提供给某人,他们将能够从程序集/字节码对其进行反编译,即使它是模糊的。
这并不总是那么容易,而且通常需要付出太多的努力。这真的取决于你有多偏执,你的代码对第三方有多大的价值。
没有针对真正坚定的攻击者的保护。这可能需要他们几年的时间,但如果他们真的下定决心,他们会弄清楚的。
发布于 2010-10-11 03:35:28
从编译后的代码中恢复源代码的过程称为decompilation,它可以实现更好或更差的结果,具体取决于编写程序所用的语言。
为了防止反编译,您可以使用obfuscator,它通过修改二进制文件来使其更难反编译。混淆器使用的技术的一个示例是将二进制文件中可见的成员名称替换为无意义的名称(例如a001、a002等)。所以反编译后的代码就没什么意义了。有些人甚至对这些名称使用关键字(例如for,while,...)因此,一个天真的反编译器将生成甚至不能编译的代码。它们还可以使用其他技术,例如加密字符串,使它们在查看二进制文件时不可读。
混淆并不是一个完美的防御方法。即使你使用混淆,一个才华横溢、意志坚定的对手也可能能够恢复一些与你的原始源代码相当相似的东西。
发布于 2010-10-15 06:54:33
试着认为你的代码可以被任何人重写,因为一旦你开始让承包商参与你的项目,这个想法就会公之于众。
你有什么,他没有什么:想办法把它做成生意。如果你害怕他这样做,向他提出保密协议,你就不会有任何疑问。
所以我对你的建议是不要担心这里的技术。
https://stackoverflow.com/questions/3901873
复制相似问题