目录
一、前言
二、从E书或网页中获取文件的一般步骤
三、从E书或网页中获取链接进来的css文件
四、从E书或网页中获取链接进来的js文件
五、从E书或网页中获取Flash文件
六、从E书或网页中获取背景音乐文件
七、从E书中获取图像文件
八、进入frame页面
九、其它问题
一、前言
最近我又听到有人抱怨用miniKillEBook反编译电子书,只能得到HTML网页,得不到E书中的js、css、Flash、背景音乐等文件。其实只要各位对javascript代码有所了解,就算只用已经公开发布的CtrlN,要得到E书中的这些文件也不是很难。
事先声明:
1、下面所有方法均基于javascript,因此可能会给人绕圈子的感觉,效果也无法与直接调用IE非公开接口的IECracker、KillEBook相比。不过这样正好平衡:对于有意通过反编译学习他人做书经验的好学者,用javascript本身就是一个练手的过程,而这种方法又很难用于批量反编译,因此做书的人也不必产生过多的担忧。杀鸡取蛋的事俺是不做的,哈哈……
2、为了便于使用,下面给出的javascript写得都很傻瓜,所有URL分析工作都交给代码完成,各位只要会按Ctrl+C、Ctrl+V键就好。但是自动化操作毕竟有其极限,对于大多数网页来说用这些代码应该可以搞定,但是如果碰到搞不定的网页,还是要靠人工对HTML代码进行分析。在分析时如果碰到加密网页,可以用CtrlN的“HTML片段”功能,对加密HTML进行解码。在源代码中查找链接时,可以用搜索功能快速定位。
3、现在基于IE内核的电子书基本上通过自定义协议插件实现,对javascript协议插件的支持程度不一,因此如果代码在某些电子书上出现错误,请不必奇怪。
4、除了用于反编译E书,这些代码在平时浏览正常网页时也有用,如用来抓网页中的Falsh文件。
5、所有代码均在Windows XP SP2下测试通过,其它环境我没试,不过估计IE版本不能低于6.0。
6、所有代码均为我的原创,个人可以免费使用,网站转载、商业牟利请先获得我的授权。
二、从E书或网页中获取文件的一般步骤
从E书或普通网页中获取各种文件的步骤基本相同,只是需要输入的javascript代码不同:
启动CtrlN。这是为了防止电子书或网页禁用快捷键。如果你确认快捷键没有被禁,可以省略这一步,在第3步直接按Ctrl+N键。
打开电子书或IE,进入引用了需要抓取的css、js、Flash等文件的页面。注意这里必须是真正的页面,不能是frame。后面会谈到如何判断frame及如何进入frame页面。
将CtrlN的“快捷键行为”设置为“弹出新窗口”,然后用鼠标在欲抓取的网页上点一下,再按下Ctrl+N键,弹出新的IE窗口,里面显示的内容与欲抓取的页面内容相同,地址栏上显示有页面的URL。
在弹出的IE窗口中,根据需要将对应的javascript代码(后面会给出)复制、粘贴到地址栏上,然后按回车键即可。
对于IE 6,第一次运行javascript代码可能会在地址栏下弹出一个黄条,提示这段代码被阻止运行,点一下黄条,选择“允许阻止的内容”,然后再重复步骤3、4,即可看到结果。
三、从E书或网页中获取链接进来的css文件
javascript本身提供了获取外部css文件内容的接口,因此在前述一般步骤的步骤4中,将下面内容复制、粘贴到IE地址栏上,然后按回车键即可看到内容:
javascript:str='';c=document.styleSheets;for(i=0;i<c.length;i++){o=c[i];if (o.href=='')continue;str+='========== ';str+=o.href;str+='<br><xmp>\n';str+=o.cssText;str+='</xmp><br><br>\n';};document.write(str);
如果当前HTML页面没有链接到外部css文件,则步骤4完成后无反应或显示一个空页,这时可以检查一下页面的HTML源代码进行确认。如果当前页面链接了多个css文件,所有css文件内容都会显示出来,格式经过IE排版后可能和原始css代码不同,但是效果绝对相同。如果只显示出css文件的文件名,下面无内容,则说明E书没有把这个css打包进去。
对于某些电子书,也可以试试下面这段代码:
javascript:str='<HTML><HEAD><BASE HREF="';str+=document.URL;str+='"></HEAD><BODY><br>\n';c=document.styleSheets;for(i=0;i<c.length;i++){o=c[i];if (o.src=='')continue;str+='<a href="';str+=o.href;str+='">';str+=o.href;str+='</a><br>\n';};str+='</BODY></HTML>';document.write(str);
这段代码自动对网页进行检查,如果网页中嵌入了css文件,则自动显示出css文件的下载链接,否则显示一个空页或无反应。在链接上点鼠标右键再选“目标另存为”菜单,即可将文件保存到硬盘上。如果不能保存,可将js文件的URL复制到地址栏上,然后按回车试试。不过如果注册表项HKEY_CLASSES_ROOT\CSSfile\shell下面有open、edit等子项,则获得的css代码会直接在open或edit子项指定的程序中打开而不是提示存盘。这种方法的适用范围远远不如前面直接显示的方法,不是所有电子书都能用的,但只要能用,得到的绝对是原汁原味的css代码。
四、从E书或网页中获取链接进来的js文件
javascript没有提供获取js文件内容的接口,因此首先要对注册表进行改造:运行regedit,定位到HKEY_CLASSES_ROOT\.js,在它下面增加两个字符串类型的值:
Content Type=application/x-javascript
PerceivedType=text
如果修改的时候不放心,可以参考HKEY_CLASSES_ROOT\.css的缺省设置,它们只是Content Type的值不同。注册表改造是一次性的工作,改完就不用再动。
在改造完成后,用CtrlN抓取js文件的步骤与前述一般步骤相同,在步骤4中,将下面内容复制、粘贴到地址栏上,然后按回车键即可看到内容:
javascript:str='<HTML><HEAD><BASE HREF="';str+=document.URL;str+='"></HEAD><BODY><br>\n';c=document.scripts;for(i=0;i<c.length;i++){o=c[i];if (o.src=='')continue;str+='<a href="';str+=o.src;str+='">';str+=o.src;str+='</a><br>\n';};str+='</BODY></HTML>';document.write(str);
这段代码自动对网页进行检查,如果网页中嵌入了js文件,则自动显示出js文件的下载链接,否则显示一个空页或无反应。在链接上点鼠标右键再选“目标另存为”菜单,或直接点链接;即可将文件保存到硬盘上。如果不能保存,请先确认是否已经按照上面说的方法对注册表进行过设置;如果还不行,可以将js文件的URL复制到地址栏上,然后按回车试试。
比较怪异的是用eBook Workshop做的E书(页面URL以ada99:开头),在地址栏上敲入js文件的URL然后回车,会直接显示出js文件内容及其执行结果,需要点“查看->源文件”菜单才可以获得原始js文件代码。不过这种书一般都用unEbookWorkshop反编译了吧?
五、从E书或网页中获取Flash文件
对于Flash这种嵌入对象的文件,直接下载就可以,因此在前述一般步骤的步骤4中,将下面内容复制、粘贴到地址栏上,然后按回车键即可看到内容:
javascript:str='<HTML><HEAD><BASE HREF="';str+=document.URL;str+='"></HEAD><BODY><br>\n';c=document.all;for(i=0;i<c.length;i++){o=c[i];if(o.tagName!="OBJECT")continue;sih=o.innerHTML;nd=document.createDocumentFragment();nd.appendChild(document.createElement('<bod></body>'));nd.firstChild.outerHTML=sih;no=document.createElement(nd.firstChild.outerHTML);document.body.appendChild(no);str+='<a href="';str+=no.src;str+='">';str+=no.src;str+='</a><br>\n';};str+='</BODY></HTML>';document.write(str);
这段代码自动对网页进行检查,如果网页中嵌入了Flash对象,则自动显示出swf文件的下载链接,否则显示一个空页或无反应。在链接上点鼠标右键,选“目标另存为”,即可将文件保存到硬盘上。如果直接点击链接,则会显示出Flash画面。
我经常看到有人问:“怎样抓取网页上的漂亮Flash?”,其实答案就是这么简单,平时上网俺也经常用这段代码抓Flash,不过需要注意:如果页面镶嵌在frame中,则需要突破frame进入真正的页面中才能使用这段代码。另外这段代码使用了createDocumentFragment方法,只能在IE 6上运行。
现在还有一种很极端的电子书:整本书只有一个网页,里面嵌入了一个Flash文件作为目录,点击Flash中的链接,则转入其它Flash文件,即真正的内容藏在一堆Flash文件里。对于这种电子书,用上面的代码一次只能抓到一个Flash,需要逐步点进去才能抓全,有的甚至要用flasm反编译出抓到的Flash文件的运行脚本,再从脚本中找出它所链接的其它Flash文件的文件名(俺都是很卑鄙地直接搜索.swf),然后将文件名转成绝对URL,即可生成下载链接。例如已知某Flash文件的绝对URL为http://ebook/pic.swf,则用下面的代码可以单独下载此文件:
javascript:document.write('<a href="http://ebook/pic.swf">右键另存为</a>');
这种方法每次都要改URL,当然比前面说的方法麻烦,但是有时候也只能用这种方法。顺带一提,flasm还真是个好东西,某些Flash文件在脚本中限制该文件只能在网络上播放,不能从本地硬盘播放,也可以用它去除这种限制。
六、从E书或网页中获取背景音乐文件
背景音乐文件可以象Flash一样直接下载,因此在前述一般步骤的步骤4中,将下面内容复制、粘贴到地址栏上,然后按回车键即可看到内容:
javascript:str='<HTML><HEAD><BASE HREF="';str+=document.URL;str+='"></HEAD><BODY><br>\n';c=document.all;for(i=0;i<c.length;i++){o=c[i];if(o.tagName!="BGSOUND")continue;str+='<a href="';str+=o.src;str+='">';str+=o.src;str+='</a><br>\n';};str+='</BODY></HTML>';document.write(str);
这段代码自动对网页进行检查,如果嵌入了背景音乐,则自动显示出背景音乐的下载链接,否则显示一个空页或无反应。在链接上点鼠标右键,选“目标另存为”,即可将文件保存到硬盘上。
注意背景音乐一般隐藏在frame中(否则一换页面音乐就被打断了),如果弹出的页面包含frame,而不是真正包含背景音乐链接的页面,就会抓不到。这时还需要按后面说的步骤进入frame中的页面。
另外有些E书为了避免单调,会一次打包进去几个midi文件,每次运行的时候随机选择一个作为背景音乐。对于这样的E书,用上面的代码只能抓到当前背景音乐。如果想抓全部,只能自己对网页源代码进行分析,组合出全部背景音乐的URL,然后在地址栏上输入生成下载链接的javascript代码再回车,一次下载一个。注意在下载链接上也只能点右键后选“目标另存为”,不能直接点链接。如果实在没有本事对网页源代码进行分析,只能多运行几回、多抓几回了,正所谓“落后就要挨打”。示例:已知某音乐文件的绝对URL为http://ebook/1.mid,则生成下载链接的代码为:
分享到:
相关推荐
1. **IE缓存**:当我们在网上浏览网页时,IE浏览器会自动下载并存储网页的各个部分,包括图片、JavaScript、CSS文件以及Flash内容等,以提高后续访问的速度。这些临时文件就构成了IE的缓存。通过了解和操作这个缓存...
标题中的“JS CSS FLASH各种幻灯片集合”指的是一个资源包,其中包含了使用JavaScript (JS), Cascading Style Sheets (CSS), 和Adobe Flash技术实现的各种幻灯片效果。这些技术都是网页设计中常用的,用于创建动态、...
在IT行业中,网页设计是至关重要的一环,而CSS、JavaScript以及Flash这三种技术则是构建动态、交互性网页的重要工具。本文将深入探讨这些技术及其在创建特效中的应用。 首先,CSS(Cascading Style Sheets)是一种...
在本项目中,CSS3 被广泛应用于网页的设计,包括但不限于: - **布局**:利用 Flexbox 或 Grid 进行响应式布局设计,以适应不同屏幕尺寸的设备。 - **动画**:通过 CSS3 的动画属性(如 `transition` 和 `animation...
CSS(Cascading Style Sheets)是一种用于定义网页中元素样式和布局的语言。中文版的CSS参考手册通常包含以下知识点:选择器(如元素选择器、类选择器、ID选择器等)、属性(如颜色、字体、边距、背景、布局等)、盒...
这个压缩包文件包含了多个关于网页设计和开发的CHM电子书,涵盖了Div、JavaScript、VB、HTML和CSS等关键主题,以及XML的相关资料,这些都是构建高效、动态、美观网页的基础。 首先,HTML(HyperText Markup ...
- **元素使用**:除了基本的文本和图片元素外,还包含了一些高级元素的使用,如视频、音频、Flash等多媒体元素,增加了网页的趣味性和实用性。 - **代码注释**:虽然没有具体提到,但一个好的实践是在代码中添加...
标题中的“仿Flash效果的两款Javascript+CSS滑动菜单”是指使用JavaScript和CSS技术来创建类似Flash动画效果的交互式菜单。在Web开发中,这种技术可以为网站增添动态感和用户体验,而无需依赖Adobe Flash插件,这在...
- **Flash**: 尽管Flash在现代网页设计中的使用已经越来越少,但仍然可以在某些情况下使用Flash Player插件来播放Flash内容。 ### 5. 表单及其验证 - **表单**: 使用HTML中的`<form>`标签来创建表单,通过`<input>...
### 如何在网页中利用JavaScript调用Flash动画 随着互联网技术的发展,网页设计与开发领域不断引入新的技术和标准。在过去的年代里,Flash是创建动态和交互式内容的重要工具之一。本文将详细介绍如何通过JavaScript...
例如,我们可以通过CSS将Flash嵌入网页,并用JavaScript控制其播放、暂停等行为。同时,为了提高网站的可访问性和搜索引擎优化,可以使用HTML5的`<video>`或`<audio>`标签作为Flash的替代方案。 综上所述,构建一个...
- **`<script type="text/javascript" src="js/HappyBirth.js"></script>`**: 特定于该表白网页的自定义JavaScript文件,用于实现特定功能或动画效果。 ### 知识点四:HTML编辑软件兼容性 #### 4.1 支持的编辑工具...
- **个性化定制**: 用户可以根据个人喜好调整网页中的文字、图片及音乐等元素。 - **动画效果**: 通过CSS3与JavaScript实现了多种动态效果,如烟花爆炸、人物互动等。 - **多媒体支持**: 支持视频、音乐与Flash等...
在上面的代码中,"test"是将要在SWF文件中获取的参数名,而getURLParam("test")是一个自定义的JavaScript函数,用来从当前URL中获取名为"test"的参数值。 ### 知识点四:注意事项 1. 确保网页中的JavaScript正确地...
HTML5期末考核大作业源码 包含 个人、 ...都是给学生定制的都符合学生考试期末作业的水平,有的有js,有的视频+音乐+flash的等 元素的插入。 【查看更多源码地址】:https://blog.csdn.net/VX_WJ88950106?type=blog
【标题】"仿flash相册(js+css)"是一个使用JavaScript和CSS技术实现的动态相册,旨在提供与Flash相册类似的功能和用户体验。在Web开发中,由于Adobe Flash逐渐被淘汰,开发者们开始寻找替代方案,JavaScript和CSS...
- **CSS样式**: 使用CSS选择器和属性来美化页面,包括颜色、字体、布局等。 - **JavaScript动态效果**: 通过JavaScript添加简单的交互效果,如鼠标滑过显示隐藏内容、表单验证等。 - **多媒体应用**: 插入视频、音频...
在提供的压缩包文件中,"统计图控件"很可能包含了用Flash和JavaScript编写的统计图示例代码和资源。开发者可以通过这些示例学习如何创建和集成统计图到自己的项目中。可能包含的文件有SWF(Flash文件)、JS...
Uploadify是一款广泛应用于Web开发中的文件上传插件,它通过JavaScript和CSS技术提供了一种用户友好的、异步的文件上传解决方案。这个插件允许用户批量上传文件,并且在上传过程中提供了进度显示,大大提升了用户...