|
九.网络验证法现在有的人说网络验证法是最可靠,且是从未被破J过的加密方法。确实这种方法很难破J,因为注册码始终是在作者手上的,这样怎么去破J呀。
加密第10定理:一个好的网络验证法至今没有人能破J。
1.实现的原理网络验证法有些类似于网络游戏中的验证。
网络验证方法,即建立一个网络服务器程序,由软件作者自己保管,运行于服务器端,客户Duan通过编程放在共享软件中。客户所拿到的共享软件程序中带有客户Duan程序,当需要验证时,客户Duan的硬件码通过网络传送到服务器中,服务端程序将加密后的注册码通过网络传回给客户,客户软件中的客户Duan组件接收到后,在内存中解密进行判定,如果注册了就通过,否则就失败。作者的服务器端上保存了用户的注册码数据库,随时供验证之用。
在此可以避免以下被破J的事况:
首先,通过网络验证即使奸人拦截到了注册码,也是加密过的,如果去解密也很困难,并且服务器是由软件作者保管的,这样奸人可能始终接触不到注册码。或者他要去学习网络拦截也说不定。
其次可以预防暴力破J,软件作者可将重要数据直接放在服务器中,通过不停验证取得数据,从而被破J的客户Duan被暴力破J后立即成为无效软件。
再次,即使软件被破J了,软件的作者也可以较轻松地升级客户Duan程序,及升级服务器端的注册码数据库,从而减少破J造成的损失,让破J者阴谋失败。
最后,软件作者可以轻松看到监视客户Duan的使用情,如果发现有重复名称的验证,或不正常地取数据,就可以立即停止客户的使用。
2.存在的几个问题1.用户的程序必须是需要通过上网才能使用的,不上网,将不能验证,也不能使用。
2.软件作者必须要保证服务器的稳定,如果服务器死机或掉线,那么客户机将不能使用,因此也要具备一定的防攻J能力。服务器维护人员技术要求较高,要有一定的服务器反黑经验。
3.网络验证也不能一次全部验证,这样并不保险,需要分段进行验证。并且给予暗桩的设计。
4.可能存在客户太多,一个服务器接收不过来,需要两个以上服务器的情况,或就直接架设两个以上服务器,用于备用。现在的电信与网通经常打架,可考虑一个接电信网,一个架网通网,以备不时之需。
十.加密狗加密本文的目的是让大家了解加密狗,它并不是那样神密而可怕,大家一定要克服恐惧感哦。加密狗是个极其好用的工具,基本上如果用上一个好的型号的加密狗,可以为您省不少心,想想看吧,有一个技术团队在身后做支持呢。
易语言论坛上有人说:“不要花太多心思到加密上,而是要完善软件功能!”当然将心思放在加密上我也不想,这都是拜小人所赐呀。因此如果您想节约时间的话,只要买个好狗,加一个壳就可以了。
加密第11定理:如果您想不要花太多心思到加密上而想要一个很强的加密,加密狗是最好的选择。
说老实话,现在的狗都比以前好多了,以前还听说有狗被防制或模拟了,现在的狗呀,越做越好了。总之,大家放心用吧。
软件狗是一种智能型加密工具。它是一个安装在并口、串口等接口上的硬件电路,同时有一套使用于各种语言的接口软件和工具软件。当被狗保护的软件运行时,程序向插在计算机上的软件狗发出查询命令,软件狗迅速计算查询并给出响应,正确的响应保证软件继续运行。如果没有软件狗,程序将不能运行,复杂的软硬件技术结合在一起防止软件盗版。真正有商业价值得软件一般都用软件狗来保护。
平时常见的狗主要有“洋狗”(国外狗)和“土狗”(国产狗)。这里国外狗主要指美国的彩虹和以色列的HASP,国产狗主要有金天地(现在与美国彩虹合资,叫“彩虹天地”)、深思、尖石。总的说来,加密狗在软件接口、加壳、反跟踪等方面技术较好,基本上复制很困难。
1.加密狗的选用加密狗一般分为串口狗与USB加密狗。
串口即打印口,为16针口可以同进串接多个串口型加密狗。如下图所示:
现在也已有一种微型加密狗的推出:
USB口为直接插入USB接口,每个接口只能插一个。如下图所示:
从目前的资料来看,一般加密狗产商都想淘汰并口型的加密狗,而主推USB口的加密狗。一只USB加密狗的批发价现在大50元左右。
USB设备是专门为多设备连接而设计,有着严格的规范,从接口本身就避免了设备间的冲突。所以USB狗不会与遵守USB标准的设备有任何冲突。而因为并口只是为单设备工作设计的,很多并口设备并没有考虑与其它外设公用并口的情况,为降低成本,往往独占了并口资源,使得并口的其它设备不能正常工作。因此建议使用USB狗较好。
USB接口本身具有电源线,可为外设提供稳定的工作电源,从而对USB狗的工作电压、功耗等要求大大降低,加密狗的工作条件得到很大改善。而并口本身没有电源线,并口狗要依靠并口的信号线或数据线提供电源,所以在因并口负载能力低等情况下,并口狗的芯片因得不到正常供电很难保证正常工作。因此建议使用USB狗较好。
2.加密狗加壳法一般的加密狗软件都提供傻瓜加密工具:加壳工具。这种壳是针对加密狗进行的。
加密狗有内嵌和外壳两种加密方式。外壳加密就是对 exe 、 exp 、数据文件直接进行加密的方式;内嵌加密是在各个语言环境中直接以函数调用形式出现的加密方式。操作系统支持 Dos16/32 、Windows3x/9x/ME/NT/2000/XP 的各种版本,如有的狗提供有 37 种内嵌语言加密模块,四种外壳加密工具。
加壳式加密的软件运行界面与前述的普通壳的加密界面是类似的,也是要提交需要加密的原文件,然后会生成加密后的新文件,这个大家不认为太神密了。
内嵌一般采用供货商提供DLL,就是API调用,以达到调用加密模块的目的。各个狗的调用都不相同,一般会提供C语言或VB语言调用的实例,大家模仿这类程序即可。
有论坛人士说:“心思放太多到反破J上也不是一件好事啊!”,我觉得给别人破J了更不好,是吧!如果不想放太多心思在反破J上,建议还是采取加密狗加壳的办法,方便、快捷,其他时间就可以研究如何将软件完善就行了。因为有一个加密的团队在支持你呀。
3.加密狗写存储器法有的加密狗带有存储器,大小不一,有的是1024字节,这样大家也可以将一些重要的信息放在这里面。实际上您也可以将RSA的一些数据放在这里,以供程序双重检查。同样也是通过DLL调用的。
十一.加密算法策略(暗桩)本章所要讲述的是:加密不要拘泥于一种形式,要懂得变化之道,这样才能让破J者无从下手,这是我的软件加密之最精髓的一点。前文所说只是一些最基础的知识,大家还需要一点变通之法,加密方法越奇怪越好,变态一些也没有关系。看过《倚天屠龙记》的话,可以想想张三丰教张无忌太极拳时的那段对话,哈哈。
当然很多人喜欢暴破的,懒得研究写注册机,所以让他们多花费些时间,多浪费他们的生命,就要多打入一些暗桩,不要用简单的“如果”、“等于”判断,免得再精巧高深的加密算法成为华丽的摆设,破J与反破J是一场暗战,就算不能反破J,也要设计多一些迷局关卡,把破J者肥的拖瘦,把瘦的拖死,让他们痴迷、让他们上瘾、让他们欲罢不能,用代码吸光他们的精血。
1.易数据库密码怎么泻露了易语言论坛上个别用户说自己的数据库密码被别人知道了,那么我们看一下他是如何加数据库密码的,代码如下:
打开 (取运行目录 () + “\工资库.edb”, , , , , “K39DKEKD944”, )
好了,我们编译一下,编译成一个EXE文件,然后改文件后缀为TXT,这样我们就可以不用PE专业工具,而是直接用记事本打开了。
然后在记事本中搜索这个密码,大家看到了什么?看下图中反白的部分:
晕死,你这样编程,当然数据库密码会被别人知道了。
将前述代码改动一下,将密码分解为若干单个字符串,然后分别放于全局变量中定义一部分,再在程序集变量中放一部分,这样就不会有问题了。
如下面的试验,只改动一小部分:
口令 = “K” + 到文本 (13 × 3) + 字符 (68) + “K” + “E” + “K” + “D” + 到文本 (18 ÷ 2) +到文本 (22 + 22)
打开 (取运行目录 () + “\工资库.edb”, , , , , 口令, )
再按前述的查看方法,可以看到,数据库前后的密码被处理过的部分都看不到了,如下图所示:
大家应该明白了吧,如果上述代码全部处理好的话,一定不会让别人找到口令的。
实际上,对于重要的加密口令来说,都需要分开存放,并且用取字符,位移或取反的方法,以及加减乘除的方法都可以得到一个隐藏很深的字符串。
加密第12定理:相关加密的字符串一定要打乱加密。
作业1:制作一个“字符串搅乱器”,要求如下:输入一字符串或其他类型的内容,输出为经过“字符,取代码,取反,位或,位与,加减乘除,平方,开方”等命令随机配合相加的易语言源代码。界面基本如下:
作业2:制作一个内窥器,将你的密码或加密字存入,它可以自动分解,在编译好的EXE文件中查找是否有相同字符串。
这是自己用易语言制作的一个工具,怎么样,比专用的工具还要好用吧。
作业3:为了不给奸人创造温馨舒适的破J环境,我们要混乱我们的代码,将软件中所有的子程序名全部替换成随机生成的子程序名然后加上正常的备注。例如Func_3dfsa_fs32zlfv()这个函数是什么意思?恐怕只有天知道了。
可以用易语言写一个易语言“名称混乱器”,基本思路为:将易语言源代码复制为文本,然后用混乱器将名称一一对应进行混乱,然后粘贴回易语言中,这样子程序名称和变量名称等都变为不可预知的字符了,因此加强了保密性。但注意,只有当你要发布软件时才使用之,而且一定注意备份源代码。否则当你看不懂你自己的代码时可别怪我呀!
字符串位置内容 | 是否在EXE中找到 | 是否在资源骇客中找到 | 组件名称属性 | 可看到 | | 组件标记属性 | | | 组件内容属性 | | | 组件标题属性 | | | 菜单名称 | | | 组件列表项目属性 | 可看到 | | 全局变量名称 | 看不到 | | 全局变量值内容 | | | 程序集变量名称 | | | 程序集变量值内容 | | | 局部变量名称 | | | 局部变量值内容 | | | 常量名称 | | | 常量值内容 | 可看到 | | 自定义数据类型名称 | | | DLL命令名称 | 可看到 | | DLL库文件名 | | | 在DLL库中对应命令名 | | | DLL参数名 | | | 图片资源名称 | | | 声音资源名称 | | | 程序集名称 | | | 子程序名称 | | | 子程序参数名称 | | | 子程序变量名称 | | | 模块引用名称 | | | 过滤器内容 | 可看到 | | 信息框文本 | 可看到 | |
|
|