NeWorld Manager 开源版

NeWorld Manager 基于 WHMCS 下 Licensing Module 的一套自动模块部署工具 简介 当…

翻阅他的源码,不难发现,插件的授权是这样一个途径
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信息,请添加'
);

如果你不知道插件名字的话,也很简单。插件的真实名字和他的文件夹名字是一样的。


后记:

破解确实爽,但是还是要尊重原开发者。虽然软件这种东西。。。真的很难评价,他的价格到底值不值得。