用JavaScript获取网页中的js、css、Flash等文件_典型特效
作者:马健
邮箱:stronghorse@tom.com
主页:http://stronghorse.yeah.net
版本:1.01
初始发布日期:2005.08.29
最后更新日期:2005.09.28
目录
一、前言
二、从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书或普通网页中获取各种文件的步骤基本相同,只是需要输入的JavaScript代码不同:
- 启动CtrlN。这是为了防止电子书或网页禁用快捷键。如果你确认快捷键没有被禁,可以省略这一步,在第3步直接按Ctrl+N键。
- 打开电子书或IE,进入引用了需要抓取的css、js、Flash等文件的页面。注意这里必须是真正的页面,不能是frame。后面会谈到如何判断frame及如何进入frame页面。
- 将CtrlN的“快捷键行为”设置为“弹出新窗口”,然后用鼠标在欲抓取的网页上点一下,再按下Ctrl+N键,弹出新的IE窗口,里面显示的内容与欲抓取的页面内容相同,地址栏上显示有页面的URL。
- 在弹出的IE窗口中,根据需要将对应的JavaScript代码(后面会给出)复制、粘贴到地址栏上,然后按回车键即可。
对于IE 6,第一次运行JavaScript代码可能会在地址栏下弹出一个黄条,提示这段代码被阻止运行,点一下黄条,选择“允许阻止的内容”,然后再重复步骤3、4,即可看到结果。
JavaScript本身提供了获取外部css文件内容的接口,因此在前述一般步骤的步骤4中,将下面内容复制、粘贴到IE地址栏上,然后按回车键即可看到内容:
javascript:str='';c=document.styleSheets;for(i=0;i
\n';};document.write(str);
如果当前HTML页面没有链接到外部css文件,则步骤4完成后无反应或显示一个空页,这时可以检查一下页面的HTML源代码进行确认。如果当前页面链接了多个css文件,所有css文件内容都会显示出来,格式经过IE排版后可能和原始css代码不同,但是效果绝对相同。如果只显示出css文件的文件名,下面无内容,则说明E书没有把这个css打包进去。
对于某些电子书,也可以试试下面这段代码:
javascript:str='
\n';c=document.styleSheets;for(i=0;i
\n';};str+='';document.write(str);
这段代码自动对网页进行检查,如果网页中嵌入了css文件,则自动显示出css文件的下载链接,否则显示一个空页或无反应。在链接上点鼠标右键再选“目标另存为”菜单,即可将文件保存到硬盘上。如果不能保存,可将js文件的URL复制到地址栏上,然后按回车试试。不过如果注册表项HKEY_CLASSES_ROOT\CSSfile\shell下面有open、edit等子项,则获得的css代码会直接在open或edit子项指定的程序中打开而不是提示存盘。这种方法的适用范围远远不如前面直接显示的方法,不是所有电子书都能用的,但只要能用,得到的绝对是原汁原味的css代码。
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='
\n';c=document.scripts;for(i=0;i
\n';};str+='';document.write(str);
这段代码自动对网页进行检查,如果网页中嵌入了js文件,则自动显示出js文件的下载链接,否则显示一个空页或无反应。在链接上点鼠标右键再选“目标另存为”菜单,或直接点链接;即可将文件保存到硬盘上。如果不能保存,请先确认是否已经按照上面说的方法对注册表进行过设置;如果还不行,可以将js文件的URL复制到地址栏上,然后按回车试试。
比较怪异的是用eBook Workshop做的E书(页面URL以ada99:开头),在地址栏上敲入js文件的URL然后回车,会直接显示出js文件内容及其执行结果,需要点“查看->源文件”菜单才可以获得原始js文件代码。不过这种书一般都用unEbookWorkshop反编译了吧?
对于Flash这种嵌入对象的文件,直接下载就可以,因此在前述一般步骤的步骤4中,将下面内容复制、粘贴到地址栏上,然后按回车键即可看到内容:
javascript:str='
\n';c=document.all;for(i=0;i
\n';};str+='

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JavaScript字符串替换方法详解及常见问题解答 本文将探讨两种在JavaScript中替换字符串字符的方法:在JavaScript代码内部替换和在网页HTML内部替换。 在JavaScript代码内部替换字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 该方法仅替换第一个匹配项。要替换所有匹配项,需使用正则表达式并添加全局标志g: str = str.replace(/fi

因此,在这里,您准备好了解所有称为Ajax的东西。但是,到底是什么? AJAX一词是指用于创建动态,交互式Web内容的一系列宽松的技术。 Ajax一词,最初由Jesse J创造

10款趣味横生的jQuery游戏插件,让您的网站更具吸引力,提升用户粘性!虽然Flash仍然是开发休闲网页游戏的最佳软件,但jQuery也能创造出令人惊喜的效果,虽然无法与纯动作Flash游戏媲美,但在某些情况下,您也能在浏览器中获得意想不到的乐趣。 jQuery井字棋游戏 游戏编程的“Hello world”,现在有了jQuery版本。 源码 jQuery疯狂填词游戏 这是一个填空游戏,由于不知道单词的上下文,可能会产生一些古怪的结果。 源码 jQuery扫雷游戏

本教程演示了如何使用jQuery创建迷人的视差背景效果。 我们将构建一个带有分层图像的标题横幅,从而创造出令人惊叹的视觉深度。 更新的插件可与JQuery 1.6.4及更高版本一起使用。 下载

本文讨论了在浏览器中优化JavaScript性能的策略,重点是减少执行时间并最大程度地减少对页面负载速度的影响。

Matter.js是一个用JavaScript编写的2D刚体物理引擎。此库可以帮助您轻松地在浏览器中模拟2D物理。它提供了许多功能,例如创建刚体并为其分配质量、面积或密度等物理属性的能力。您还可以模拟不同类型的碰撞和力,例如重力摩擦力。 Matter.js支持所有主流浏览器。此外,它也适用于移动设备,因为它可以检测触摸并具有响应能力。所有这些功能都使其值得您投入时间学习如何使用该引擎,因为这样您就可以轻松创建基于物理的2D游戏或模拟。在本教程中,我将介绍此库的基础知识,包括其安装和用法,并提供一

本文演示了如何使用jQuery和ajax自动每5秒自动刷新DIV的内容。 该示例从RSS提要中获取并显示了最新的博客文章以及最后的刷新时间戳。 加载图像是选择
