小小破解一下百度MP3的加密URL链接

百度Mp3的Url老是改来改去,去年用Ruby/Hpricot写的一个抓取歌名及链接的小脚本自然是无法运行了。

 

看了一下Page Source,XPath倒没怎么变动,URL却换成了Javascript变换加密。

 

<html>
............
<table class="t" width="100%" border="0" cellspacing="0" cellpadding="0">

  <tr>

    <td><a class="l" title="根据用户指令,百度的搜索引擎系统会以非人工方式自动生成到第三方网页的链接。“百度”自身不存储、控制、编辑或修改被链接的第三方网页的信息。百度高度重视知识产权保护,并制定了旨在保护权利人的合法权益的措施和步骤,当权利人发现在百度生成的链接所指向的第三方网页内容侵犯其著作权时,请权利人向百度发出“权利通知”,百度将依法采取措施断开相关链接。">百度提示,请您阅读</a></td>

    <td align="right"><a href="http://www.baidu.com/search/appcopyright.html" target="_blank" class="l">权利声明</a></td>

  </tr>

</table>

<div style="text-align:center"><div id="adv"></div></div>

</div>

</BODY>
<script>
function G(A){return document.getElementById(A)}function sa(){var C=G("adv");if(C.innerHTML){var B=520,A=530;var E=(screen.width-B)/2,D=(screen.height-A)/2;moveTo(E,D);resizeTo(B,A)}}var song_1220027223;function sd(B){var A=new Image();A.src="/wd/sg-url.jpg?url="+song_1220027223+"&pos="+B+"&r="+Math.random()}function disUrl(){var F=1220027223,L=0;var I="6IIE://00H.MJzCB7GH.C3I/tEe7A3/tEZIIz16B3CI/RPPX-X/RPPXXQYRRQYQU.BES",J="6IIE://00H.MJzCB7GH.C3I/tEe7A3/tEZIIz16B3CI/RPPX-X/RPPXXQYRRQYQU.BES";var O="",E="";var K=[],H=[];var B=G("urln"),C=G("urla");function N(S,P,Q){for(var R=S;R<=P;R++){K[R]=R+Q;H[R+Q]=R}}N(0,9,48);N(10,35,55);N(36,61,61);var M=F%26;M=M?M:1;function A(Q){var P=Q.length;var S="";for(var R=0;R<P;R++){var T=Q.charAt(R);if(/[A-Za-z0-9]/.test(T)){var U=H[Q.charCodeAt(R)]-M;if(U<0){U+=62}T=String.fromCharCode(K[U])}S+=T}return S}O=A(I);E=(I==J)?O:A(J);B.href=C.href=song_1220027223=O;C.innerHTML=E;if(!L||F-L<3600){var D=new Image();D.src="/wd/mp3-sg-decode.jpg?url="+O+"&r="+Math.random()}}disUrl();
</script>

</HTML>
 

仔细瞧瞧还是可以发现了某些对应关系。

 

心想何不反其道而行之,来个逆向变换呢?正好可以练练手。xixi

 

def _mktab(x)
  t0 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
  p = t0.partition(x)
  p[1] + p[2] + p[0]
end

def decode(s)
  s.tr(_mktab(s[0].chr), s=~ /....:\// ? _mktab('h') : _mktab('f')) #http|ftp
end

puts decode(ARGV[0] || "v773://AAA.xz6w1o.q20//tzo6v/px_GEEM_G.03H") if __FILE__ == $0

 But,...百度的页面好像是打不开了,晕...

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值