Delphi Win32的最佳共享软件锁

时间:2021-03-08 09:59:32

Same intro as my last question:

与我上一个问题相同的介绍:

I am re-writing and/or consolidating a bunch of my "app framework" classes (basic mainform, about box, locking routines & purchase linking, auto-update, datamodule initializer, etc) -- Basically, I have a number of small potential shareware apps that I'm wanting to get out the door, and want to re-use code where I can, as well as build a framework for later apps to save time.

我正在重写和/或整合一堆我的“应用程序框架”类(基本主题,关于框,锁定例程和购买链接,自动更新,数据模块初始化程序等) - 基本上,我有一些小的潜在的共享软件应用程序,我想要出门,并希望尽可能重用代码,以及为以后的应用程序构建框架,以节省时间。

But different question: : )

但不同的问题::)

What is the best shareware lock component for Delphi Win 32 apps? (I don't mind paying for commercial if that's best).

Delphi Win 32应用程序的最佳共享软件锁定组件是什么? (如果那是最好的话,我不介意支付商业费用)。

Clarifying -- yes, best license key verification / lock + trialware component.

澄清 - 是的,最佳许可证密钥验证/锁定+试用软件组件。

11 个解决方案

#1


I've used ICE License in the past. Tool was easy to use - which is good, as the support was shocking!

我过去曾使用过ICE许可证。工具很容易使用 - 这很好,因为支持是令人震惊的!

None of these types of products is perfect, but, if you've decided that this is the route you want to go, you could do worse than this product.

这些类型的产品都不是完美的,但是,如果您认为这是您想要的路线,那么您可能会比这个产品更糟糕。

#2


There is no effective way to lock down an application, period. You can make it more difficult for users to use the program without a valid license from you, at the risk of creating false negatives, which can become a PR nightmare very quickly in the Internet age.

没有有效的方法来锁定应用程序,期间。如果没有您的有效许可,您可能会使用户更难以使用该程序,从而有可能造成漏报,这可能会在互联网时代迅速成为公关噩梦。

There are two ways to go about doing this. You can create some sort of DRM lock built into the software. These take no time flat for some talented hacker to reverse-engineer. (The best tend to last about 1 month.) Or you can create a validation system that requires the program to connect to a server. These are a lot harder to crack, but tend to have serious false-negative problems, and if your server ever goes down, all your paying customers are up a creek. In the end, neither is a good solution.

有两种方法可以做到这一点。您可以在软件中创建某种DRM锁。对于一些有才华的黑客进行逆向工程,这些都没有时间。 (最好的约为1个月。)或者您可以创建一个验证系统,要求程序连接到服务器。这些更难以破解,但往往会出现严重的假阴性问题,如果您的服务器出现故障,您的所有付费用户都会瘫痪。最后,两者都不是一个好的解决方案。

Long story short, if you want to make a program that will be profitable, make it of high enough quality that people will be willing to pay for it, and market it to the people who are willing to buy software instead of steal it. There just aren't any shortcuts.

简而言之,如果你想制作一个有利可图的节目,那就让人们愿意支付它的高质量,并把它推销给愿意购买软件而不是偷软件的人。没有任何捷径。

#3


I created a "self-modifying" EXE by appending a data record to the end of my compiled application. The first thing my application did was get the machine id and the bios date from the computers memory. I would then compare these to the machine id and bios date stored in the appended data record. Seek to end... back up XX number of bytes... read to end.

我通过将数据记录附加到已编译的应用程序的末尾来创建“自修改”EXE。我的应用程序做的第一件事就是从计算机内存中获取机器ID和BIOS日期。然后,我将这些与存储在附加数据记录中的机器ID和BIOS日期进行比较。寻求结束...备份XX个字节...读取结束。

This worked great. If a buddy passed on a program to a friend and it didn't recognize the machine id or bios date and reverted back to trial-ware. When they entered the key successfully I would update the appended record with that machines user information.

这很有效。如果一个好友将一个程序传递给了一个朋友并且它没有识别机器ID或BIOS日期并且还原回到试用版。当他们成功输入密钥时,我会使用该机器用户信息更新附加记录。

Then Norton started flagging my software as a virus because it was a self-modifying EXE. That put a halt to my app locking days. I haven't tried since.

然后Norton开始将我的软件标记为病毒,因为它是一个自我修改的EXE。这让我的应用程序锁定了几天。从那以后我没有尝试过。

#4


I tend to agree that aggressive DRM is really bad and annoys legitimate users, but, at the same time, an incentive to keep honest people honest isn't bad either, provided it doesn't get in the way...

我倾向于认为积极的DRM非常糟糕并且会惹恼合法用户,但与此同时,保持诚实的人诚实的动机也不错,只要它不会妨碍...

Not a real component reference, but some interesting reading on protecting software:

不是真正的组件参考,而是一些关于保护软件的有趣读物:

anti-cracks tips:
Fravia's HOW TO PROTECT BETTER.
Pirate-Me-Not.

防裂技巧:Fravia如何保护更好。海盗-ME-没有。

reflections on Piracy and DRM:
Piracy and Unconventional Wisdom.
Piracy & PC Gaming.

关于盗版和DRM的思考:盗版与非常规智慧。盗版和PC游戏。

#5


I have used OnGuard by turbo power in several projects, but do not rely on it being the only method to protect the software. You can also use the LockBox library to encrypt data, such as a record stuffed in a database your app controls, containing license registration data that you emailed to the user and they applied via cut and paste into the about box.

我在几个项目中使用了Turbo power的OnGuard,但不要依赖它是保护软件的唯一方法。您还可以使用LockBox库来加密数据,例如填充在应用程序控制的数据库中的记录,其中包含您通过电子邮件发送给用户的许可证注册数据,并通过剪切和粘贴应用到about框中。

The strongest way to protect things is to have a piece that the user doesn't have access to, and have your software "call home" to validate that its still valid (very DRM like). Unfortunately, this is easy for anyone to block by turning on thier software firewalls and excluding your application from using the internet. Of course DRM like systems have a bad name right now, but its partly because they are a frustration point to the end user because they work... as long as the service which validates the license is up.

保护事物的最有效方法是拥有一个用户无法访问的部分,并让您的软件“回家”以验证其仍然有效(非常像DRM)。不幸的是,任何人都可以通过打开软件防火墙并将您的应用程序排除在互联网之外来轻松阻止。当然DRM之类的系统现在名声不好,但部分原因是它们对最终用户来说是一个令人沮丧的点,因为它们起作用......只要验证许可证的服务已经完成。

#6


Oreans has very good production products(Themida & WinLicense), and recommended more than other products.

Oreans拥有非常好的生产产品(Themida&WinLicense),并且推荐比其他产品更多。

#7


Having watched others have trouble in the past with third party licence & protection software, I think there is only one viable system. First, don't spend too much time on it, just make a good product, and update it often. Second, separate the install code from the protection. This way you can change the protection at the drop of a hat, without affecting any users. This basically means you have to write your own install code system, or use one like the old Turbopower one. Then use something that will protect your decoder a little. I currently use the Oreans Code Virtualizer which is quite sufficient.

看过别人在过去使用第三方许可和保护软件时遇到麻烦,我认为只有一个可行的系统。首先,不要花太多时间在上面,只需制作一个好产品,并经常更新。其次,将安装代码与保护分开。通过这种方式,您可以在不影响任何用户的情况下更改保护。这基本上意味着您必须编写自己的安装代码系统,或使用旧的Turbopower系统。然后使用能够保护解码器的东西。我目前使用的是Oreans Code Virtualizer,这已经足够了。

Keeping them separate gives you flexibility, and less hassle.

将它们分开可以提供灵活性,减少麻烦。

#8


I tend to prefer Armadillo from Silicon Realms (http://www.siliconrealms.com/). It has nice nice features and is integrated with Digital River/RegNow.com (being a subsidiary of them).

我倾向于选择Silicon Realms的Armadillo(http://www.siliconrealms.com/)。它具有很好的功能,并与Digital River / RegNow.com(作为它们的子公司)集成。

There are alot of Anti-Armadillo software available but custom builds a some additional prevention coded by you do magic.

有很多可用的Anti-Armadillo软件,但是自定义构建了一些额外的预防措施,由你做魔术。

#9


I also not believe that it's worth to spend a lot of time and energy in a tecnical protection, the people who want steal your software wil doe it anyway.

我也不相信花费大量时间和精力进行技术保护是值得的,那些想要窃取你的软件的人无论如何都会这样做。

Peldi Guilizzoni from Balsamiq have a nice blog post over this subject:

来自Balsamiq的Peldi Guilizzoni有一篇关于这个主题的好文章:

http://www.balsamiq.com/blog/?p=382

#10


I can second the recommendation for Oreans' products. Their support is particularly good, too.

我可以推荐Oreans的产品。他们的支持也特别好。

I also use Armadillo - which is ok, but I wouldn't recommend it anymore; and ASProtect, which I really wouldn't recommend at all.

我也使用犰狳 - 这没关系,但我不推荐它了;和ASProtect,我真的不会推荐。

#11


I'm Trial License Shield SDK, seem to be able to achieve the desired functionality.

我是Trial License Shield SDK,似乎能够实现所需的功能。

But it is a DLL, not you wish VCL Component.

但它是一个DLL,不是你希望VCL组件。

#1


I've used ICE License in the past. Tool was easy to use - which is good, as the support was shocking!

我过去曾使用过ICE许可证。工具很容易使用 - 这很好,因为支持是令人震惊的!

None of these types of products is perfect, but, if you've decided that this is the route you want to go, you could do worse than this product.

这些类型的产品都不是完美的,但是,如果您认为这是您想要的路线,那么您可能会比这个产品更糟糕。

#2


There is no effective way to lock down an application, period. You can make it more difficult for users to use the program without a valid license from you, at the risk of creating false negatives, which can become a PR nightmare very quickly in the Internet age.

没有有效的方法来锁定应用程序,期间。如果没有您的有效许可,您可能会使用户更难以使用该程序,从而有可能造成漏报,这可能会在互联网时代迅速成为公关噩梦。

There are two ways to go about doing this. You can create some sort of DRM lock built into the software. These take no time flat for some talented hacker to reverse-engineer. (The best tend to last about 1 month.) Or you can create a validation system that requires the program to connect to a server. These are a lot harder to crack, but tend to have serious false-negative problems, and if your server ever goes down, all your paying customers are up a creek. In the end, neither is a good solution.

有两种方法可以做到这一点。您可以在软件中创建某种DRM锁。对于一些有才华的黑客进行逆向工程,这些都没有时间。 (最好的约为1个月。)或者您可以创建一个验证系统,要求程序连接到服务器。这些更难以破解,但往往会出现严重的假阴性问题,如果您的服务器出现故障,您的所有付费用户都会瘫痪。最后,两者都不是一个好的解决方案。

Long story short, if you want to make a program that will be profitable, make it of high enough quality that people will be willing to pay for it, and market it to the people who are willing to buy software instead of steal it. There just aren't any shortcuts.

简而言之,如果你想制作一个有利可图的节目,那就让人们愿意支付它的高质量,并把它推销给愿意购买软件而不是偷软件的人。没有任何捷径。

#3


I created a "self-modifying" EXE by appending a data record to the end of my compiled application. The first thing my application did was get the machine id and the bios date from the computers memory. I would then compare these to the machine id and bios date stored in the appended data record. Seek to end... back up XX number of bytes... read to end.

我通过将数据记录附加到已编译的应用程序的末尾来创建“自修改”EXE。我的应用程序做的第一件事就是从计算机内存中获取机器ID和BIOS日期。然后,我将这些与存储在附加数据记录中的机器ID和BIOS日期进行比较。寻求结束...备份XX个字节...读取结束。

This worked great. If a buddy passed on a program to a friend and it didn't recognize the machine id or bios date and reverted back to trial-ware. When they entered the key successfully I would update the appended record with that machines user information.

这很有效。如果一个好友将一个程序传递给了一个朋友并且它没有识别机器ID或BIOS日期并且还原回到试用版。当他们成功输入密钥时,我会使用该机器用户信息更新附加记录。

Then Norton started flagging my software as a virus because it was a self-modifying EXE. That put a halt to my app locking days. I haven't tried since.

然后Norton开始将我的软件标记为病毒,因为它是一个自我修改的EXE。这让我的应用程序锁定了几天。从那以后我没有尝试过。

#4


I tend to agree that aggressive DRM is really bad and annoys legitimate users, but, at the same time, an incentive to keep honest people honest isn't bad either, provided it doesn't get in the way...

我倾向于认为积极的DRM非常糟糕并且会惹恼合法用户,但与此同时,保持诚实的人诚实的动机也不错,只要它不会妨碍...

Not a real component reference, but some interesting reading on protecting software:

不是真正的组件参考,而是一些关于保护软件的有趣读物:

anti-cracks tips:
Fravia's HOW TO PROTECT BETTER.
Pirate-Me-Not.

防裂技巧:Fravia如何保护更好。海盗-ME-没有。

reflections on Piracy and DRM:
Piracy and Unconventional Wisdom.
Piracy & PC Gaming.

关于盗版和DRM的思考:盗版与非常规智慧。盗版和PC游戏。

#5


I have used OnGuard by turbo power in several projects, but do not rely on it being the only method to protect the software. You can also use the LockBox library to encrypt data, such as a record stuffed in a database your app controls, containing license registration data that you emailed to the user and they applied via cut and paste into the about box.

我在几个项目中使用了Turbo power的OnGuard,但不要依赖它是保护软件的唯一方法。您还可以使用LockBox库来加密数据,例如填充在应用程序控制的数据库中的记录,其中包含您通过电子邮件发送给用户的许可证注册数据,并通过剪切和粘贴应用到about框中。

The strongest way to protect things is to have a piece that the user doesn't have access to, and have your software "call home" to validate that its still valid (very DRM like). Unfortunately, this is easy for anyone to block by turning on thier software firewalls and excluding your application from using the internet. Of course DRM like systems have a bad name right now, but its partly because they are a frustration point to the end user because they work... as long as the service which validates the license is up.

保护事物的最有效方法是拥有一个用户无法访问的部分,并让您的软件“回家”以验证其仍然有效(非常像DRM)。不幸的是,任何人都可以通过打开软件防火墙并将您的应用程序排除在互联网之外来轻松阻止。当然DRM之类的系统现在名声不好,但部分原因是它们对最终用户来说是一个令人沮丧的点,因为它们起作用......只要验证许可证的服务已经完成。

#6


Oreans has very good production products(Themida & WinLicense), and recommended more than other products.

Oreans拥有非常好的生产产品(Themida&WinLicense),并且推荐比其他产品更多。

#7


Having watched others have trouble in the past with third party licence & protection software, I think there is only one viable system. First, don't spend too much time on it, just make a good product, and update it often. Second, separate the install code from the protection. This way you can change the protection at the drop of a hat, without affecting any users. This basically means you have to write your own install code system, or use one like the old Turbopower one. Then use something that will protect your decoder a little. I currently use the Oreans Code Virtualizer which is quite sufficient.

看过别人在过去使用第三方许可和保护软件时遇到麻烦,我认为只有一个可行的系统。首先,不要花太多时间在上面,只需制作一个好产品,并经常更新。其次,将安装代码与保护分开。通过这种方式,您可以在不影响任何用户的情况下更改保护。这基本上意味着您必须编写自己的安装代码系统,或使用旧的Turbopower系统。然后使用能够保护解码器的东西。我目前使用的是Oreans Code Virtualizer,这已经足够了。

Keeping them separate gives you flexibility, and less hassle.

将它们分开可以提供灵活性,减少麻烦。

#8


I tend to prefer Armadillo from Silicon Realms (http://www.siliconrealms.com/). It has nice nice features and is integrated with Digital River/RegNow.com (being a subsidiary of them).

我倾向于选择Silicon Realms的Armadillo(http://www.siliconrealms.com/)。它具有很好的功能,并与Digital River / RegNow.com(作为它们的子公司)集成。

There are alot of Anti-Armadillo software available but custom builds a some additional prevention coded by you do magic.

有很多可用的Anti-Armadillo软件,但是自定义构建了一些额外的预防措施,由你做魔术。

#9


I also not believe that it's worth to spend a lot of time and energy in a tecnical protection, the people who want steal your software wil doe it anyway.

我也不相信花费大量时间和精力进行技术保护是值得的,那些想要窃取你的软件的人无论如何都会这样做。

Peldi Guilizzoni from Balsamiq have a nice blog post over this subject:

来自Balsamiq的Peldi Guilizzoni有一篇关于这个主题的好文章:

http://www.balsamiq.com/blog/?p=382

#10


I can second the recommendation for Oreans' products. Their support is particularly good, too.

我可以推荐Oreans的产品。他们的支持也特别好。

I also use Armadillo - which is ok, but I wouldn't recommend it anymore; and ASProtect, which I really wouldn't recommend at all.

我也使用犰狳 - 这没关系,但我不推荐它了;和ASProtect,我真的不会推荐。

#11


I'm Trial License Shield SDK, seem to be able to achieve the desired functionality.

我是Trial License Shield SDK,似乎能够实现所需的功能。

But it is a DLL, not you wish VCL Component.

但它是一个DLL,不是你希望VCL组件。