wordpress 采集插件 QQWorld收藏家豪华版 (QQWorld Collector Deluxe)破解手记

php 2个月前 pythonK
111 0

这个插件加密比较特别,QQ收藏家插件19年就留意到,当时没有过多的研究的只记得功能很🐮,这次又重新down下来,直接肝到底。

首先第一层是phpar打包, 第二层 威盾。即使解开后功能还是不可用,关键代码藏的很深。
瞪眼看了2天,总觉得代码是在某处。

果然最终还是发现有第三次加密,解开后是对版本序列号的验证逻辑。
再由此块代执行码验证后,从插件服务器加载一串base64加密后的代码。解开才是最终需要的代码。   

public function save_crc($filename, $content, $module, $echo = true) {
    $this->close_error_reporting();
    $filename = md5($filename . $this->domain);
    $tmp_dir = ini_get('upload_tmp_dir') ? ini_get('upload_tmp_dir') : sys_get_temp_dir();
    $filepath = $tmp_dir . DIRECTORY_SEPARATOR . $filename;
    $status = file_put_contents($filepath, $content);
    if ($this->get('activation-status', $module) == 'license') $this->set_transient($filename, $content, 2592000);
    if ($echo) {
        print $status && file_exists($filepath) ? '激活成功' : '激活失败';
    }
    if ($status !== false) $GLOBALS['QC']->cache->delete_cache("{$this->product}-activation-times");
}

会用到的代码: 直接dump

$fp = fopen(QQWORLD_OUTSIDE_COLLECTOR_DIR."decode".$filename.".php","a+");
fwrite($fp,$content."\n");fclose($fp);

 

关于phar的解包 ,还使用到的方法是进到linux的/tmp目录 设置不允许删除的保护锁。然后会发现解包痕迹。

最终解密出来其实是试用版的权限,比如远程发布这块代码就不会被加载是需要自己二开的。

如果不是作者给试用权限,最后一步取得加密代码解密是不存在的。总之解开都是“侥幸”。

经过两天阅读代码,可以说作者的编程功底很强,同时也可以看出作者在这款插件上付出的心血非常大。
插件代码量多 、功能完善 、表现亮眼,使用起来非常顺手。
官方提供采集规则代写服务,性价比非常高。本文也不提供破解源码,所以有条件的老铁 请移步支持正版。

插件官方链接