时隔多日,绞尽脑汁想出了这篇文章。毕竟咱们发了那么多资源,咱们这次来点技术干货。首先说明,本篇文章的所有内容仅用于个人研究,并遵守GPL 2.0 or later 分享协议。本次文章内容,我们将以一款开源的视频插件为例,如果您下载的插件的相关函数进行了加密或者不遵守开源协议,那么我们将会用其他方法来破解,但是本篇内容不涉及。

配置环境

既然是WordPress的插件,那么我们首先就应该配置WP的环境,这里我推荐使用本地环境,方便调试。如果你使用远程服务器搭建,也可以,我推荐使用以下环境。

软件环境WordPress (6.1)
Add-OnQuery Monitor
信息

建议安装「Query Monitor」这个插件,便于观察插件的调用,包括update_option,HTTP API Calls等等,对我们的本次教程非常有帮助。

寻找关键函数

下载目标插件后,点击启用,如果是收费插件,那么我们接下来就会来到插件的激活页面,例如下方这个页面:

从这个页面,我们可以猜测,这个插件会通过获取wp_option表中的某个字段中的值,从而判断Pro版本是否到期,那么这里就是我们的突破点。

通过抓包我们能够得到以下信息:

「原创教程」他们是如何Crack(破解)WordPress相关资源的?插图2

而这个 action 就是我们突破的重点!我们将目标插件文件夹载入 VSCode 或者其他编辑器,便于我们对插件代码的审阅以及Crack。我们搜索 「mcv_sync_endtime」这个函数,然后定位到 xxx.php 文件,并审阅相关代码,我将关键代码贴出来,给大伙儿看看:

<?php
if(isset($endtime['data']['endtime'])){
            $setting = MINECLOUDVOD_SETTINGS;
            $setting['endtime'] = $endtime['data']['endtime'];
            update_option('mcv_settings', $setting);
        }
echo json_encode($endtime);
exit;
?>

我们可以看到,「update_option」这个函数,通过它插件更新了到期时间,而这里就是我们的突破口,我们获取他的相应内容如下:

{"status":1,"data":{"endtime":"2022-06-10 01:07:28"}}

包含「status」和「data」的 JSON 内容,那么我就就可以伪造相同的 「JSON」内容,从而实现激活该插件!

Crack

最后我们来到了万众瞩目的Crack(破解)这一步,我们编写以下伪造代码:

        $endtime = array(
            'status' => '1',
            'data' => array(
                'endtime' => '2099-12-12 00:00:00',
            ),
        );

保存后重新更新到期时间,来看看效果如何:

「原创教程」他们是如何Crack(破解)WordPress相关资源的?插图3

同步成功,并且插件也未提示 Pro 版本有效,至此,该插件的破解结束。如果想要启用插件就直接激活插件,那么我们就要使用以下函数:

<?php 
register_activation_hook(__FILE__, 'plugin_activation_crack');

function plugin_activation_crack()
{
/** Your Cracked Code Here**/

/** example **/
   update_option('mcv_settings', $setting);
}

如果你觉得文字教程不能打动你,那么接下来的视频教程也许会让你眼前一亮,视频时间不多,但思路展示出来:

视频中的无效的文章类型与该插件本身有关,Crack与否无关