用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脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。1)C 用于解析JavaScript源码并生成抽象语法树。2)C 负责生成和执行字节码。3)C 实现JIT编译器,在运行时优化和编译热点代码,显著提高JavaScript的执行效率。

Python更適合數據科學和自動化,JavaScript更適合前端和全棧開發。 1.Python在數據科學和機器學習中表現出色,使用NumPy、Pandas等庫進行數據處理和建模。 2.Python在自動化和腳本編寫方面簡潔高效。 3.JavaScript在前端開發中不可或缺,用於構建動態網頁和單頁面應用。 4.JavaScript通過Node.js在後端開發中發揮作用,支持全棧開發。

JavaScript在網站、移動應用、桌面應用和服務器端編程中均有廣泛應用。 1)在網站開發中,JavaScript與HTML、CSS一起操作DOM,實現動態效果,並支持如jQuery、React等框架。 2)通過ReactNative和Ionic,JavaScript用於開發跨平台移動應用。 3)Electron框架使JavaScript能構建桌面應用。 4)Node.js讓JavaScript在服務器端運行,支持高並發請求。
