这样作者就可以很轻松地得到注册码,然后将这个注册码发给用户用于注册了。 上述只是在一个理想的状态中实现的, 即没有奸人对你的软件进行破解。 如果奸人看上 了你的软件,只靠这么简单的方法,那么一定会吃大亏的。因此大家在注册码生成的计算上 要想尽一切办法使之复杂化,如:采用位异,采用加上计算数值,采用??有些办法将在后 面章节中进行介绍。
2. RSA 算法注册
不管采用签名、盖章和按指印中的哪种方式“签署”法律文本,目的只有两个:一是确认身份,二是判断意愿,从这两点来说,签名和按手印相结合是最佳方式。除了图像和文本,您现在还可以绘制您的签名,将其添加到您的数字身份,并用它来签署文档。ecdhe就是比较典型的ecdhe了,和tls用法一样:双方都持有一对长期使用的签名密钥对,并拥有对方的签名公钥,然后分别生成一对临时ecdh密钥,用自己的签名私钥签署ecdh公钥,把得出的签名和ecdh公钥发给对方, 双方收到对方的ecdh公钥后,验证签名,通过后用对方的ecdh公钥和自己的ecdh私钥协商出共享密钥。
答:引用吴涛的《绝句》是位了说明“倒春寒”的现象,而引用后者则是为了说明“倒春寒”造成的灾害。先要弄清引用吴涛的《绝句》是说明什么,引用萧立的《春寒叹》是说明什么。4. 引用吴涛的《绝句》是为了说明“倒春寒”的现象,,后引用萧立的《春寒叹》是为了说明“倒春寒”造成的灾害。
RSATool 2.14工具软件使用指南: (软件下载地址: )
为了生成符合要求的随机 RSA 密钥,请类似如下操作:
1、在“ Number Base”组合框中选择进制为 10 ; 2、单击“ Start”按钮,然后随意移动鼠标直到提示信息框出现,以获取一个随机数; 3、在“ KeySize(Bits)”编辑框中输入 32; 4、单击“ Generate”按钮生成; 5、复制“ Prime(P)”编辑框中的内容到“ Public Exp.(E)”编辑框; 6、在“ Number Base”组合框中选择进制为 16 ;
7、记录下“ Prime(P)”编辑框中的十六进制文本内容。 8、再次重复第 2步; 9、在“ KeySize(Bits)”编辑框中输入您所希望的密钥位数,从 32到 4096,位数越多安全 性也高,但运算速度越慢,一般选择 1024位足够了; 10、单击“ Generate”按钮生成; 11、单击“ Test”按钮测试,在“ Message to encrypt”编辑框中随意输入一段文本,然后单 击“ Encrypt”按钮加密,再单击“ Decrypt”按钮解密,看解密后的结果是否和所输入的一 致,如果一致表示所生成的 RSA 密钥可用,否则需要重新生成; 12、到此生成完成,“ Private Exp.(D)”编辑框中的内容为私钥,第 7步所记录的内容为公 钥,“ Modulus (N)”编辑框中的内容为公共模数,请将上述三段十六进制文本保存起来即 可。
③一个简单的 RSA 注册机 例如:我们已通过上述 RSA 工具得到以下三个变量:
公钥: 20063 私钥: 7F638275AF6B27AFD040FED32A 941D227154ECDE37ABFF73D72DB50F 9FC70C 75BC3AF0EC26016BC706D953A 9C 5D6831E0DDD27B42A 182CB92A 6E426693511E42EB0BF9D64459809D5EC305E13B2A 85BA004BA934232305D3DA1205E7AD1D01744BBCF286B23D64CC68371FDD39DAA4386 1920DA3DE5F 9335A 77983BFD08A 83 公共模数: CEB774FCCE9DB84A 4452A 0774264FC55F 35A 8D8AA9D1FC5EBD3E0880B7B62A 4EF834FD6E855CD84A 4D04F 3BBDE32180FC3EE45AB5582C 2320A 6575C 6ECF923A 24EAF59F 22F 930631347E0E3B0477A 89FCE22FE741F 5053EC5320AAF6489C07056361F 01E031A 02DB52CB0CBDFBB11F 72C 340354C 6CAB78D97630EB8A 6A 5431 初始化代码如下:
注册窗口设计界面如下:
注册按钮代码如下:
上面的程序窗口插在用户的程序中,当需要注册时即弹出注册。 作者手中的注册机软件界面如下: (注意保密)
生成按钮代码如下: (注意保密)
上述程序已在易语言 4.0中运行通过。运行抓图如下所示:
加密第 7定理: RSA 算法虽然很强,但弱在钥匙文件如何保密上。
④算法实现中的注意事项 上述代码中取硬件码的命令没有采用重复取, 而只取了一次, 在实际操作中需要正规地 多取几次,获取硬件码失败也要作相应的默认处理。并且硬件码好要转换为另一串字符串。 上述代码中所有字串均未作分解处理,实际编程中需要分解,且分别隐藏到程序各处。 最好也加上密。 上述代码中注册码文本较长, 可直接读取一个文本文件进行比较。 即生成的注册码存在 一个文本文件中,在点击注册按钮后,直接找这个文本文件的内容进行对比。文本文件的文 件名可以是硬件号的名称。 上述是基本算法演示,其中的注册算法还可以再进行加工,变得更复杂一些。 上述中注有(注意保密)字样的代码与程序需要软件作者严格保密,不对外公开。
大家再看一个易语言大奖赛获奖作品: “家电维修”的例子, 大家也可以在易语言新建 窗口中找到这个程序,看看注册窗口的代码吧,如果您按这样的做法去发布软件,会有什么 安全性可言呢。
⑤设计 RSA 的变形算法 重要提示:上述是对 RSA 整体进行一次性验证,虽说 RSA 是一个非常强的加密算法, 但是这样的算法太简单,很容易被破解,那么需要通过以下的方法进行变形。以下所举的例 子只是一个参考,你自己的方法越古怪越变态越好。 例如,可以采用分解 RSA 算法,每次只验证一小部分,以保证在程序的各个地方进行 不同种类的验证,返回的值有的可设计为数值型,有的可设计为逻辑形,以利于在程序中不 同地方调用,调用后可以根据数据进行运算,如果是破解版,那么使用破解版的人得出的结 果一定是错误的。采用双 RSA 密匙、多 RSA 码也是个好办法,但最好两者之间再混合一 下,采用 RSA 与数值计算支持库混合的方法可以加强加密强度。 另外,密匙字串需要分开存放,全局变量中放一些,程序集变最中放一些,局部变量中 放一些,常量中放一些,字符串一定要打乱,不可存为一个变量中,还可以 RSA 之上再加
密,如 RSA 密钥是加密格式的,验证完后立即清变量??要注意的事项还是很多,一定要 考虑周密一些,即要达到加密的目的,也不要太复杂了,以免自己也被搞糊涂了。如果有错 误,误将正版用户当盗版用户对待就不太好了。
3.数值计算支持库
易语言提供的数值计算支持库很有特色, 其特点就是可以计算任意位数, 因此大家可以 根据这个特性来制作加密算法, 考虑到奸人如果制作一个注册机就必须去研究易语言, 及了 解了易语言的数值计算支持库后才能去破解,但即使这样,也不能轻松就能写出注册机,试 想一下, 数值计算支持库本身就花了很长时间写出, 因此奸人们是无论如何也是制造不出注 册机的。并且一般来说,奸人如果出注册机,一般都希望文件小一些,从而也不会用易语言 写注册机程序,一般采用 C 语言写,即使写了也要带上很大的系统支持库与数值计算支持 库,太累了吧,哈哈。 在此建议的是将 RSA 算法与数值计算支持库相结合的办法,这样的注册机基本上就不 会再有了, 只要防止内存注册机出现即可。 内存注册机的防止可以通过不进行判断的方式解 决。而防止暴力破解是通过对软件加壳后,在外部 CRC 验证保证程序完整性,程序内部再 多重检查,加上几个暗桩,这样通过层层把关,最终就可以确保万无一失了。

由于 PE 文件格式的局限性,任何加密程序都有可能被破解,我们所要做的仅仅是加强 加密的复杂度,让奸人知难而退,耗费他们的时间与精力,浪费他的时间就是在杀他。 八.给奸人一些教训 实际上,我们的用户已区分为以下四种人:共享试用者、正版注册者、破解使用者、破 解版使用者。 当我们需要给破解者一些教训时,一定要将正常用户区分开,否则正常用户有所损失, 那么就根本不会来购买您的软件,您的声誉也会下降的。
1.给破解者的教训
有句名言:“软件很生气,后果很严重!”。 给破解者的教训要深刻一些,最好让他刻骨铭心,永世不忘。 对于一个破解新手来说,很草率地去破解一个成熟的软件,对他来说是灾难的开始,给 破解者制造麻烦,让破解者知难而退是一件有乐趣的事。这事一定不要忘记做哦,否则我这 文章就白写了。 但最好不要在软件中写有辱骂破解者的话, 这样会将奸人狗急跳墙了, 反过来会非常强 烈地一定要破解你,反而得不偿失,技术上的比拼是正当的,人格侮辱就不太好了。 一个通常的教训如下:
但如果你想变态地去教训奸人, 那么我也没有办法阻止你了, 毕竟你已在授权文件中警 告过用户不要乱动你的东西了。哈哈。 有时候,奸人是使用的虚拟机,你重启、死机什么的都对他有影响,唯一他比较可怜的 就是硬盘中的一些资料了。 下面是将文件删除到回收站,及清空回收站的代码:
2.给破解版使用者的教训
上面是对于奸人的教训,但对于一般破解使用者来说,也要给予配当的惩罚,但不能太 过严厉,不能对他们的机器造成严重破坏。一般来说给予一次会,数据错误,或设置 一些小损失即可。 常见的有以下,其他的请你根据你自己软件的内容进行适当的创意吧。 第 1种:建议发现是破解版使用者在用时,可为你的软件加一些贴面广告,这样您会有 一些收益,以补充你的一些损失。 第 2种:将一些数据搞错了,而且是非常明显的错误,让他有些损失。 第 3种:建议开始一段时间让他正常用,查明破解版使用者如果保存较多的内容,说明 他很在乎经常使用你这个软件,并且认为破解正常,已可以正常使用了,这时等他的数据量 大时,将锁定,他一定欲哭无泪,只好请你帮他解锁,购买您的软件了。 易表的作者就是用这种方法。 实际上这是一种暗桩操作, 即在发布几个月后再检查是否是正版, 或在存储到一 定时间后再检查是否是正版用户,这样的加密方法值得大家学习。 可能您很生气,想让破解版使用者得不到好的下场,最好不要删除重要数据。且我个人 是不建议大家删除有用的数据的,毕竟这些都是国家的财富。 加密第 8定理:加密的结果是双赢才行,用户真正认识到了来注册,同时也能用上正 版了。
3.行为不要过火
作者给奸人一些教训是正当的, 可是软件会存在 BUG, 写加密程序也会有 BUG 存在。 如果将正版用户的数据损坏了就不太好了,毕竟大家还是要靠口碑生存的。即使您是对的, 但如果盗版用户多,那么如果太严厉了,就没有人敢用你的软件了。 如江民事件,就是前车( JU)之鉴。 如果您能搞出一个即让破解者假象破解,为你作宜传,而又能争取到用户,那样是最皆 大欢喜的了。易表就是一个例子,他的软件表面上被破解了,但实际上还存在暗桩,结果用 了一段时间后,用户的重要数据被锁定了,只能乖乖注册。 加密第 9定理:口碑好的软件才能传播得更广。 九.网络验证法 现在有的人说网络验证法是最可靠, 且是从未被破解过的加密方法。 确实这种方法很难 破解,因为注册码始终是在作者手上的,这样怎么去破解呀。 加密第 10定理:一个好的网络验证法至今没有人能破解。
1.实现的原理
网络验证法有些类似于网络游戏中的验证。
网络验证方法,即建立一个网络服务器程序,由软件作者自己保管,运行于服务器端, 客户端通过编程放在共享软件中。 客户所拿到的共享软件程序中带有客户端程序, 当需要验 证时, 客户端的硬件码通过网络传送到服务器中, 服务端程序将加密后的注册码通过网络传 回给客户, 客户软件中的客户端组件接收到后, 在内存中解密进行判定, 如果注册了就通过, 否则就失败。作者的服务器端上保存了用户的注册码,随时供验证之用。 在此可以避免以下被破解的事况: 首先,通过网络验证即使奸人拦截到了注册码,也是加密过的,如果去解密也很困难, 并且服务器是由软件作者保管的, 这样奸人可能始终接触不到注册码。 或者他要去学习网络 拦截也说不定。 其次可以预防暴力破解, 软件作者可将重要数据直接放在服务器中, 通过不停验证取得 数据,从而被破解的客户端被暴力破解后立即成为无效软件。 再次,即使软件被破解了,软件的作者也可以较轻松地升级客户端程序,及升级服务器 端的注册码,从而减少破解造成的损失,让破解者阴谋失败。 最后,软件作者可以轻松看到监视客户端的使用情,如果发现有重复名称的验证,或不 正常地取数据,就可以立即停止客户的使用。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-106488-4.html
美国佬就不会说什么航行自由了
到我们家门口来挑衅
这就是教授水平