<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>张英锋的网站 &#187; JoomSEF</title>
	<atom:link href="http://www.zhangyingfeng.com/tag/joomsef/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zhangyingfeng.com</link>
	<description>享受教育的乐趣，发现软件之美。</description>
	<lastBuildDate>Thu, 12 Jan 2012 22:46:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>JoomSEF赞助广告编码的原理</title>
		<link>http://www.zhangyingfeng.com/2007/12/14/joomsef-adv-decode/</link>
		<comments>http://www.zhangyingfeng.com/2007/12/14/joomsef-adv-decode/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 03:06:00 +0000</pubDate>
		<dc:creator>张 英锋</dc:creator>
				<category><![CDATA[建站SEO]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[JoomSEF]]></category>
		<category><![CDATA[SEF]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://zhangyingfeng.com.cn/2007/12/14/joomsef-adv-decode/</guid>
		<description><![CDATA[本文的目的只是为了说明JoomSEF编码加密的原理，不提供破解的方法和工具，任何破解 JoomSEF的行为都是违反本人初衷的，其责任和后果都与本人无关，请大家购买去广告版的Artio JoomSEF。 Artio JoomSEF是一个很棒的SEF(Search Engine Friendly)工具，更难得的是可以免费使用。安装完毕之后，它会在网页的最下面加上赞助商的广告。因为JoomSEF对广告的内容作了简单的Base64编码，所以很难找到存放广告内容的位置。其实广告内容就存放在/administrator/components/com_sef/signature.b64文件里。打开以后就可以看到编码后的内容。我们可以借助于下面的程序进行Base64解码。 &#60;?php echo base64_decode(&#8216;需要解码的内容&#8217;); ?&#62; 解码后的内容就是广告的内容。其实Base64不是一种加密算法，他只是一种编码方法，应用非常广泛，例如我们平时写的邮件所加的附件都是采用Base64进行编码的。所以JoomSEF这样做只是防止你轻易的找到广告内容，其实并没有加密。 另外JoomSEF为了防止你删除或修改文件的内容，还利用了MD5算法对文件进行完整性检验。MD5算法的作用就是防止你纂改文件内容，他会根据文件的内容生成一套指纹编码，文件内容一旦改变，指纹编码就会和原来的不一致。MD5指纹编码的内容就在/administrator/components/com_sef/checksum.md5文件里。所以你修改了signature.b64文件，JoomSEF就会失效。 现在就让我们看看JoomSEF在哪里加入这段程序判断。为了防止你轻易的找到这段程序，JoomSEF也对这段程序进行base64编码。打开/administrator/components/com_sef/sef.class.php文件，可以在第415行找到这段加密的代码。(针对JoomSEF v2.2.2版本) eval(base64_decode(&#8216;JHNlZk&#8230;&#8230;&#8217;)); 同样你可以用上一个程序进行解码，解码后得到的内容如下。我在程序后增加了中文注释。 $sefDirAdmin = $GLOBALS['mosConfig_absolute_path'].&#8217;/administrator/components/com_sef/&#8217;;//获得绝对路径 // load checksums $license  = trim(@file_get_contents($sefDirAdmin.&#8217;signature.b64&#8242;));//读取广告内容文件 $checksum = trim(@file_get_contents($sefDirAdmin.&#8217;checksum.md5&#8242;));//读取MD5编码文件 $checkstr =...
No related posts.

以上关联文章由 <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a> 提供支持。]]></description>
			<content:encoded><![CDATA[<p>本文的目的只是为了说明JoomSEF编码加密的原理，不提供破解的方法和工具，任何破解 JoomSEF的行为都是违反本人初衷的，其责任和后果都与本人无关，请大家购买去广告版的Artio JoomSEF。</p>
<p>Artio JoomSEF是一个很棒的SEF(Search Engine Friendly)工具，更难得的是可以免费使用。安装完毕之后，它会在网页的最下面加上赞助商的广告。因为JoomSEF对广告的内容作了简单的Base64编码，所以很难找到存放广告内容的位置。其实广告内容就存放在/administrator/components/com_sef/signature.b64文件里。打开以后就可以看到编码后的内容。我们可以借助于下面的程序进行Base64解码。<span id="more-19"></span></p>
<blockquote><p>&lt;?php<br />
echo base64_decode(&#8216;需要解码的内容&#8217;);<br />
?&gt;</p></blockquote>
<p>解码后的内容就是广告的内容。其实Base64不是一种加密算法，他只是一种编码方法，应用非常广泛，例如我们平时写的邮件所加的附件都是采用Base64进行编码的。所以JoomSEF这样做只是防止你轻易的找到广告内容，其实并没有加密。</p>
<p>另外JoomSEF为了防止你删除或修改文件的内容，还利用了MD5算法对文件进行完整性检验。MD5算法的作用就是防止你纂改文件内容，他会根据文件的内容生成一套指纹编码，文件内容一旦改变，指纹编码就会和原来的不一致。MD5指纹编码的内容就在/administrator/components/com_sef/checksum.md5文件里。所以你修改了signature.b64文件，JoomSEF就会失效。</p>
<p>现在就让我们看看JoomSEF在哪里加入这段程序判断。为了防止你轻易的找到这段程序，JoomSEF也对这段程序进行base64编码。打开/administrator/components/com_sef/sef.class.php文件，可以在第415行找到这段加密的代码。(针对JoomSEF v2.2.2版本)</p>
<blockquote><p>eval(base64_decode(&#8216;JHNlZk&#8230;&#8230;&#8217;));</p></blockquote>
<p>同样你可以用上一个程序进行解码，解码后得到的内容如下。我在程序后增加了中文注释。</p>
<blockquote><p>$sefDirAdmin = $GLOBALS['mosConfig_absolute_path'].&#8217;/administrator/components/com_sef/&#8217;;//获得绝对路径<br />
// load checksums<br />
$license  = trim(@file_get_contents($sefDirAdmin.&#8217;signature.b64&#8242;));//读取广告内容文件<br />
$checksum = trim(@file_get_contents($sefDirAdmin.&#8217;checksum.md5&#8242;));//读取MD5编码文件<br />
$checkstr = ”;<br />
global $sefCheckA;<br />
$sefCheckA[3] = $sefCheckA[2] = $sefCheckA[1] = $sefCheckA[0] = ”;<br />
$sefCheckA = explode(&#8216;-&#8217;, $license);<br />
foreach ($sefCheckA as $id =&gt; $checkpart) {<br />
$sefCheckA[$id] = base64_decode($checkpart);//解码广告内容<br />
$checkstr .= $sefCheckA[$id];<br />
}</p>
<p>//验证MD5编码是否一致，如果一致说明就是完整的，JoomSEF可以正常工作，否则禁用。<br />
        $this-&gt;enabled &amp;= ($checksum == md5($checkstr));</p>
<p>function xmlParsing($path, $base, $index, $option)<br />
{<br />
global $_VERSION, $sefCheckA;<br />
if (($path == $base)<br />
|| ($path == ($base.$index))<br />
|| (@$option == &#8216;com_frontpage&#8217;)) {<br />
// frontpage code<br />
$_VERSION-&gt;URL .= $sefCheckA[0];<br />
$_VERSION-&gt;COPYRIGHT .= $sefCheckA[1];<br />
}<br />
else {<br />
// other page code<br />
$_VERSION-&gt;URL .= $sefCheckA[2];<br />
$_VERSION-&gt;COPYRIGHT .= $sefCheckA[3];<br />
}<br />
}<br />
function includeSef($once = false)<br />
{<br />
global $mosConfig_absolute_path, $sefCheckA;<br />
static $first = true;<br />
if( $once &amp;&amp; !$first )  return;<br />
$txt = file_get_contents($mosConfig_absolute_path.&#8217;/components/com_sef/sef_ext.php&#8217;);<br />
if(substr($txt, 0, 5) != &#8216;&lt;?php&#8217;) {<br />
$txt = base64_encode($txt);<br />
$txt = $sefCheckA[4].$txt;<br />
$detxt = base64_decode($txt);<br />
$detxt = substr($detxt, 2, -2);<br />
eval($detxt);<br />
} else {<br />
if( $once ) {<br />
include_once($mosConfig_absolute_path.&#8217;/components/com_sef/sef_ext.php&#8217;);<br />
} else {<br />
include($mosConfig_absolute_path.&#8217;/components/com_sef/sef_ext.php&#8217;);<br />
}<br />
}<br />
$first = false;<br />
}</p></blockquote>
<p>以上就是JoomSEF验证编码的原理，以后大家可以在自己的软件设计中借鉴。</p>
<p>再次重申，请不要破解JoomSEF，如果你不想看到广告，完全可以将广告文字的颜色改为和背景色一样，效果是相同的。</p>
<p>No related posts.</p>
<p>以上关联文章由 <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a> 提供支持。</p>]]></content:encoded>
			<wfw:commentRss>http://www.zhangyingfeng.com/2007/12/14/joomsef-adv-decode/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

