.net – 我将如何执行WPF Windows应用程序的许可

我开发了一个我想尝试和销售的小应用程序,但我不熟悉如何最好地去做.

>我将如何锁定程序进行试用1.
>我将如何处理接受付款?

记住,我是一个没有很多钱的单身乐队,我希望能够免费或低成本,有效,安全和简单地实施和维护的解决方案.这不是我有很多经验,因为我通常为公共部门开发,他们购买一个解决方案作为一个绅士,我们从来没有许可.

任何帮助真的将不胜感激.
谢谢,

我可以告诉你我该怎么做免责声明:您的里程可能会有所不同.这是为了防止一个简单的WinForms或WPF或其他桌面应用程序的偶然盗版.它不是特别强壮或防御复杂的破解,但它是一个伟大的工作,以防止休闲盗版.

>对于许可,我尝试了几个第三方解决方案.它们相当容易用于防止随意盗版的名义情况,这当然是唯一应该真正关心的盗版.
>我发现没有一个许可提供商真正兼容现有的支付处理器/网关.有一些“一体化”解决方案,但技术债务水平对我来说是不可接受的(自由职业者和独资开发商).我正在寻找一个简单的方式从网站上的“立即购买”链接,以在购买后解锁桌面软件.一些现有的“一体化”解决方案为此目的是过度的,有些忽略了“购买”方面.
>我最终使用Xml Digital Signatures使用应用程序的私钥对许可证文件进行签名,该密钥从未分发给用户.结果:您的目标机器上有一个.LIC或.LICX文件,用户可以读取(它是纯文本,除了被包围的签名),但不进行修改. (或者说,如果你不知道他们已经修改了它们,就不能修改它).这个小文件是整个系统的关键.
>当应用程序加载时,它会验证XML签名是否有效(使用与应用程序一起分发的应用程序的公钥),如果有效,它将从许可证文件中读取信息,并启用/禁用某些功能那.例如,您的许可证文件可能包含产品过期日期或几个独特的机器信息(请小心,始终不要为您的合法用户带来不便…您不希望他们重新申请许可证键每次他们改变一个硬盘驱动器).
>作为一个额外的(和稍微更有侵略性的)步骤,您可以让应用程序连接到您的服务器,尽管这会导致服务器停机问题等等.有些开发商愿意忍受这个,其他的不是.
>现在购买部分有很多选择.贝宝是最简单的.您可能喜欢或可能不喜欢他们的费率计划,但是与PayPal一起开始运行是绝对的契机.
>因此,您需要一个Premier或Business帐户,而不是一个个人帐户.注意:在Paypal文档中,有时候您需要一个Paypal Business帐户.每当他们说,他们实际上意味着“一个贝宝商业或总理帐户”.
>现在自己创建一个产品网站,并定制您的“立即购买”按钮等.当用户进行购买时,您的网站将从Paypal IPN收到通知,这是他们的通知服务.此ping只是调用您网站上定义的HTTP端点,并包含您要购买的所有信息.主要是用户的电子邮件
(好吧,我觉得我应该提到:Paypal和大多数其他合法的处理器都有一个“沙箱”,你可以在上线之前测试所有这些.想知道如何给你带来温暖的模糊,实际上,行)
>您将在购买后自动用户发送激活码,因此无需等待24小时即可手动发送代码.存储此激活码(在这种情况下可以是任何唯一的,难以猜测的数字,如GUID,经过精美化或者未经优化的),具有您将跟踪的用于检测重复代码的使用次数.
>用户通过您提供的屏幕将激活码输入软件.
>软件通过https联系服务器(这是仅当软件被解锁时才发生的一次性事件),并说:“这个用户只是给我有效的许可证代码?”
>如果提供的激活代码与销售时存储在数据库中的代码相匹配,并且激活码尚未被确认,那么成功!
>然后,服务器需要构建许可证文件,这是一个非常简单的XML或文本文件,其中包含“允许该软件的这个副本”.它不应该包含什么标准,只有少数约定.
>服务器使用应用程序的私钥对许可证文件进行签名,并将其作为数据流返回给应用程序…
>将其保存为.LIC或.LICX(或任何需要的扩展名)文件,然后根据步骤3检查加载时间.

这对我来说真的很好,这是一个实现的契机.整个事情的关键是简单的:相信那些XML DSigs.当LIC文件丢失时,认为试用模式.当sig被修改时,你切换到试用模式.只有当LIC文件存在,有效签名并包含正确的信息时,您(代码中)是否打开“完整”功能的访问权限.

此外,您的代码中还会插入多个许可证检查点.我在应用程序启动时执行一个操作,另一个在空闲状态,另一个在进入主要功能区域之前.所以如果有人反转代码,他们可以,他们至少要做一些搜索来排除所有的许可证检查.当然,你什么也不能做,可以阻止人们修补这些支票.你只是想让它变得更加困难.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Windows注册表操作基础代码 Windows下对注册表进行操作使用的一段基础代码Reg.h:#pragmaonce#include<assert.h>#include<windows.h>classReg{HKEYhkey;public:voidopen(HKEYroot
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的内容,在Windows环境下的黑客必须熟练掌握底层API编程。为了使读者对黑客常用的Windows API有个更全面的了解以及方便日后使用API方法的查询,特将这些常用的API按照7大分类进行整理如下,希望对大家的学习有所帮助。一
一个简单的Windows Socket可复用框架说起网络编程,无非是建立连接,发送数据,接收数据,关闭连接。曾经学习网络编程的时候用Java写了一些小的聊天程序,Java对网络接口函数的封装还是很简单实用的,但是在Windows下网络编程使用的Socket就显得稍微有点繁琐。这里介绍一个自己封装的一
Windows文件操作基础代码 Windows下对文件进行操作使用的一段基础代码File.h,首先是File类定义:#pragmaonce#include<Windows.h>#include<assert.h>classFile{HANDLEhFile;//文件句柄publ
Winpcap基础代码 使用Winpcap进行网络数据的截获和发送都需要的一段代码:#include<PCAP.H>#pragmacomment(lib,"wpcap.lib")//#pragmacomment(lib,"ws2_32.lib")#
使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看分析在Linux系统下开发的项目代码,我们知道Linux系统中文本文件默认编码格式是UTF-8,而Windows中文系统中的默认编码格式是Gb2312。系统内的编码格式有所区别倒无伤大雅,关键的是SourceInsigh...
缓冲区溢出攻击缓冲区溢出(Buffer Overflow)是计算机安全领域内既经典而又古老的话题。随着计算机系统安全性的加强,传统的缓冲区溢出攻击方式可能变得不再奏效,相应的介绍缓冲区溢出原理的资料也变得“大众化”起来。其中看雪的《0day安全:软件漏洞分析技术》一书将缓冲区溢出攻击的原理阐述得简洁
Windows字符集的统一与转换一、字符集的历史渊源在Windows编程时经常会遇到编码转换的问题,一直以来让刚接触的人摸不着头脑。其实只要弄清Win32程序使用的字符编码方式就清楚了,图1展示了一个Win32控制台项目的属性中的字符集选项。这里有两个不同的字符集:一个是Unicode字符集,另一个
远程线程注入引出的问题一、远程线程注入基本原理远程线程注入——相信对Windows底层编程和系统安全熟悉的人并不陌生,其主要核心在于一个Windows API函数CreateRemoteThread,通过它可以在另外一个进程中注入一个线程并执行。在提供便利的同时,正是因为如此,使得系统内部出现了安全
windows系统启动项怎么打开
win10系统文件夹的只读属性去不掉怎么办
windows.old可以删掉吗?
windows的网络功能主要通过什么来实现?
win10系统以太网不见了怎么办
win10安装cad缺少net组件怎么办
win10系统鼠标移动方向相反怎么办
如何ping局域网内所有IP
windows10的系统保留分区有什么用
win10系统无法删除账户怎么办
win10系统音频服务未响应怎么办