翻阅他的源码,不难发现,插件的授权是这样一个途径
NeWorld.php->library/class/NeWorld.License.Class.php->NeWorld.Extended.Class.php
插件调用License->然后判断是否存在license。
这套插件还提供了一个后台,可以添加授权。调用途径是
public/verify.php->library/class/NeWorld.License.Class.php->library/class/NeWorld.Extended.Class.php
verify.php实例化NeWorld\License,NeWorld\License的构造方法先判断授权,不存在或到期再调用verifyOnline()函数。该函数通过Extended类进行了getWebPage也就是获取网页的操作。
看到这里的getWebPage,应该就能猜到,这个是授权的主要地方。伪造了这里就能解决插件的授权。
分析:
在verifyOnline这个函数中,我们不难发现,getWebPage返回的是一个数组。也就是$checkStatus
深入分析下去,可以发现它包含id,status,license,date,name,version,download,md5,code,softname,info。
那么我们只需要修改掉getWebPage这个函数,只让他返回正常的数据即可。
$result = array( "id" => $id, "status" => "success", "license" => $arr['post']['license'], "date" => time(), "name" => $product, "version" => "6.6.6", "download" => base64_encode("http://127.0.0.1"), "md5" => md5(date()), "code" => md5($arr['post']['license']), "softname" => base64_encode("Nulled".$product), "info" => "愉快的使用吧无需破解的".$product."吧" );
注意,这里的id需要自己制定。我使用的方法是加了个判断,license是使用base64对授权插件名称进行两次加密操作。之后加一个switch来返回id。至于为什么用base64加密两次,因为插件前台对license做了限制(js),需要大于20位。 当然,如果你要返回一个授权错误,就是这样
$result = array( "status" => "error", "info" => '暂无 [ ' . $product . ' ] 的ID信息,请添加' );
如果你不知道插件名字的话,也很简单。插件的真实名字和他的文件夹名字是一样的。
后记:
破解确实爽,但是还是要尊重原开发者。虽然软件这种东西。。。真的很难评价,他的价格到底值不值得。