破解开源CMS软件AKCMS的思路

很多免费开源CMS软件都会在自己的作品中加上自己的版权信息,比如ecms,dedecms,ecshop,discuz,会在你的网站中某个地方插入powered by xxoo这种字眼。AKCMS是怎么插入的呢?有2个地方:

1,他会在你每个网页底部强行插入powered by akcms的字体和链接,网友都看得到的。这种可以用<span style="display:none;">[powered]</span>方法,在网页上隐藏显示,但翻看HTML代码还是能看到版权信息。

2,他会在每个页面插入代码,网页上看不到什么效果,只有翻看HTML代码能看到:

.

<script type='text/javascript'>
if(isVisible(document.getElementById('poweredakcms'))== false) {
    var html_doc = document.getElementsByTagName('head')[0];
    var s = document.createElement("script");
    s.src = "http://s.akhtm.com/p.js?r=Q5h6GQ";
    html_doc.appendChild(s);
} 
function isVisible(obj){
    try{
        obj.focus();
    }
    catch(e){
        return false;
    }
    return true;
}
</script>

我一般会干掉这些强行插入的东西,原因有三:
1,我有洁癖,不喜欢我的每一个网页中有别的东西。
2,我担心akcms如果被黑掉之后,上面引用的官方链接可能会被黑客利用。不要以为不会被黑,AKCMS软件的官方域名akcms.com就被搞了,至今不知道在谁手里,被迫注册了akhtm.com的域名。
3,就算akcms官方不会被黑,但html中保留了官方的链接,明眼人一看就知道是akcms软件,那么就会利用akcms的漏洞做攻击,这样等于是增加了网站被黑的几率。很多黑客开发的自动扫描软件都会根据某些开源程序的特征做扫描。

破解别人的软件是不道德的行为,甚至是违法的。我还是忍不住要记录下破解AKCMS的思路,重在说面对这种问题如何去解决的,不重在结果。

1,要想干掉上面的javascript代码,就找代码中可能是它特有的内容去搜,比如“poweredakcms”,“createElement”“akhtm.com”“/p.js”等等,然后打开AKCMS下所有的文件,在打开的所有文件中进行搜索这些内容,在搜索出的结果中去确认。AKCMS中通过这种方法行不通。

2,方法1不行,说明有加密文件,打开每个目录看,你会发现一堆php文件中有一个/include/render.inc.bin,看文件名猜不出是干什么的,就用编辑器打开它。

3,render.inc.bin文件中是一些看不懂的字符串,仔细看,文件顶部有一句声明:

This file is protected by copyright law & provided under license. Copyright(C) 2005-2009 www.vidun.com, All rights reserved.

很明显这是一个加密软件插入的版权信息注释,我们顺藤摸瓜。

4,打开vidun.com网站,原来是一个防盗链的厂商,它还开发了一个PHP加密专家,全称叫“微盾PHP加密专家(PHPCodeLock)”,根据它介绍的案例和render.inc.bin的内容一对比,可以100%确定akcms的作者利用了这个免费工具进行的加密。

5,根据互联网市场规律,有人开发了一个叫PHPCodeLock的加密软件,那么一定有程序员会开发它的解密产品。我们用关键词“微盾PHP加密专家 解密”“PHPCodeLock 解密”到淘宝或百度中去搜索,很快就能找到解密工具,比如在线解密网址https://yoursunny.com/p/PHP-decode/

6,把render.inc.bin里面所有的内容复制,然后到解密工具中去解密,把解密后的内容再覆盖到render.inc.bin文件中。看PHPCodeLock的解释,服务器端无需安装任何第三方组件,加密后的文件可运行于任何普通 PHP 环境下,那么render.inc.bin里存放解密后的正常PHP内容肯定是不影响整个AKCMS的运行的。不信就可以把文件传回服务器,看看网站上否照常运行。

7,render.inc.bin中的内容能完全看到了,那么就在里面搜索你要找的内容,把不想要的统统删掉。

破解完成,这种破解思路适用于任何网站的,自己要有基本的常识,又能顺藤摸瓜。