Neve Pro Addon 1.5.5 破解

之前我就搞过一个更老版本的破解,经历了很久很久的更新,现在终于失效了,而2.11.6至少要求1.5.5的授权插件,所以又来更新授权插件了.

由于我们是破解,所以发送什么我们是不关心的,只关心URL是什么,方法是什么,激活成功提示什么.

通过返回后,会检查授权类型.

public function get_license_type() {
	$status = $this->get_license_data();
	if ( $status === false ) {
		return -1;
	}

	if ( ! isset( $status->price_id ) ) {
		return -1;
	}

	if ( ! isset( $status->license ) && $status->license !== 'valid' ) {
		return -1;
	}

	if ( ! array_key_exists( $status->price_id, $this->tier_map ) ) {
		return -1;
	}

	return (int) $this->tier_map[ $status->price_id ];
}

根据授权文件另一处,还有提起到不同的Plan,可能功能不同,我们肯定拿最全功能版.

if ( isset( $license_data->plan ) ) {
	update_option( $this->product->get_key() . '_license_plan', $license_data->plan );
}

然后续费URL中用到这个,实际上无所谓.

public function renew_url() {
	$license_data = get_option( $this->product->get_key() . '_license_data', '' );
	if ( '' === $license_data ) {
		return $this->get_api_url();
	}
	if ( ! isset( $license_data->download_id ) || ! isset( $license_data->key ) ) {
		return $this->get_api_url();
	}

	return $this->get_api_url() . '/checkout/?edd_license_key=' . $license_data->key . '&download_id=' . $license_data->download_id;
}

还要返回授权码验证:

if ( ! isset( $license_data->key ) ) {
	$license_data->key = $license;
}

要检查是不是授权OK.

if ( ! isset( $license_data->license ) ) {
	$license_data->license = 'invalid';
}

验证返回的结构可以从rest_server.php中看出.

return new \WP_REST_Response(
	array(
		'message' => $fields['action'] === 'activate' ? __( 'Activated.', 'neve' ) : __( 'Deactivated', 'neve' ),
		'success' => true,
		'license' => [
			'key'        => apply_filters( 'product_neve_license_key', 'free' ),
			'valid'      => apply_filters( 'product_neve_license_status', false ),
			'expiration' => $this->get_license_expiration_date(),
			'tier'       => $index > -1 ? $this->tier_map[ $index ] : -1,
		],
	)
);

检查授权:https://api.themeisle.com/license/check/Neve Pro Addon/[10位以上授权码]/[网站主页]/[随机6位字符]

返回示例(通过源码分析):

{
	"success": "true",
	"license": "valid",
	"key": "[10位以上授权码]",
	"download_id": 1,
	"expires": "2037-06-01 23:59:59",
	"price_id": 5,
	"plan": 5
}

注册网站:https://api.themeisle.com/license/activate/Neve Pro Addon/[10位以上授权码]

POST内容:

array(2) {
  ["body"]=>
  string(44) "{"url":"https://www.google.com"}"
  ["headers"]=>
  array(1) {
    ["Content-Type"]=>
    string(16) "application/json"
  }
}

返回示例:

{
	"message": "Activated.",
	"success": true,
	"license": {
		"key": "[10位以上授权码]",
		"valid": "valid",
		"expiration": "June 2037",
		"tier": 3
	}
}

反注册网站:https://api.themeisle.com/license/deactivate/Neve Pro Addon/[10位以上授权码]

POST内容:同注册网站

返回示例:

{
	"message": "Deactivated",
	"success": true,
	"license": {
		"key": "",
		"valid": "not_active",
		"expiration": false,
		"tier": -1
	}
}

那么现在如何破解,改源码肯定不行,这样每次更新都要改,很麻烦,所以自建一下最舒服,这里几行代码这么简单就用Python写了,然后找个机(不能是本机)运行这个脚本.

import json
from flask import Flask

app = Flask(__name__)

@app.route('/license/deactivate/<name>/<key>')
def deactivate(name,key):
  payload = {'message': 'Deactivated', 'success': True, 'license': {'key': key, 'valid': 'not_active', 'expiration': False, 'tier': -1}}
  return json.dumps(payload)

@app.route('/license/activate/<name>/<key>')
def activate(name,key):
  payload = {"message": "Activated.", "success": True, "license": {"key": key, "expiration": "June 2037", "valid": "valid", "tier": 5}}
  return json.dumps(payload)

@app.route('/license/check/<name>/<key>/<path:url>/<random>')
def check(name,key,url,random):
  payload = {'success': 'true', 'license': 'valid', 'key': key, 'download_id': 1, 'expires': '2037-06-01 23:59:59', 'price_id': 5, 'plan': 5}
  return json.dumps(payload)
    

app.run(host='0.0.0.0', port=80)

最后改网站服务器的Host指向,以后更新还是照样更新,但是授权就永远不过期.

原版插件下载地址:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注