The most common way to handle this is: customer gives you money, you generate a unique unlock key and provide that to the customer. The key should be a valid unlock key, and it should encode identification information about the user. Customer uses that key to install on as many of their computers as they like, or is allowed by the license.
Don't worry about reverse-engineering. Your product, if it's at all popular, will be pirated - you'll find unlock keys online if you look hard enough. If you like, you can take that as a compliment - someone liked your software enough to steal it. Cold comfort, I know, but the alternative is to get in an arms race with the pirates, and you won't win that. In the end, a few percent of the population will steal software, and you can't do much about that. You can use the key's identification information, if your scheme is strong enough, to trace who released the key in the first place.
实际上,有许多许可证管理解决方案可以提供帮助,但真正的问题是所有这些解决方案都可以被破解。我亲自尝试过从最贵到最便宜的。最后,我推出了自己的软件,每次运行软件时,我都会根据服务器中记录的详细信息检查软件的电脑详细信息(mac id 等)。因为我的软件与互联网紧密相连,所以还好,但我确信有一天它会被破解。
Actually there are a number of license management solutions that can help, but the REAL problem is that all of they can be cracked. I've personally tried the most expensive to the cheapest. Finally I rolled my own, and I check the software's pc details (mac id, etc.) against the recorded details in my server every time the software is run. Because my software is tightly tied to the Internet, it is okay, but I am sure it will be cracked one of these days.
What you probably need is to police the Internet regularly, and find where your software is being pirated, contrary to the popular belief you can actually stop them in most cases. Just serve a DMCA to the downloading website (most of them will comply), and you will be able to get your software removed in about 80% of the cases. I've done and experienced it on my software. Some people do not remove, but I've found that in the 1.5 years I've been doing this, my sales have improved.
I also use a service -- http://spotpiracy.com which helps me find these links apart from my own manual research (i have a guy dedicated to this). :)
Everyone has their own opinion on this subject so expect lots of different advice. Here's my take on it:
1. Obfuscate your code (proguard is recommended)
2. Offer a FREE version with full capabilities for a trial period
3. Use a serial number routine based on the registering users email or other unique info
Overall you will have to accept a certain amount of piracy, but if your application is worthy people will pay for it. Honest people will be honest and copy protection will not make dishonest people honest.
In my opinion, if you don't know exactly how you will protect your source code efficiently, then don't start trying to hash something together yourself based on hardware. It will be too easy to break, and most likely just annoy your customers.
I would sugest you have a look at how Atlassian does this. They happen to sell Java software, and apparently do quite well. http://www.atlassian.com/ Try downloading e.g. JIRA and play with an installation. This will give you a good idea of how their licensing scheme works, and what users can reasonably expect from professional software.
In my old c++ days i get in arms to front the piracy using MAC Address code protection, very nice and really no body stole my software uppone the mac address protection because i always force the OS to re-read the real mac avoiding mac overrides. That was on C++ coding having direct access to local resources.
thats not the case today, nither in java applications in which the code is located in .class files that can always being decoded back to the original source code (yes it is possible, and very easy to find tools to do so).
i think, as resume, it is impossible to protect java programs agains piracy. i find no way like the old golden c++ days :)
发布评论
评论(6)
处理此问题的最常见方法是:客户给您钱,您生成唯一的解锁密钥并将其提供给客户。该密钥应该是有效的解锁密钥,并且应该编码有关用户的识别信息。客户可以使用该密钥在任意数量的计算机上安装,或者在许可证允许的情况下安装。
不用担心逆向工程。你的产品,如果它很受欢迎,就会被盗版——如果你足够仔细的话,你会在网上找到解锁钥匙。如果您愿意,您可以将此视为一种恭维 - 有人非常喜欢您的软件并窃取了它。我知道这只是冰冷的安慰,但另一种选择是与海盗进行军备竞赛,但你不会赢。最终,只有百分之几的人会窃取软件,而你对此无能为力。如果您的方案足够强大,您可以使用密钥的标识信息来追踪谁首先释放了密钥。
The most common way to handle this is: customer gives you money, you generate a unique unlock key and provide that to the customer. The key should be a valid unlock key, and it should encode identification information about the user. Customer uses that key to install on as many of their computers as they like, or is allowed by the license.
Don't worry about reverse-engineering. Your product, if it's at all popular, will be pirated - you'll find unlock keys online if you look hard enough. If you like, you can take that as a compliment - someone liked your software enough to steal it. Cold comfort, I know, but the alternative is to get in an arms race with the pirates, and you won't win that. In the end, a few percent of the population will steal software, and you can't do much about that. You can use the key's identification information, if your scheme is strong enough, to trace who released the key in the first place.
实际上,有许多许可证管理解决方案可以提供帮助,但真正的问题是所有这些解决方案都可以被破解。我亲自尝试过从最贵到最便宜的。最后,我推出了自己的软件,每次运行软件时,我都会根据服务器中记录的详细信息检查软件的电脑详细信息(mac id 等)。因为我的软件与互联网紧密相连,所以还好,但我确信有一天它会被破解。
您可能需要的是定期监管互联网,并找到您的软件被盗版的地方,这与大多数情况下您实际上可以阻止它们的普遍看法相反。只需向下载网站提供 DMCA(大多数网站都会遵守),大约 80% 的情况下您就可以删除您的软件。我已经在我的软件上完成并体验了它。有些人不删除,但我发现在我这样做的1.5年里,我的销售额有所提高。
我还使用一项服务 - http://spotpiracy.com,它可以帮助我在自己的手动研究之外找到这些链接(我有一个人专门负责这个)。 :)
Actually there are a number of license management solutions that can help, but the REAL problem is that all of they can be cracked. I've personally tried the most expensive to the cheapest. Finally I rolled my own, and I check the software's pc details (mac id, etc.) against the recorded details in my server every time the software is run. Because my software is tightly tied to the Internet, it is okay, but I am sure it will be cracked one of these days.
What you probably need is to police the Internet regularly, and find where your software is being pirated, contrary to the popular belief you can actually stop them in most cases. Just serve a DMCA to the downloading website (most of them will comply), and you will be able to get your software removed in about 80% of the cases. I've done and experienced it on my software. Some people do not remove, but I've found that in the 1.5 years I've been doing this, my sales have improved.
I also use a service -- http://spotpiracy.com which helps me find these links apart from my own manual research (i have a guy dedicated to this). :)
每个人对这个问题都有自己的看法,所以期待很多不同的建议。这是我的看法:
总的来说,你将不得不接受一定程度的盗版,但如果你的应用程序是值得的,人们就会为此付出代价。诚实的人就会诚实,复制保护不会让不诚实的人变得诚实。
Everyone has their own opinion on this subject so expect lots of different advice. Here's my take on it:
Overall you will have to accept a certain amount of piracy, but if your application is worthy people will pay for it. Honest people will be honest and copy protection will not make dishonest people honest.
在我看来,如果您不确切知道如何有效地保护源代码,那么就不要开始尝试自己基于硬件将某些内容哈希在一起。它太容易损坏,而且很可能只会惹恼您的客户。
我建议你看看 Atlassian 是如何做到这一点的。他们碰巧销售 Java 软件,而且显然做得相当不错。 http://www.atlassian.com/ 尝试下载 JIRA 并进行安装。这将使您很好地了解他们的许可方案如何运作,以及用户对专业软件的合理期望。
In my opinion, if you don't know exactly how you will protect your source code efficiently, then don't start trying to hash something together yourself based on hardware. It will be too easy to break, and most likely just annoy your customers.
I would sugest you have a look at how Atlassian does this. They happen to sell Java software, and apparently do quite well. http://www.atlassian.com/ Try downloading e.g. JIRA and play with an installation. This will give you a good idea of how their licensing scheme works, and what users can reasonably expect from professional software.
您必须实施许可功能。
作为初学者,这里有一个有趣的资源: http://members.chello.at/stefan -schneider/JavaLicenseKit.html
You must implement licensing capabilities.
Here is one interesting resource as a starter: http://members.chello.at/stefan-schneider/JavaLicenseKit.html
在我以前的 C++ 时代,我使用 MAC 地址代码保护来对抗盗版,非常好,实际上没有人在 mac 地址保护上窃取了我的软件,因为我总是强制操作系统重新读取真实的 mac 以避免 mac 覆盖。那是关于可以直接访问本地资源的 C++ 编码。
今天的情况并非如此,在代码位于 .class 文件中的 Java 应用程序中也不是这样,这些文件总是可以被解码回原始源代码(是的,这是可能的,并且很容易找到这样做的工具)。
我认为,作为简历,不可能保护java程序免受盗版。我找不到像旧的黄金时代那样的方式:)
In my old c++ days i get in arms to front the piracy using MAC Address code protection, very nice and really no body stole my software uppone the mac address protection because i always force the OS to re-read the real mac avoiding mac overrides. That was on C++ coding having direct access to local resources.
thats not the case today, nither in java applications in which the code is located in .class files that can always being decoded back to the original source code (yes it is possible, and very easy to find tools to do so).
i think, as resume, it is impossible to protect java programs agains piracy. i find no way like the old golden c++ days :)