前一节《EBT 道客巴巴的加密与破解 序章》粗略讲了一些关系DOC88文档下载的一些枝节,主要是通过Chrome等工具来开启VIP模式,打开道客巴巴文档内容复制和打印功能,这一篇开始将进行更深入的研究。
还是以《Soilless Culture- Theory and Practice》为例:http://www.doc88.com/p-362142082976.html
DOC88文档页面中的每一页内容都由JavaScript代码和ActionScript代码两部分功能结合显现的,JavaScript部分主要是由一个称为Viewer的类来实现DOC88档案的加密解密,并产生页面的FLASH嵌入代码,包括了页面内容ebt文件的服务器端地址。而ActionScript部分则主要是通过pv.swf这个FLASH文件来实现页面内容的展示,同时它还需要为文档页的内容进行解密,这就是本文的重点内容。
先通过Chrom浏览器,FireFox也可以,取得网页的一断代码:
<object type="application/x-shockwave-flash" data="http://assets.doc88.com/assets/swf/pv.swf?v=1.7" width="100%" height="100%" id="pageflash_0" style="visibility: visible;">
<param name="hasPriority" value="true">
<param name="wmode" value="transparent">
<param name="swliveconnect" value="true">
<param name="FlashVars" value="hn=1&ph=http://ebt246.doc88.com/getebt-0rUXzqMX2LkT0qEd1qEd0jPR0jP50qEd0jPR0jP50qEX2q3V0jBApIlVpTsTsqs=.ebt&pk=http://ebt246.doc88.com/getebt-0rUR0Ln50TMQzq3R0jvS1SUV1SUS0LMS0LkR1SUS0LMS0LkR1TP50jsS1l9MGotI1q1p1v==.ebt&ptm=GotoPage&hlm=HeaderLoaded&fn=0&e404m=ViewerError&st=GetSURL&v=0&sp=false">
<param name="allowScriptAccess" value="always">
</object>
这里取得的代码就是《Soilless Culture- Theory and Practice》的封面页,是一张大图片。这里重要的内容是FlashVars对应的参数,其中包含了两个ebt文件的URL地址,通过这个地址就可以下载到想要的页面了。这只是第一步,后头才是关键。这两个文件分别标记ph和pk,ph指向的这个文件是共用的,每一页内容都会需要它。URL地址中,在getebt-到扩展名之间有一段编码内容,明眼人一看就知道是BASE64编码内容,但其实只对了一半,它是BASE64的一种变体,我在破解中称其为BASE64DOC88编码。现在就通过链接下载这两个ebt 文件:
PH EBT:http://ebt246.doc88.com/getebt-0rUXzqMX2LkT0qEd1qEd0jPR0jP50qEd0jPR0jP50qEX2q3V0jBApIlVpTsTsqs=.ebt</