文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络技术网络管理常见电子书格式及其反编译思路
精品推荐
特别推荐
·局域网共享的具体设置
·网络故障诊断排除70例
·宽带拨号连接密码恢复原理
·网管好帮手 最常用的网络命令精萃
·共享:宽带ADSL拨号应用技巧五则
·Windows域信任关系建立全攻略
·IE主页被修改的处理方法
·Windows系统使用的文件及打开方式
·操作电脑最忌的十八个小动作
·ping 命令的用法大全
热点TOP10
·教你学习如何破解XP登陆密码
·初级网管或黑客必需撑握的8个DOS命令
·操作电脑最忌的十八个小动作
·常用的网络测试命令
·最全面的WindowsXP修改大全
·网络速度我做主,限制带宽小技巧
·ping 命令的用法大全
·VPN访问故障之排疑解惑
·各位网友能不能告诉我个速度快点的电信HTTP代理服务器?
·局域网共享的具体设置

常见电子书格式及其反编译思路

日期:2008年3月18日 作者: 查看:[大字体 中字体 小字体]


获取页面上的所有元素内容,包括图片等。
引导IE内核依次加载HTML链接页面。
重复步骤3~6,直到所有页面及其中的元素都已获取到。
5、进一步讨论
在完成KillEBook后,我发现其实对它扩展一下,就可以成为一种新的离线浏览器,解决传统离线浏览器(Offline Explorer Pro、Webzip等)面临的一个问题:传统离线浏览器多半与IE内核没什么瓜葛,因此在抓静态网页的时候都没有什么问题,但是在抓用session维持的动态网页时,都有点问题,更不用说抓需要PKI证书验证的HTTPS网站。
因此我考虑可以实现这样一个离线浏览器:
提供一个地址栏供用户输入起始URL。
内嵌一个微软web browser控件(IE内核),供用户交互,包括在网页上输入用户名/密码、从IE证书库中选择证书。
用户登录成功、进入需要开始抓取的网页后,设定递归深度、URL过滤条件,点“开始”按钮开始抓取。
离线浏览器自动引导web browser进入每个页面,每进入一个页面,都通过web browser控件获取客户端HTML源代码及页面元素,包括图片、css、js、flash等。
采用这种方法实现的离线浏览器,由于使用web browser控件,因此可以维持客户端session,抓取到动态网页。虽然网页抓取下来就成了静态的,但是对离线浏览来说应该不成问题,对付收费的网上教育等网站正好合适。
2.3 HLP格式
这种格式出现得比较早,在16位Windows(Windows 95以前的各Windows版本)下曾是标准的帮助文件格式,因此大概也算是Windows下出现得最早的电子书格式之一了。
由于这种格式比较流行,国外研究的也比较多,不过公开源代码的我似乎只见过一个HELPDECO v2.1。这个软件是一个控制台程序,因此有人做了一个GUI外壳DuffOS对它进行封装。国内有人对HELPDECO进行过汉化,到汉化新世纪搜索一下就可以找到,包括全部源代码。
在UnEBook中使用了HELPDECO的源代码,实现对HLP文件的批量反编译。不过从我使用的情况看,原版HELPDECO有一个小小的不足:反编译出来的RTF文件没有指定字符集。这对英文RTF来说没有任何影响,但是对中文RTF来说,其影响足够强到使您打开RTF后看到的是一堆乱码。它的修正方法有两个:
用文本编辑器打开反编译出来的RTF文件,手工指定中文字符集。这个是一种比较累的方法。
修改HELPDECO源代码,加上字符集修正,这个是一劳永逸的办法。但是不知道为什么,在汉化新世纪推出的汉化版上,我看到的还是原版的HELPDECO。看来汉化者只是用它反编译过英文HLP,没有反编译过中文HLP。
另外这份源代码还有一个不知道算不算是严重的问题:变量没有统一初始化、释放,因此不仅在程序退出的时候,VC++会报告有内存漏洞,而且就象当年的DOS内核一样,几乎没有可重入性。我曾经试图修复这个bug,但是在经过一个下午的奋斗后,有两处泄漏死活找不到。最后我还是决定向DuffOS学习:将HELPDECO代码封装成一个独立的DLL,每反编译一个HLP文件,都动态加载、释放一次DLL。这样一方面可以利用Windows本身的DLL管理机制,弥补HELPDECO产生的内存漏洞,一方面解决不可重入问题。收费的“耶书制造”软件提供的HLP反编译功能也是用DLL文件实现的,因此我严重怀疑它的作者可能也曾遇到过相同的烦恼,嘿嘿嘿……
从HLP文件反编译出来的RTF文件,一般包含大量书签、分页符等与实际文本内容无关的东西,有必要转换成纯文本格式。这个实现倒是比较简单:
创建一个Windows标准的RichEdit控件,当然没有必要在用户界面上显示出来。
按SF_RTF格式,StreamIn原RTF文件内容。
按SF_TEXT格式,StreamOut文本内容。
UnEBook提供的从RTF到TXT的批量转换功能,就是按照上面的方法实现的。

2.4 小说网/小说世界(ebx/XReader)
这两家网站提供的电子书使用的是同一个阅读器,只不过小说网出现得比较早,提供的电子书多半不需要验证码,而小说世界出现得比较晚,提供的电子书多半需要输入验证码。
这种电子书分两种:ebx和EXE格式。ebx格式的电子书需要用专用浏览器XReader才能浏览,EXE文件的内容其实就是XReader + ebx包构成。
国内Cyu曾经推出过反编译这种EXE格式的工具--xReader Unpacker。从我试用的情况来看,这个工具的实现应该是基于对EXE文件格式的辛苦分析,果然勤劳善良的中国人什么时候都有啊!不过从我试用的结果看,这个工具也存在下列问题:
一次只能反编译一个文件,不能批量反编译,使用起来略有不便。
反编译出来的文件用左侧目录树中对应的节点命名,完全失去了文件的先后顺序。
在反编译某些文件,如《血酬定律--中国历史中的生存游戏》的时候,会出错退出。我个人猜想可能是因为对书中多级目录处理不当。
奇怪得很,只能对EXE文件进行反编译,不能对ebx文件反编译,其实这两种文件本是两位一体的。
当然,我试用的只是最初版本的xReader Unpacker,后来听说作者又进行了更新,这些问题都解决了也说不定。
在考虑反编译这种格式的电子书的时候,因为我已经在思考针对IE内核的通用反编译方法,因此从一开始我就没打算对文件格式进行分析,而是打算从界面元素入手,看看有没有什么后面可走:
先用IECracker抓一下窗口,发现根本就不是基于IE内核的东西。这个时候首先想到的就是:软件作者会不会向起点中文网学习,将内容转换成图片,然后再显示?但是很快就否定了这个可能,一方面是因为XReader提供了文字放大、缩小功能,另一方面是因为启动金山词霸后,将光标往窗口上一放,词霸显示出了抓词内容。这个时候脑袋里一闪念间,也曾出现过一个反编译方案:干脆向金山词霸学习,做一个API hook,抓它的显示内容算了,哈哈……

上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页 




上一篇:磁盘坏道修复

下一篇:10种常见计算机无法启动故障解决方法

相关文章:
·电子书籍下载大放送
·Firefox 使用常见问题和解决方法
·转换MP4/3GP格式的至尊法宝---MP4/RM转换专家
·网络赚钱常见误区
·MPEG、RM、WMV电影文件格式转换指南
·KMPlayer常见问题及解决方法整理
·vb 高手搜集-常见问题总结(1)
·vb高手搜集-常见问题总结(3)
·Windows系统常见故障的解决方法
·如何将文字、表格、演示稿转为PDF格式
相关软件:
·网络常见问题与故障1000例
·二十四部古文学电子书合集
·中国网管论坛精华电子书
·性保健和性疾病CHM电子书
·硬盘分区与格式化详解
·eREAD电子书阅读器v6.0 Version 20080201
·中国名菜电子书16册
·新概念英语电子书
·英语口语8000句电子书及录音 完美版[英语学习最佳工具]
·fdisk分区详解电子书教程

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot