<?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; SEF</title>
	<atom:link href="http://www.zhangyingfeng.com/tag/sef/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zhangyingfeng.com</link>
	<description>The only people who can change the world are people who want to.</description>
	<lastBuildDate>Mon, 12 Jul 2010 08:12:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.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 = &#8221;; global $sefCheckA; $sefCheckA[3] = $sefCheckA[2] = $sefCheckA[1] = $sefCheckA[0] = &#8221;; $sefCheckA = explode(&#8216;-&#8217;,...


No related posts.

以上关联文章由 <a href='http://mitcho.com/code/yarpp/'>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 = &#8221;;<br />
global $sefCheckA;<br />
$sefCheckA[3] = $sefCheckA[2] = $sefCheckA[1] = $sefCheckA[0] = &#8221;;<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>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.zhangyingfeng.com/2007/12/14/joomsef-adv-decode/feed" rel="nofollow" class="external" title="订阅这篇文章的评论？">订阅这篇文章的评论？</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.zhangyingfeng.com/2007/12/14/joomsef-adv-decode/&amp;title=JoomSEF%E8%B5%9E%E5%8A%A9%E5%B9%BF%E5%91%8A%E7%BC%96%E7%A0%81%E7%9A%84%E5%8E%9F%E7%90%86" rel="nofollow" class="external" title="分享到del.icio.us">分享到del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.zhangyingfeng.com/2007/12/14/joomsef-adv-decode/&amp;title=JoomSEF%E8%B5%9E%E5%8A%A9%E5%B9%BF%E5%91%8A%E7%BC%96%E7%A0%81%E7%9A%84%E5%8E%9F%E7%90%86" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://www.zhangyingfeng.com/2007/12/14/joomsef-adv-decode/&amp;title=JoomSEF%E8%B5%9E%E5%8A%A9%E5%B9%BF%E5%91%8A%E7%BC%96%E7%A0%81%E7%9A%84%E5%8E%9F%E7%90%86&amp;desc=%E6%9C%AC%E6%96%87%E7%9A%84%E7%9B%AE%E7%9A%84%E5%8F%AA%E6%98%AF%E4%B8%BA%E4%BA%86%E8%AF%B4%E6%98%8EJoomSEF%E7%BC%96%E7%A0%81%E5%8A%A0%E5%AF%86%E7%9A%84%E5%8E%9F%E7%90%86%EF%BC%8C%E4%B8%8D%E6%8F%90%E4%BE%9B%E7%A0%B4%E8%A7%A3%E7%9A%84%E6%96%B9%E6%B3%95%E5%92%8C%E5%B7%A5%E5%85%B7%EF%BC%8C%E4%BB%BB%E4%BD%95%E7%A0%B4%E8%A7%A3%C2%A0JoomSEF%E7%9A%84%E8%A1%8C%E4%B8%BA%E9%83%BD%E6%98%AF%E8%BF%9D%E5%8F%8D%E6%9C%AC%E4%BA%BA%E5%88%9D%E8%A1%B7%E7%9A%84%EF%BC%8C%E5%85%B6%E8%B4%A3%E4%BB%BB%E5%92%8C%E5%90%8E%E6%9E%9C%E9%83%BD%E4%B8%8E%E6%9C%AC%E4%BA%BA%E6%97%A0%E5%85%B3%EF%BC%8C%E8%AF%B7%E5%A4%A7%E5%AE%B6%E8%B4%AD%E4%B9%B0%E5%8E%BB%E5%B9%BF%E5%91%8A%E7%89%88%E7%9A%84Artio%20JoomSEF%E3%80%82%0D%0A%0D%0AArtio%20JoomSEF%E6%98%AF%E4%B8%80%E4%B8%AA%E5%BE%88%E6%A3%92%E7%9A%84SEF%28Search%20Engine%20Fr" rel="nofollow" class="external" title="发到Diigo">发到Diigo</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.zhangyingfeng.com/2007/12/14/joomsef-adv-decode/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.cn/addurl/?bm_url=http://www.zhangyingfeng.com/2007/12/14/joomsef-adv-decode/&amp;bm_description=JoomSEF%E8%B5%9E%E5%8A%A9%E5%B9%BF%E5%91%8A%E7%BC%96%E7%A0%81%E7%9A%84%E5%8E%9F%E7%90%86&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="添加到Mister Wong">添加到Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://www.zhangyingfeng.com/2007/12/14/joomsef-adv-decode/&amp;title=JoomSEF%E8%B5%9E%E5%8A%A9%E5%B9%BF%E5%91%8A%E7%BC%96%E7%A0%81%E7%9A%84%E5%8E%9F%E7%90%86" rel="nofollow" class="external" title="分享到Mixx">分享到Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.zhangyingfeng.com/2007/12/14/joomsef-adv-decode/&amp;title=JoomSEF%E8%B5%9E%E5%8A%A9%E5%B9%BF%E5%91%8A%E7%BC%96%E7%A0%81%E7%9A%84%E5%8E%9F%E7%90%86" rel="nofollow" class="external" title="分享到Reddit">分享到Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.zhangyingfeng.com/2007/12/14/joomsef-adv-decode/&amp;title=JoomSEF%E8%B5%9E%E5%8A%A9%E5%B9%BF%E5%91%8A%E7%BC%96%E7%A0%81%E7%9A%84%E5%8E%9F%E7%90%86" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://www.zhangyingfeng.com/2007/12/14/joomsef-adv-decode/" rel="nofollow" class="external" title="分享到Technorati">分享到Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=JoomSEF%E8%B5%9E%E5%8A%A9%E5%B9%BF%E5%91%8A%E7%BC%96%E7%A0%81%E7%9A%84%E5%8E%9F%E7%90%86+-+http://b2l.me/3wf8d&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>No related posts.</p>
<p>以上关联文章由 <a href='http://mitcho.com/code/yarpp/'>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>
