加密第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.实现的原理
网络验证法有些类似于网络游戏中的验证。
网络验证方法,即建立一个网络服务器程序,由软件作者自己保管,运行于服务器端,客户端通过编程放在共享软件中。客户所拿到的共享软件程序中带有客户端程序,当需要验证时,客户端的硬件码通过网络传送到服务器中,服务端程序将加密后的注册码通过网络传回给客户,客户软件中的客户端组件接收到后,在内存中解密进行判定,如果注册了就通过,否则就失败。作者的服务器端上保存了用户的注册码数据库,随时供验证之用。
在此可以避免以下被破解的事况:
首先,通过网络验证即使奸人拦截到了注册码,也是加密过的,如果去解密也很困难,并且服务器是由软件作者保管的,这样奸人可能始终接触不到注册码。或者他要去学习网络拦截也说不定。
其次可以预防暴力破解,软件作者可将重要数据直接放在服务器中,通过不停验证取得数据,从而被破解的客户端被暴力破解后立即成为无效软件。
再次,即使软件被破解了,软件的作者也可以较轻松地升级客户端程序,及升级服务器端的注册码数据库,从而减少破解造成的损失,让破解者阴谋失败。
最后,软件作者可以轻松看到监视客户端的使用情,如果发现有重复名称的验证,或不正常地取数据,就可以立即停止客户的使用。
2.存在的几个问题
1.用户的程序必须是需要通过上网才能使用的,不上网,将不能验证,也不能使用。
2.软件作者必须要保证服务器的稳定,如果服务器死机或掉线,那么客户机将不能使用,因此也要具备一定的防攻击能力。服务器维护人员技术要求较高,要有一定的服务器反黑经验。
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语言调用的实例,大家模仿这类程序即可。
有论坛人士说:“心思放太多到反破解上也不是一件好事啊!”,我觉得给别人破解了更不好,是吧!如果不想放太多心思在反破解上,建议还是采取加密狗加壳的办法,方便、快捷,其他时间就可以研究如何将软件完善就行了。因为有一个加密的团队在支持你呀。
3.加密狗写存储器法
有的加密狗带有存储器,大小不一,有的是1024字节,这样大家也可以将一些重要的信息放在这里面。实际上您也可以将RSA的一些数据放在这里,以供程序双重检查。同样也是通过DLL调用的。
十一.加密算法策略(暗桩)
本章所要讲述的是:加密不要拘泥于一种形式,要懂得变化之道,这样才能让破解者无从下手,这是我的
软件加密之最精髓的一点。前文所说只是一些最基础的知识,大家还需要一点变通之法,加密方法越奇怪越好,变态一些也没有关系。看过《倚天屠龙记》的话,可以想想张三丰教张无忌太极拳时的那段对话,哈哈。
当然很多人喜欢暴破的,懒得研究写注册机,所以让他们多花费些时间,多浪费他们的生命,就要多打入一些暗桩,不要用简单的“如果”、“等于”判断,免得再精巧高深的加密算法成为华丽的摆设,破解与反破解是一场暗战,就算不能反破解,也要设计多一些迷局关卡,把破解者肥的拖瘦,把瘦的拖死,让他们痴迷、让他们上瘾、让他们欲罢不能,用代码吸光他们的精血。
1.易数据库密码怎么泻露了
易语言论坛上个别用户说自己的数据库密码被别人知道了,那么我们看一下他是如何加数据库密码的,代码如下:
打开 (取运行目录 () + “\工资库.edb”, , , , , “K39DKEKD944”, )
好了,我们编译一下,编译成一个EXE文件,然后改文件后缀为TXT,这样我们就可以不用PE专业工具,而是直接用记事本打开了。
然后在记事本中搜索这个密码,大家看到了什么?看下图中反白的部分:
晕死,你这样编程,当然数据库密码会被别人知道了。
将前述代码改动一下,将密码分解为若干单个字符串,然后分别放于全局变量中定义一部分,再在程序集变量中放一部分,这样就不会有问题了。
如下面的试验,只改动一小部分:
口令 = “K” + 到文本 (13 × 3) + 字符 (68) + “K” + “E” + “K” + “D” + 到文本 (18 ÷ 2) + 到文本 (22 + 22)
打开 (取运行目录 () + “\工资库.edb”, , , , , 口令, )
再按前述的查看方法,可以看到,数据库前后的密码被处理过的部分都看不到了,如下图所示:
大家应该明白了吧,如果上述代码全部处理好的话,一定不会让别人找到口令的。
实际上,对于重要的加密口令来说,都需要分开存放,并且用取字符,位移或取反的方法,以及加减乘除的方法都可以得到一个隐藏很深的字符串。
加密第12定理:相关加密的字符串一定要打乱加密。
作业1:制作一个“字符串搅乱器”,要求如下:输入一字符串或其他类型的内容,输出为经过“字符,取代码,取反,位或,位与,加减乘除,平方,开方”等命令
随机配合相加的易语言源代码。界面基本如下:
作业2:制作一个内窥器,将你的密码或加密字存入,它可以自动分解,在编译好的EXE文件中查找是否有相同字符串。
这是自己用易语言制作的一个工具,怎么样,比专用的工具还要好用吧。
作业3:为了不给奸人创造温馨舒适的破解环境,我们要混乱我们的代码,将软件中所有的子程序名全部替换成随机生成的子程序名然后加上正常的备注。例如Func_3dfsa_fs32zlfv()这个函数是什么意思?恐怕只有天知道了。
可以用易语言写一个易语言“名称混乱器”,基本思路为:将易语言源代码复制为文本,然后用混乱器将名称一一对应进行混乱,然后粘贴回易语言中,这样子程序名称和变量名称等都变为不可预知的字符了,因此加强了保密性。但注意,只有当你要发布软件时才使用之,而且一定注意备份源代码。否则当你看不懂你自己的代码时可别怪我呀!
字符串位置内容 |
是否在EXE中找到 |
是否在资源骇客中找到 |
组件名称属性 |
可看到 |
|
组件标记属性 |
|
|
组件内容属性 |
|
|
组件标题属性 |
|
|
菜单名称 |
|
|
组件列表项目属性 |
可看到 |
|
全局变量名称 |
看不到 |
|
全局变量值内容 |
|
|
程序集变量名称 |
|
|
程序集变量值内容 |
|
|
局部变量名称 |
|
|
局部变量值内容 |
|
|
常量名称 |
|
|
常量值内容 |
可看到 |
|
自定义数据类型名称 |
|
|
DLL命令名称 |
可看到 |
|
DLL库文件名 |
|
|
在DLL库中对应命令名 |
|
|
DLL参数名 |
|
|
图片资源名称 |
|
|
声音资源名称 |
|
|
程序集名称 |
|
|
子程序名称 |
|
|
子程序参数名称 |
|
|
子程序变量名称 |
|
|
模块引用名称 |
|
|
过滤器内容 |
可看到 |
|
信息框文本 |
可看到 |
|
2.利用吴氏加密算法
我们将吴涛在易语言中提供的自有加密算法称之为吴氏算法。
吴涛提供了两种加自有加密算法:一种是易数据库的加密。还有一种是配置菜单中的易语言源代码口令保护。易语言的易用性就在这里了,大家一定要充分利用这些现成的东西。
使用易语言自带的易数据库的加密功能目前是非常可靠的,这是吴涛研制的自有算法,目前还没有破解易数据库的工具推出。这样就使得一些重要的东西存放在加密后的易数据库中十分安全。
易语言源代码口令保护也是一个吴涛自有算法,加密后的源代码连易语言公司也不能解密。因此我一般用它保护注册机和商业程序,所以我的注册机和商业程序的源代码在我用过的每台电脑中都有,但口令只有我知道,没有口令保证打不开,哈哈。
下图为使用配置菜单后弹出的窗口,大家可以为易语言源代码加上保护口令。
3.海岛挖宝
听过海盗船长的故事吧,故事中海盗将宝物分开存放,这样即使找到一处其他地方也没有损失,而且不仅如此,他们也将藏宝图也分成一块一块的存放。
金庸鹿鼎记的小说总看过吧,皇帝将藏宝图分八册存放,一一找到是非常困难的哦。韦小宝这个天才也花了两三年的时间才找到全部哦。
软件中一些比较重要的文本型字符的保护也是这样,你可以分开位置存放,分段、分开类型存放,用时再转换数据类型。分开存放是指
分不同的全局变量、程序集变量与局部变量存放。
加密第13定理:相关加密的部分一定要分开存放。
对于RSA验证也要这样不要一次性地全部验证了,这样一点意义也没有。应该是软件启动时验证一部分,在软件运行中验证一部分。
在Debug的手册里可以看到Debug工具的局限:第一个局限是只能下4个内存区域的断点,每个断点不能控制超过两个字节,这样内存断点不能控制超过16个字节的区域。
假设你的注册部分有300行,你可以分成30个子程序调用或重复的子程序。放一些垃圾代码也不会损失什么。
作业:将RSA验证的一次性验证改为分三次验证,并且每次返回不同的数据类型。
4.随机验证
随机验证很重要,例如你的一处验证是一直存在的,奸人就很容易地下断点跟踪了。因此在软件启动时进行一次正常验证外,其他情况下的验证最好是随机的,用30分之一或50分之一的机会进行验证,这样奸人会不停地试你的软件在哪一处进行了验证,因此破解的时间会相当地长。
加密第14定理:足够多的随机验证足以让破解者累死。
随机验证包括随机进入不同的验证子程序。
或随机中的最大数大一些,只有30分之一的机会验证。
或在窗口中放上一些颜色与底图一样的图片框,这样奸人不一定会点击这里,但用户万一点中了,就会触发验证。
我们假设所有软件都能被破解,包括易语言在内,那么如果他破解的速度跟不上你发布新软件的速度,那么他永远在破最新版而累死。或者说他破解的时间比你写一个软件的代价大,这时还不如他直接写这个软件来得合算。
反破解的任务之一就是让奸人累死,或浪费他的生命。
下面的办法也可以使用:你可以在读到待验证的注册码、公钥、注册文件后,通过定义10000个数组,存入上述同样的内容以备以后进行验证,这最多浪费一些内存。验证时随机使用其中的一个进行验证,由于奸人不知你用的是数组中的哪一个进行的比对,而且是随机的,每次验证的值都不一样,不让奸人吐血才怪呢。
计次循环首(10000,计次)
数组[计次] = “123456” ’ 复制一万个公开注册码或公钥,破解者知道也无所谓。
计次循环尾
数组[取随机数(1,10000)]
你不要立刻检查注册码,10000份拷贝你只要以后随机找一份用就行了,破解的人不知道你正在用的是那一个,同时你可以事先编好且运行时不断使用一些假的读取注册码数组的调用干扰破解者。这种方法对程序的性能影响微不足到,只是浪费一点内存。因为Debug对内存下断点的局限,这种情况他要下断点,累死的就是破解的人了。
5.不同权限验证
在启动时进行一次验证是非常必要的,这样让奸人知道确实是验证了,以让他心理放松警惕,而这次的验证只是一部分验证,并没有完全验证。
还有的建议在启动时将注册信息读入后不要进行验证,保不定在哪里进行验证,个人认为这样让破解者提高了警惕性,会认为软件作者很有经验。麻痹敌人也很重要呀。
例如,在启动时验证通过一次,验证级别加强一级,然后再在其他的地方再进行验证就可以了。
下面代码是确认了一个级别
计次循环首(到数值(验证1),)
已注册 = 1
计次循环尾()
……
……
在另一个触发子程序中再通过这个级别再验证:
计次循环首(已注册)
计次循环首(到数值(验证2),)
已注册 = 2
跳出循环()
计次循环尾()
跳出循环()
计次循环尾()
在其他触发子程序中再通过这个级别再验证:
计次循环首(已注册)
计次循环首(到数值(验证3),)
已注册 =3
跳出循环()
计次循环尾()
跳出循环()
计次循环尾()
有时也可以将级别降一降,怎么降,当然是不考虑级别直接验证了:
6.忽悠型的垃圾验证代码
前面已讲过花指令的原理,在程序中人为地再放一些垃圾代码以忽悠奸人也是一个好办法。垃圾代码就是一些假的验证代码,基本上是明文的,这样的代码上百上千,足以让奸人累死。
其实对付那些“根据跳转指令的爆破”高手来说,一个办法就够他们头疼的了,就是你在程序中不明显加入与判断是否正版有关的语句,也不做任何提示,以免让他们顺藤摸瓜,而是在判断为盗版后,跳转到另一个看似很合理的分支,而那个分支和正版的分支代码差不多,只是在计算公式或其它算法上稍动一下,使其运算结果不正确,这样,他们就在机器码级别上就分不清哪个是对的,哪个是错的了,即使他们认为破解成功,其实运行时,得的结果错误百出,他们就没兴趣了,呵呵,算损的吧!!!
加密第15定理:大量添加垃圾代码虽然是无奈之举,但很管用。
作业1:制作一个常量迷幻器
要求:制作一个常量代码自动生成器。可随机生成成百上千个易语言源代码形式,可直接拷贝到易语言中成为常量。变量也可以这样制作。
写好这样一个程序后,就可以自动生成垃圾代码,然后复制,粘贴到易语言的常量表中即可。如下图所示:
变量也可以这样生成,不过生成的变量可以任意拷贝为全局变量,或程序集变量,或局部变量。制作时的名称可以为中文名称,直接编译后不会在EXE文件中找到同名的中文名称。因此您可以放心地将这些名称定义为:“垃圾常量1”、“垃圾变量1”等等以示与正常代码进行区别。
作业2:制作一个代码迷乱器
本次作业性质同上,也是自动生成易语言的一些无用垃圾代码,以迷乱奸人的破解,让他找到的全是垃圾代码,从而大大延长了破解时间。
通过直接拷贝编辑框中的内容,粘贴到您的代码中,可自动完成任务,如下图所示:
上图所生成的是一些明文的加密方法的垃圾代码,让奸人去研究这些垃圾吧。
上述子程序名称最好也有时调用一下,反正不会真正产生作用的,用多线程调用最好。
或者您平时注意多收集一些别人用于加密时的子程序,拷贝到一个易语言程序中,保存,这样的代码作为垃圾代码放在你有用的程序中,虽然增加了一些程序的体积,但安全性是大大提高了。并且基本上没有牺牲软件性能与稳定性。
(非特殊说明,本文版权归万捷网络所有,转载请注明出处 )
万捷网络验证系统致力于打造最强网络验证系统,为用户带来更好的使用体验。
欢迎访问投稿!
想用手机访问万捷网络么?请用手机扫描二维码快速访问!