1

Neve Pro Addon 1.5.5 破解

 3 years ago
source link: https://www.taterli.com/7950/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Neve Pro Addon 1.5.5 破解

  • TaterLi
  • 2021年6月8日2021年6月8日

之前我就搞过一个更老版本的破解,经历了很久很久的更新,现在终于失效了,而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指向,以后更新还是照样更新,但是授权就永远不过期.

原版插件下载地址:

发表评论 取消回复

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

评论

显示名称 *

电子邮箱地址 *

网站网址


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK