[维护日志]2022年夏的WordPress主题修改

一直以来用着的这个主题,已经有很多年了,虽然一直没有更新过,主题自带的一些广告链接都差不多过期,于是想着修改模板文件去掉他们。

很快找到其中一个对应的函数是theme_sb_credit(),然而注释掉以后虽然死掉的链接没有了,页面的部分颜色背景却出现了缺失,看来作者还是花了些功夫来保护广告。

然后找到原网站,主题的下载已经失效了,只能SSH上来把主题文件下载下来,全局搜索却并没有发现theme_sb_credit()的函数定义,很明显这肯定是主题的内部函数,那问题在哪里呢?

来回检查一番,终于发现template.php的内容有些奇怪,全部是没有规律的字符串,然而最后一句是eval(base64_decode(…))这样的格式,google一番原来是BASE64混淆代码的方法,然后一解码居然有好多层,解到最后一层从函数名到变量全部是

$v_9tzZsblbSQ9=$v_RZwY3ct1vbs-$v_llLtriW4Xx4;

这样的格式,试着将变量名重命名,却发现最后一个函数是将字符串逐字重新编码的方式,明显就超出了自己手动分析的能力范围,也就睡下了等第二天再说。

然后第二天再打开,想到另一个办法,php技能等同于0,显然手动解码不现实,不是像BASE64一样的通用解码也在网上找不到相应的在线工具。

但是php在线工具是有很多的,这样的话,直接用echo 显示语句代替eval执行语句,不就解开了么。

于是,在解决了没有添加<? php ?p>这样的错误以后,代码就直接解码出来了,用它代替原来的BASE64数据,打开主页目测一切正常,想改什么就简单了。

不过,使用混淆代码的办法来保护开源内容,还是有点怪怪的。

Category: Blog  Tags: , ,
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.