易语言反破解教程说信息框用自定义窗口就是自己新建窗口,请问新建窗口怎么做到程序等待或者系统等待效果

易语言反破解教程说信息框用自定义窗口就是自己新建窗口,请问新建窗口怎么做到程序等待或者系统等待效果,第1张

4.随机验证

随机验证很重要,例如你的一处验证是一直存在的,奸人就很容易地下断点跟踪了。因此在软件启动时进行一次正常验证外,其他情况下的验证最好是随机的,用30分之一或50分之一的机会进行验证,这样奸人会不停地试你的软件在哪一处进行了验证,因此破解的时间会相当地长。

加密第14定理:足够多的随机验证足以让破解者累死。

随机验证包括随机进入不同的验证子程序。

或随机中的最大数大一些,只有30分之一的机会验证。

或在窗口中放上一些颜色与底图一样的图片框,这样奸人不一定会点击这里,但用户万一点中了,就会触发验证。

我们假设所有软件都能被破解,包括易语言在内,那么如果他破解的速度跟不上你发布新软件的速度,那么他永远在破最新版而累死。或者说他破解的时间比你写一个软件的代价大,这时还不如他直接写这个软件来得合算。

反破解的任务之一就是让奸人累死,或浪费他的生命。

下面的办法也可以使用:你可以在读到待验证的注册码、公钥、注册文件后,通过定义10000个数组,存入上述同样的内容以备以后进行验证,这最多浪费一些内存。验证时随机使用其中的一个进行验证,由于奸人不知你用的是数组中的哪一个进行的比对,而且是随机的,每次验证的值都不一样,不让奸人吐血才怪呢。

计次循环首(10000,计次)

数组[计次] = “123456” ’ 复制一万个公开注册码或公钥,破解者知道也无所谓。

计次循环尾

数组[取随机数(1,10000)]

你不要立刻检查注册码,10000份拷贝你只要以后随机找一份用就行了,破解的人不知道你正在用的是那一个,同时你可以事先编好且运行时不断使用一些假的读取注册码数组的调用干扰破解者。这种方法对程序的性能影响微不足到,只是浪费一点内存。因为Debug对内存下断点的局限,这种情况他要下断点,累死的就是破解的人了。

5.不同权限验证

在启动时进行一次验证是非常必要的,这样让奸人知道确实是验证了,以让他心理放松警惕,而这次的验证只是一部分验证,并没有完全验证。

还有的建议在启动时将注册信息读入后不要进行验证,保不定在哪里进行验证,个人认为这样让破解者提高了警惕性,会认为软件作者很有经验。麻痹敌人也很重要呀。

例如,在启动时验证通过一次,验证级别加强一级,然后再在其他的地方再进行验证就可以了。

下面代码是确认了一个级别

计次循环首(到数值(验证1),)

已注册 = 1

计次循环尾()

……

……

在另一个触发子程序中再通过这个级别再验证:

计次循环首(已注册)

计次循环首(到数值(验证2),)

已注册 = 2

跳出循环()

计次循环尾()

跳出循环()

计次循环尾()

在其他触发子程序中再通过这个级别再验证:

计次循环首(已注册)

计次循环首(到数值(验证3),)

已注册 =3

跳出循环()

计次循环尾()

跳出循环()

计次循环尾()

有时也可以将级别降一降,怎么降,当然是不考虑级别直接验证了:

6.忽悠型的GHOFFICE过滤词语验证代码

前面已讲过花指令的原理,在程序中人为地再放一些GHOFFICE过滤词语代码以忽悠奸人也是一个好办法。GHOFFICE过滤词语代码就是一些假的验证代码,基本上是明文的,这样的代码上百上千,足以让奸人累死。

其实对付那些“根据跳转指令的爆破”高手来说,一个办法就够他们头疼的了,就是你在程序中不明显加入与判断是否正版有关的语句,也不做任何提示,以免让他们顺藤摸瓜,而是在判断为盗版后,跳转到另一个看似很合理的分支,而那个分支和正版的分支代码差不多,只是在计算公式或其它算法上稍动一下,使其运算结果不正确,这样,他们就在机器码级别上就分不清哪个是对的,哪个是错的了,即使他们认为破解成功,其实运行时,得的结果错误百出,他们就没兴趣了,呵呵,算损的吧!!!

加密第15定理:大量添加GHOFFICE过滤词语代码虽然是无奈之举,但很管用。

作业1:制作一个常量****器

要求:制作一个常量代码自动生成器。可随机生成成百上千个易语言源代码形式,可直接拷贝到易语言中成为常量。变量也可以这样制作。

写好这样一个程序后,就可以自动生成GHOFFICE过滤词语代码,然后复制,粘贴到易语言的常量表中即可。如下图所示:

变量也可以这样生成,不过生成的变量可以任意拷贝为全局变量,或程序集变量,或局部变量。制作时的名称可以为中文名称,直接编译后不会在EXE文件中找到同名的中文名称。因此您可以放心地将这些名称定义为:“GHOFFICE过滤词语常量1”、“GHOFFICE过滤词语变量1”等等以示与正常代码进行区别。

作业2:制作一个代码迷乱器

本次作业性质同上,也是自动生成易语言的一些无用GHOFFICE过滤词语代码,以迷乱奸人的破解,让他找到的全是GHOFFICE过滤词语代码,从而大大延长了破解时间。

通过直接拷贝编辑框中的内容,粘贴到您的代码中,可自动完成任务,如下图所示:

上图所生成的是一些明文的加密方法的GHOFFICE过滤词语代码,让奸人去研究这些GHOFFICE过滤词语吧。

上述子程序名称最好也有时调用一下,反正不会真正产生作用的,用多线程调用最好。

或者您平时注意多收集一些别人用于加密时的子程序,拷贝到一个易语言程序中,保存,这样的代码作为GHOFFICE过滤词语代码放在你有用的程序中,虽然增加了一些程序的体积,但安全性是大大提高了。并且基本上没有牺牲软件性能与稳定性。

7.伪验证技术

还是先举一个例子说明吧,易表软件在10.0版本前已发现有大量的注册机存在,于是易表作者其后改变了加密方式,易表10.0推出后还是出现了注册机,并且这种注册机注册过的软件可以使用。于是有些用户用注册机取得的注册码使用了,过了一段时间,当盗版用户将重要数据存入易表后,突然有一天数据库被锁定了,于是只好注册易表,并且让易表作者为数据库解锁。

从这里可以基本上判定易表新版本采用了伪验证技术,即在较为明显的地方提供了一级验证,这种验证方式没有经过太强的加密,而二级验证在一定的条件下才触发,而这个条件是检查到了用户输入了重要的数据,或大量的数据,或使用次数较多。

基本原理是注册文件由前后两个注册码拼接而成。一般情况下只进行第一个注册码的验证,而当条件成熟时进行第二个注册码验证。

这是一种双赢的策略,易表作者即收到了注册费,付费的人还会道歉,并且感谢易表作者。哈哈,大家要学习这招哦。

但本办法对于数据库应用及数据量大时检查最好,而对于一些没有生成数据的用户无效。

发布软件的时候发布自己编写的注册机,弄个假破解版,那么想破解的就可能不来了,即使有真的破解,谁会有自己给自己写假破解快啊!可能假破解版中只破解一半,等用户使用了,有数据了再锁定,让他们注册后再给解锁,付了钱还要谢谢你,哈哈,损招,但有用!

加密第16定理:伪验证可以迷惑一般破解者,甚至自己发布一个伪注册机。

8.定时验证、延时验证、客户数据集累验证

过一段时间后再验证,如你在2005年1月发布一个软件,那么就内定2005年6月后触发验证机会。

或您的软件是一个数据库产品,那么您可以在程序中设置如果数据库大于5MB时就进行验证,并且最好您能确定这些数据是不重复的,刻意加入的。

如易表设置了伪验证,这时市场上出现了新的注册机,当用户用这个注册机后,提示是注册成功了,但当用户输入重要数据后的某个日子,突然打不开数据库了,用户很着急,因为以为是破解成功了,所以将重要的资料输入了,只能拿钱向易表作者进行注册了。而且还千恩万谢,后悔自己不该用破解。哈哈,一举两得呀。

这个方法对于数据库应用软件来说是绝好的办法。

作业:制作一个算法程序放在你的数据库软件中,这个子程序可以统计你的数据库软件使用时,用户输入的是否是拷贝的东西,还是正常的数据。当统计到1000时触发验证。方法思路为:可以通过查看用户有没有使用复制与粘贴快捷键,或资料进行排序,如果有大量重复的,就说明是奸人在拷贝数据破解,否则是一个资料一个资料的输入的,说明是正常使用的重要资料,这时进行对比就好了。

本方法对有资料的破解使用者有极好的控制作用,通过第6条的伪验证技术与本技术结合,那么就可以知道是不是正版用户,并且可以锁定数据库,等他注册后再给他解锁。

加密第17定理:加密的结果应该是双赢,伪验证是一个上策。

9.验证与专业知识相结合技术

将验证与专业知识相结合,让奸人必须学习专业知识后才能真正去破解,这样所花的功夫比自己写一个软件的代价还要大,而有的专业知识不是专家是不知道的,因此是一个较好的加密方法。

前述中采用了“到数值(验证1())”这样的代码返回的是0或1两者之间的一个数,可以用乘法进行混合计算,如:

音量 = 播放位置X到数值(验证1())

当验证正确时返回的是1,这时的结果是正确的,否则返回0,这时的结果为0,是错误的。

这样的代码可以混合到您的专业知识中,如:算命软件可将天干地支、生辰八字中的某个地方进行此类计算,计算类软件可以将某种特殊的计算过程如此结合计算,绘图类软件可将绘图中的算法部分加入此类计算,音响设计类、机床设计软件……

加密第18定理:你知道的专业知识,破解者不一定了解哦。让专业知识与验证相结合吧。

10.伪装,用易语言写自有支持库

大家可以将DLL文件的扩展名改为易语言的支持库文件FNE扩展名,这样进行非独立编译后,与其他FNE文件混合在一起,甚至您可以用易语言写一个支持库,将其中一部分作为验证部分。

易语言的支持库文件FNE文件其实就是一个DLL文件,只不过扩展名改变了而已,用易语言写支持库的方法金眼睛已发过一篇贴子,进行过说明,请大家在易语言论坛上搜索金眼睛的贴子就可以找到了。

作业:找到金眼睛关于用易语言写支持库的贴子,并且自己写一个支持库。

11.绝妙的暗桩设置

应该想到的用代码实现的暗桩前面都讲了不少,下面是一些特别的暗桩供奸人品味的。

大家可以在一些不起眼的地方再放一些暗桩,如:在窗口最小化事件中随机验证,如在某个组件鼠标被移动事件中验证,

有时需要将数据完整性验证放在更高一级的验证中,不要一上来就检查文件是否被更改。

同一验证可以使用多次,这样奸人认为你已经验证过了,没有必要会再验证一次,而相反这时又产生了验证,让奸人防不胜防。如启动时就立即检查程序完整性,如果发现被更改,那就立即退出程序,而在一些子程序中也随机放这样的验证。

更多的暗桩大家自己设计最好。

加密第19定理:加密重要的是暗桩的设置,破解不完全就是一个无效破解。

12.发布不完整版本

有的软件作者在发布共享软件时,放在外面的是不完整版本,将更多的数据资料在注册后提供。这样做也可以,只是麻烦一些而已。如有的图形制作软件,将图片资源另外打包,用户注册后再给完全版的图片。

也有的将DLL文件中的验证部分作了空处理,而在注册后提供真正的注册DLL文件及注册码。还有的直接将KEY文件放在了DLL文件中另外提供。

加密第20定理:不要发布完整版本,以静制动。

13.程序、数据结合加密技术

把程序运行所必需要的资源放到一个数据库文件中,给这个数据库设密码,密码是主程序的数据摘要变换后的结果。程序运行是先验证有没有注册,如果已经注册,就对运行程序本身(取执行文件名())取数据摘要,用自己设计的算法多次变换后形成一个字串,用该字串作为数据库的密码打开数据库文件。如果打开数据库失败,就说明主程序被人修改了,终止程序运行即可。(不终止也没戏,程序找不到运行所需的资源。)

另外设计一个程序,用同样的算法算出数据库密码,然后给数据库加密即可。

密码形成算法建议使用大数支持库。但如果是汇编高手用汇编写注册机的话,会直接将支持库的所有反汇编码抄进去就可以了,问题是他们有没有时间搞。

14.自定义算法

前面讲过采用RSA与数值计算支持库交叉计算的办法,这就是一种自有的算法,如果能用上数值计算支持库中的矩阵、傅丽叶变换等高级功能就更好了。

多重RSA交叉打乱:大家也可以多用一些RSA密钥,如用5个,10个都无所谓,重要的是将这些注册码都打乱,让奸人哭死。打乱的方法就是你自己独创的方法了。

更多的自有算法就要靠大家自己去研究了。祝大家好运。

加密第21定理:加密不反对古怪和变态的方法,鼓励哦。

15.加密框图

下面给出一个加密的设计框图,大家可以根据自己的实际情况改变加密的策略:

图中主程序外围进行了花指令编译,并且用加普通壳进行保护。脱壳了也无所谓,因为设置了暗桩,随机检查。

图中表示主程序运行后,首先进行了常规的注册码第一次验证,找有没有注册文件。如果这个被破解,注册码应该是一个短的RSA,而真正的注册码是三个RSA的叠加。会生成伪注册机也无所谓。

主程序中用暗桩的形式对窗口标题、版权信息进行验证,这是考虑到如果一启动就验证这些很容易被奸人看出来从而会跳过去。因此用一些随机,或分级,或条件法取得不固定的验证。

主程序中用暗桩的方式对加壳后主程序的完整性进行校验,这个也不要放在常规的验证中,否则很容易被跳过去。可以查文件长度,MD5或CRC32都可以上。

主程序中用暗桩的方式加入了反调试模块。

主程序中布满GHOFFICE过滤词语验证代码。并且源代码有备注,不会搞错的。

主程序在某个条件下随机进行第二级验证,从注册码中取第二段数据,如果注册码长度不够且取不到第二段数据,那么就说明已使用了伪注册机,将用户的数据库锁定,等他付钱来注册。

主程序在一个条件下再激活验证,从注册码文件中取第三段数据,如果注册码长度不够,且取不到第三段数据,那么就说明已使用了伪注册机,将用户的数据库锁定,等他付钱来注册。

编程中还注意将加密的字符串搅乱且分不同地方存放,用吴氏加密命令加密重要数据,也可加入数值计算支持库的算法,也可以加入一些惩罚手段,也可以再加入自己的一些算法。

以下是一些人的编程体会摘录,基本未改其中的内容,在此表示感谢!

附录1加密已形成密码学

我引用《应用密码学》作者的话:

世界上有两种密码:一种是防止你的小妹妹看你的文件;另一种是防止奸人阅读你的文件资料。

如果把一封信锁在保险柜中,把保险柜藏在纽约的某个地方…,然后告诉你去看这封信。这并不是安全,而是隐藏。相反,如果把一封信锁在保险柜中,然后把保险柜及其设计规范和许多同样的保险柜给你,以便你和世界上最好的开保险柜的专家能够研究锁的装置。而你还是无法打开保险柜去读这封信,这样才是安全的。

意思是说,一个密码系统的安全性只在于密钥的保密性,而不在算法的保密性。

对纯数据的加密的确是这样。对于你不愿意让他看到这些数据(数据的明文)的人,用可靠的加密算法,只要破解者不知道被加密数据的密码,他就不可解读这些数据。

但是,软件的加密不同于数据的加密,它只能是“隐藏”。不管你愿意不愿意让他(合法用户,或 Cracker)看见这些数据(软件的明文),软件最终总要在机器上运行,对机器,它就必须是明文。既然机器可以“看见”这些明文,那么 Cracker,通过一些技术,也可以看到这些明文。

于是,从理论上,任何软件加密技术都可以破解。只是破解的难度不同而已。有的要让最高明的 Cracker 忙上几个月,有的可能不费吹灰之力,就被破解了。

所以,反盗版的任务(技术上的反盗版,而非行政上的反盗版)就是增加 Cracker 的破解难度。让他们花费在破解软件上的成本,比他破解这个软件的获利还要高。这样 Cracker 的破解变得毫无意义——谁会花比正版软件更多的钱去买盗版软件 ?

然而,要做到“难破解”,何尝容易? Sony 曾宣称的超强反盗版(Key 2 Audio音乐 CD反盗版),使用了很尖端的技术,然而最近却被一枝记号笔破解了,成为人们的饭后笑料!

所以,很多看上去很好的技术,可能在 Cracker 面前的确不堪一击。就像马其诺防线一样,Cracker 不从你的防线入手,而是“绕道”。这样,让你的反盗版技术在你做梦也想不到的地方被 Crack 了。

为什么会这样呢 ?归根到底是因为软件在机器上运行,并且软件和机器是分离的——这一点是关键,如果软件和硬件完全绑定,不能分离,是可以做到象 IDEA 之类几乎不可破解的系统的。这将在后面谈传统软件保护技术时详细说明。

对我的这个解决方案,我不能保证Crack高手在几天之内不能破解它,我只能说:“在这个软件中,我尽量堵住了当前破解者普遍使用的方法以及“我想得到”的可能的缺口。”但是我相信,倾注了我三个月心血的反盗版软件,决不是一个“玩具式”的反盗版软件。

附录2《如何用简单方法防止破解》

北极异型

在Debug的手册里可以看到Debug工具的局限:第一个局限是只能下4个内存区域的断点,每个断点不能控制超过两个字节,这样内存断点不能控制超过16个字节的区域;第二个局限是对多线程只能同时跟踪一个线程。

假设你的注册部分有300行,你可以分成30个子程序调用或重复的func1(),func2()... func30()。将他们随意放到程序的各个部分,一定不能放在一起(自己能找到就行了)。不要用Memcpy等常用系统调用拷贝注册码,尽可能自己写,像Memcpy很好写,性能差点无所谓。经过编译后inline函数展开,注册部分和其他代码混在一起,他要写出注册机就像大海里捞针,在几十万甚至上百万汇编代码里找出有用的注册部分。

利用Debug的第一个局限最重要的一点是:注册码也不要放在一起,假设你的注册码是12位,千万不要用一个12位的数组放注册码,你可以在程序的不同位置定义12个全局字符变量,每个放一位,这样注册码在内存就不连续了。最好再加密处理一下(简单的字符异或就可以),验证时再解密。也不要用连续内存保存验证用到的变量,尽量将用到的验证临时变量分散定义在程序的不同处,再在验证中,不断转移一些值到其他变量中,对付暴力和Loader会比较有效。

没有必要用复杂的加密算法,更容易成为追踪的目标。只要你将注册部分隐藏的足够好,也没有漏洞,你花1天写的加密算法,破解者可能会花100-1000倍的时间破解。大部分人都会放弃。

你将注册做在一起,就像将你的财宝放在现代保险箱里,虽然非常坚固难以解密,对于开锁高手两分钟就打开了。

而古代海盗用的方法是将财宝埋在海岛上,这样没有藏宝图,对所有高手和低手都只有一条路,拿一把铁撬挖,可能要挖一生。程序有那么多代码,反编译出来可能超过百万行,你将注册部分藏在里面,藏的好就如同将财宝埋在海岛里。那些所谓的Crackme只是给高手玩儿的现代保险箱而已,用原始的方法可以达到同样效果。

char str[6]="SYU76B"

sum=6

for(int i=0i<sumi++)

{

if(*(a+i)=='S' || *(a+i)=='B')

{

for(int j=ij<sum-1j++)

{

*(a+j)=*(a+j+1)

}

sum--

i--

}

}

大致思路是这样

discuz!(简称dz)和phpwind(简称pw)是国内最著名的两个PHP论坛系统,随着它们相继宣布开源以后,在各方面,不管技术上,还是功能上,还是界面上,都有了长足的发展,声威大振,远非国外那些功能简单的电子公告板系统可比了。其造成的一个副作用是大大带动了PHP在国内的普及(本人就是在寻找合适的论坛程序的时候,才开始关注PHP,进而不能自拔的 )。

客观的说,目前的pw和dz各有短长,其互相之间的激烈竞争应该说提高了PHP论坛的水平,在功能上不仅赶上了以功能多和漏洞多而著称的动网论坛,而且因为它们的效率和速度远远超过动网,弄的动网市场大大萎缩,原来的一些动网论坛都纷纷转换成了dz或者pw,搞的动网都不得不开始弄PHP论坛了。

要说他们哪个更好,是比较难的事情,毕竟各有短长,俺也不敢在这里妄下结论。不过从市场份额和网上的言论来看,目前dz还是略占上风的,而且去年国内好几个知名的大论坛都转换成了dz(比如凤凰网、牧文、tompda等),而pw在大网站方面收获甚小。

但是毕竟对好多新手来说,他们都要面临一个选择论坛程序的问题,因此,dz和pw哪个更好,也就成了经常被问的问题,这种没有答案的问题,自然要被反复问起。本文试图从比较深的层次来分析两个论坛的优劣,为新手提供选择的参考。如有错谬之处,欢迎批评指正。

一、界面篇

首先,从界面上说,从整体上说,dz的界面比较美观,整体感好。

pw的界面给人一种模仿dz的感觉。同时在界面的细节上,看起来pw还是没有dz完美。

二、技术篇

从技术上说,pw和dz都使用了文件方式的数据缓存技术,通过把常用的数据表,比如论坛版面设置参数、基本参数等,生成静态缓存文件(根据条件触发更新或者手动更新),来减少数据库读取次数,提高效率,在这个方面两者非常相似。

1、模版技术

从模版技术上说,dz从2.5f版就开始采用的这种静态模版技术,从俺个人角度上说,还是非常适合论坛这种频繁更新的网站程序使用的。它通过动态生成静态模版的方式,解决了模版解析效率的问题。

同时,dz的这种模版方式,使得修改界面也比较容易,很直观。

而pw使用echo语句的这种方式(姑且称其为模版),就寒碜多了,要增加了一个if判断条件,就要折腾半天。添加了混合PHP代码的模板,在 dreamweaver中也容易被误 *** 作删除。特别是如果修改的时候稍有不慎,很可能会使网页成了白板(没有输出),让俺每次修改pw模版无不如履薄冰,战战兢兢。。。。恐怕这也是第三方模版中,dz远远多于pw的原因吧。

不过pw目前在模版上也在改进,现在看verycms 3.0就已经开始使用真正的模版技术,不过目前用的都还比较初级。。。

2、速度问题

从模版上看,两者的效率应该是差不多的,pw的模版其实就是直接包含的混合了PHP语句的一部分PHP文件,而dz的模版平时并不需要解析,所以效率应该是差不多的,但是网上总是有人声称网站使用dz的速度比pw慢,这方面本人没有测试过,不敢妄作评论。而且网站访问速度还是要受很多因素的影响,比如:本地网速、服务器带宽、心理。。。。。客观的评价还是很难的,除非使用专业技术手段。不过从官方网站的速度来看,明显还是pw占优啊,呵呵

最近看了一下dz的CSS文件,明显是用CSS用的有点过度了,在dz中大量使用了CSS,CSS文件高达16KB左右(pw只有2KB左右),可能造成了IE渲染网页的时候,效率比较低。同时,由于dz的CSS文件过于庞大,只好采用了外置的方式(Link)。

这样如果网速很慢,网页已经或者部分下载完,而CSS文件下载没完成(网速慢的时候,常常发生这种情况),那么网页根本就不能正常显示。

在网速慢的时候,光dz的CSS文件,就要用好几秒,甚至十几秒的时间才能下载,而整个网页只能在CSS下载完成以后才能进行正确的显示,这就无怪乎在网速慢的时候,dz表现大大逊色于pw了。

相反,pw在设计CSS的时候,明显是比较简洁,这对网页的渲染肯定是比较有利。同时,pw采用了把CSS文件嵌入的方式,尽管每次访问网页都造成了几K 个字节的流量,但是实际影响并不大,反而觉得网页打开速度比dz要快(这就是pw用了一个笨法子,却常常效果比dz强的典型案例)。

这方面,建议dz痛下决心简化过分臃肿的CSS文件,提高网页速度。

三、功能篇

下面俺就dz5.5和pw5.3的功能,做一个简单的,本人看来是比较深入,可能高手看来仍嫌浅显的分析,请大家指正:

1、登录方式:

pw的前台登录和后台登录采用了不同的Cookie方式,这样前后台分开的方式,个人感觉,有利于安全,也便于管理。后台帐号与前台帐号可以彻底分开。

而dz的前后台登录是用了一个帐号,尽管在进入后台的时候再次提示输入密码,不过还是不如pw方便。

比较特别的是,dz在注册的时候,要求输入提示问题(选填),而且在登录界面中,也有提示输入的界面,个人感觉,绝对的画蛇添足,无聊。如果说使用提示问题来找回密码,还是有点道理的。用提示问题的方式,让新手看了无所适从,脑袋都晕了

2、分栏显示:

pw从5.0.1开始支持左右分栏显示了,然而功能太简单,不能树状显示子板块,此功能与其说有,不如说没有,弄的有点搞笑,属于半成品(倒是也符合pw的一贯特点--喜欢推出一些不完美的东西让大家修改)。

看了dz5.5的分栏显示,做的还是比较完美的,感觉相当不错了。

3、后台管理的效率:

pw的横向 *** 作非常不错,大大节省了管理的难度,特别是在根据用户组设置权限的时候,非常的那个方便啊,这方面dz需要改进。

dz提供了一个方案的方式来解决后台重复 *** 作问题,应该说也有一定道理,但是用起来不太容易上手,如果是设置一个单独的项目,就比较繁琐。

4、个人空间(文集)功能:

dz5.5内置了minispace个人空间功能,可以说自从discuz合并了supsite以后,在论坛功能的外展方面,占据了很大优势,吸引了很多个人网站的注意力。

这个minispace用dz官方的话说,是这样的:

“完全利用论坛原有资源,会员不必更多付出,即可拥有个性展示页面

与 X-Space 完美结合,可顺畅实现 MiniSpace 与 X-Space 自然过渡 ”

大体看了一下,发现这个minispace做的很不错,利用它,用户可以把自己的优秀帖子整理出来,形成一个文集的方式,方便别人访问。以前在别的论坛见过这个功能,觉得很不错,没想到dz把它整合进去了。这个功能已经可以满足大部分论坛的功能要求了,如果要求更高,比如希望能让用户发布b0客文章,按照官方的说法,也可以迁移到X-space中去。但更重要的是,minispace是开源的,而X-space的源代码并不开放。

说到X-space,我们觉得,pw在功能上虽然足以和dz匹敌,但是在论坛的外延上,却比dz落后了好多。X-space能实现以论坛为中心的个人空间功能,而pwblog(已经改名为Lxblog,正式版未推出,本文仅以5.1.5版本为例)却和论坛貌合神离,帖子推送功能虽然从4.3.2就有了,然而却一直不好用,4.x推送以后,图片和附件都不正常,5.1.5虽然可以推送正常了,然而在论坛中更新的帖子,在b0客中却不再出现回帖,可以说推送功能在pwblog中只是一个无用的点缀而已。

说到底,我们常常希望的只是一个论坛帖子文集功能的方式,pwblog把论坛中的内容重复推送到b0客中,既浪费空间,又没有意义,这方面dz远远胜过了 pw,值得表扬。但minispace的功能还是略显简单了些,比如没有文集帖子的分类功能、没有首页推荐帖子等等(也许论坛帖子的分类意义不大,不过有总比没有强吧?)

5、防灌水技术

pw5.3终于接受了俺提出的新手注册第N贴以前发帖使用验证码的方式,这样既不影响老用户的使用,又通过验证码方式来限制恶意灌水机器人。dz未提供此功能,但是具有可以设定第N贴以后不用自定义问答的功能(dz的验证码很烂,根本看不清,用自定义问答似乎更好一些)。

在防止自动注册方面,pw和dz都使用了自定义问答方式防止自动注册的办法,具体原理很简单,两者实现的都差不多。区别在于,dz要求设置10个以上的问题才能生效,而pw只能设置一个问题。另外,还有一个区别,就是pw可以自定义问答中内部使用的form变量名,可能在防止恶意自动注册方面,会更加有效一些。pw的自定义问题只能用于注册,而dz的可以用在注册、发帖和短消息等方面。

从目前的具体应用来看,用一个问题就基本上解决了自动注册的问题(长时间实践发现的结果),当然也不排除特大型网站,用一个问题容易被攻破的可能性,这方面dz可能就更有效一些。只是dz限制要求10个以上才能生效的做法,令人费解。

6、前台管理功能

pw具备副版主功能,不过和一般的思路不同,副版主是由版主任命的,这样恐怕会导致权限混乱问题,所以也很少有人用这个功能。

在前台的管理功能中,pw更方便一些,不仅的主题列表中能进行管理,在帖子内容页面中的管理方式比dz用下拉方式更直观一些。而且在一个主题里面删除帖子,pw比dz直观多了。

费解的是,pw5.3版本中移动帖子,都会在帖子前面加入移动提示“本帖被 xxxx 从 xxxx 移动到本区(xxxx年xx月xx日) ”,无法消除,真是难看极了(以前版本没有这个毛病)

dz实现了“沉贴”的功能,可以把那些偶尔被人翻上来的无用垃圾贴沉下去,确实方便多了。。。。有次俺在pw中为了沉一个帖子,不得不提前了N个帖子。而且dz的版主管理功能,加亮、精华等 *** 作都能一气呵成,比pw方便好多。

7、所见即所得编辑器

dz5.5和pw5.3开始,不约而同的把所见即所得编辑器换成了ubbcode(两个论坛名称不一样,这里用个通俗一点的名称,暂称为UBBCode)方式的编辑器,而放弃了原来的HTML可视化编辑器。

说起来,这个ubbcode可视化编辑器确实解决了以前采用代码方式,无法可视化,导致好多非IT人士发帖无法控制格式;而和动网一样使用HTML方式,又产生大量冗余代码和安全性隐患的问题。

不过造成的后果却是,在转贴的时候,以前可以直接从别人的网页上,连图片带文字一起转过来,却是非常方便,虽然有盗链之嫌。换成了这种编辑器,再也没法那么方便了,因此在换了编辑器以后,官方论坛中是怨声载道一片。。。。而且新的编辑器还有好多小BUG,更加是引起了广泛不满(另注:用了一段DZ后发现,dz 5.3的所见即所得编辑器好像存在很多问题,几乎无法用,这方面可能还不如pw的编辑器好用一些)

8、附件上传和所见即所得功能:

pw的附件还是只能提交帖子上传以后才能进行图文混排,这方面dz要好的多,可以上传前就进行混排,方便多了

dz对不参与上传的图片附件还是显示太多信息,看起来影响美观(似乎是受vbb和phpbb的影响比较大)。而pw只是显示了“图片”字样和描述信息,但是更恶心的是,却把这些图片放到正文文字上方 ,真是屡教不改啊

9、附件防盗链技术的分析:

dz采用了隐藏图片地址,和检测访问来源(可选)的办法来防盗链,应该说服务器负担比较大,效果还行,但不能彻底解决问题。

pw用的办法更简单,但更有效一些:就是定期或者自动修改附件目录名,应该说这是一个投资少见效快的好办法,技术上也很简单。不过最新的pw5.3版本也引入了隐藏附件地址的方式,后台也似乎无法关闭此项功能,似乎有点画蛇添足的味道了。。。。

发现dz也可以在后台手工修改附件目录,也可以起到一定效果,只是没有自动修改的功能。

10、广告功能:

dz比pw要好一些,广告功能更完善一些。比如贴内广告,在帖子下面的位置类似动网的位置,看起来更整齐一些,而pw的位置就让帖子布局显得比较凌乱,不好看。dz的贴间广告可以插入大的Google Banner广告,或者其它图片形式的广告,展示效果很好。

相比dz,pw广告的插入位置更少一些,效果也差一些。

11、头像显示:

dz不能限制上传头像的长宽尺寸,只能限制总像素数,显得不够灵活,不如pw方便。而且超出了一定尺寸的头像,被自动缩放和拉伸了,看起来很难看。而且 dz还自动给头像加了一个边框,甚是恶心。可见dz把简单的事情给弄复杂化了,其实只要和pw一样,限制其尺寸,根本不需要拉伸。

12、附件尺寸限制:

pw只能设定所有附件的尺寸,而dz可以对个别格式的附件设定上传尺寸,比较灵活一些,特别适合一些flash网站,或者技术型网站(比如上传大尺寸图纸等)。

13、词语过滤:

pw只能使用普通方式过滤,不支持大小写(很简单的事情,官方就是不办,举手之劳啊)。

而dz不仅能识别大小写,而且具有了一定的模糊识别功能,相当不错了。当然,要是能直接支持正则表达式就更爽了。

14、自定义代码功能:

pw至今不支持自定义wincode代码,比较僵化。要增加功能,就只能修改js文件,太过麻烦。。。。

dz在这方面做的比较完美,要增加或者减少代码、修改播放界面尺寸都很容易,在后台设置一下就可以了

15、回收站功能:

dz可以设定自动清理,而pw不能

16、IP来源显示功能:

dz的IP地址和来源显示类似动网,看起来不太方便,需要点击小电脑图标才行。还是pw的IP地址来源显示看起来比较舒服一些。

17、防CC攻击:

pw早在4.3.2就增加了抗CC攻击功能,而且设置起来比较简单,新手也能看懂。当初俺就是因为这个原因才用了pw。

dz5.5虽然号称带有cc攻击防护,不过看起来比较难于理解,在后台找了半天也没找到,估计新手是 *** 作不了的。当年某著名站长论坛(用dz)可就是被CC攻击搞的长期开不了张的,看起来dz的防CC攻击功能还有待改进。

18、备份功能

pw能支持对pw程序以外的数据表进行备份,而且判断标准不是根据表前缀。可以单独备份pw表以外的数据表,对于那些建立了新表的插件,备份数据超级容易,这方面比较人性化。

dz只是根据表前缀来进行备份,比如你设置一个表,叫做cdb_test,那么它会把它认为是论坛数据表而进行备份。但是如果你设置一个表,叫做test,那就自己想办法去吧。。。。

但是dz比pw强的是,备份可以压缩,压缩后下载和转存备份文件应该会节省巨大的空间和时间,对于超大型论坛应该是非常管用的。dz备份可以指定文件名,而且备份数据用十六进制表示(安全一些,但是占用空间会大一些),估计导入和恢复的中文内码问题就不会存在了。

另外,dz还可以备份MySQL Dump备份(不推荐使用)。

19、文件和数据库校验:

dz内置了文件和数据库校验的功能,pw只是官方提供了一个文件校验工具,不过用起来有点莫明其妙,有时候提示使用的函数在php文件中根本不存在

20、主题推荐和相关贴功能:

dz通过qihoo实现了相关贴的功能,而且还可以支持主题推荐,这方面比pw强了很多。

21、模版和风格设置

phpwind可以在后台设置风格CSS文件,虽然新手不太容易上手,但确实还是比较方便的。

dz更进一步,把css的内容给解释成了表单的形式,让新手也能 *** 作,不过带来的缺点更加大了:如果你想在CSS中增加控制(比如调整行间距等),就不知道该怎么弄了,只好去修改模版。好在dz还提供了一个附加功能:在后台可以直接修改模版,而且编辑界面中还带搜索功能,总算是亡羊补牢了

dz以较大优势在功能上超过pw,而且在dz有些胜过pw的功能上,好多都是以较大优势取胜。

四、总结

总体来说,dz在功能上,界面上,技术上,论坛功能外延上,都胜过了pw。但pw也并非一无是处,其抗CC攻击功能,简洁快速的界面,强大的管理功能,独到的防盗链技术,都很有特色。所谓仁者见仁,智者见智,选择pw还是dz,仍然是一个个性化的问题,具体取决于你对他们的某项特点是否看重。

另外,感觉dz在浏览器兼容性上有点小问题,有时候会出现提示,什么从来路不明的什么东西提交信息,检查norton internet security配置之类的烦人问题,而且dz的验证码太恶心,根本看不明白,都赶上动网的烂验证码了,基本上没法用,只好关掉算完。

需要说明的是,如果是新手,需要选择论坛,还是建议选择dz,因为功能比较多,论坛的外延开发的比较好(supsite/X-space做的很不错),用起来方便一些,而且模版修改起来比较简单,容易上手。

pw只是适合老手,和对论坛外延功能不太感兴趣的那些人使用,而且pw的模版修改起来相当困难,稍有不慎就容易出错,对新手不合适。

PW适合娱乐站,速度快,功能多,官方集成各种插件,几乎不用维护

pw现有的功能=dz+银行+多附件上传+在线会员统计+特殊用户组添加+节日送礼

个人认为phpwind比较方便些,对于那些不想花时间装插件的人来说上手更容易


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11449512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存