主頁 > 知識庫 > 常見電子書格式及其反編譯思路分析第1/3頁

常見電子書格式及其反編譯思路分析第1/3頁

熱門標(biāo)簽:外呼系統(tǒng)會封嗎 在電子版地圖標(biāo)注要收費(fèi)嗎 電銷機(jī)器人 深圳 萬利達(dá)綜合醫(yī)院地圖標(biāo)注點(diǎn) 地圖標(biāo)注如何弄全套標(biāo) 實(shí)體店地圖標(biāo)注怎么標(biāo) 股票配資電銷機(jī)器人 南京電銷外呼系統(tǒng)哪家好 武漢AI電銷機(jī)器人
聲明:本文可能夾雜大量技術(shù)術(shù)語,如果您對此感到不快,請勿繼續(xù)閱讀。  
本文僅僅討論一些思路,不會提供相關(guān)源代碼,最多也只提供源代碼網(wǎng)站的鏈接。如果您對此有所不滿,請勿繼續(xù)閱讀。 
本文僅僅從技術(shù)角度討論電子書反編譯問題,請勿將之用于侵犯版權(quán)等等非法目的,或損害他人利益。如果您對此感到失望,請勿繼續(xù)閱讀。  
本文版權(quán)歸作者所有,轉(zhuǎn)載前請先征得作者書面同意。  
1. 前言 
2. 常見電子書格式及其反編譯思路 
   2.1 PDF格式 
   2.2 基于IE內(nèi)核的電子書 
       2.2.1 CHM格式 
       2.2.2 EXE格式 
             2.2.2.1 Web Compiler 1.67 
             2.2.2.2 Caislabs eBook Pack Express 1.6 
             2.2.2.3 通用反編譯思路 
   2.3 HLP格式 
   2.4 小說網(wǎng)/小說世界(ebx/XReader) 
3. 結(jié)論 
附錄 基于IE內(nèi)核電子書的實(shí)現(xiàn)方式探討 

1. 前言 
本文所描述的電子書,指的是將原始的、可編輯的HTML、TXT、RTF、圖像文件等,打包成一個獨(dú)立的EXE,或其它只有專用瀏覽器才能讀取的文件,打包后的文件通常不可用常規(guī)工具進(jìn)行編輯、全文檢索。 

本文所描述的電子書反編譯,指的是將電子書中的內(nèi)容提取出來,還原或轉(zhuǎn)換成標(biāo)準(zhǔn)的、可編輯的HTML、TXT、RTF及圖像文件等。 

就像世間其它事物一樣,電子書編譯器和反編譯器的出現(xiàn)也都不是偶然的,都有其必然性。 

在電子書編譯器這一方來說,大概從有電子文檔那天開始,就有人琢磨著要對電子文檔打包了。我個人認(rèn)為這主要是從以下幾個方面進(jìn)行考慮: 

便于閱讀、管理。當(dāng)年在DOS下閱讀文本文件,尤其是中文文件比較麻煩,因此出現(xiàn)了自帶中文字庫、自帶基本瀏覽(翻頁、滾動)功能的DOS電子書;由于需要在不同OS平臺上獲得相同的閱讀效果,因此產(chǎn)生了跨平臺的PDF格式電子書;隨著互聯(lián)網(wǎng)絡(luò)的發(fā)展,大量信息以HTML格式出現(xiàn),但是面對一大堆HTML文件,并不是每個人都知道該去雙擊index.htm或default.htm的,而且文件太多,管理也成問題,因此出現(xiàn)了CHM格式和各種基于IE內(nèi)核的EXE格式電子書。  
便于保護(hù)知識產(chǎn)權(quán)、商業(yè)機(jī)密。這個問題的重要性相信大家現(xiàn)在都能理解了,不要說那些包含核心商業(yè)機(jī)密的東西,就算是區(qū)區(qū)一本小說,都會有些卑鄙小人把原始的HTML、TXT文件拿去加LOGO、打包,然后聲稱是自己“辛苦掃校的成果”,再堂而皇之地收取所謂“VIP費(fèi)用”。因此PDF一直將文檔安全性作為賣點(diǎn)之一,國內(nèi)的各種獨(dú)門格式電子書也以防反編譯、防內(nèi)容復(fù)制為首要目標(biāo)。  
而反對將通用格式打包成獨(dú)門格式的人,當(dāng)然也有自己的道理: 

便于全文檢索。如前所述,電子書一般不可用通常的檢索工具進(jìn)行全文檢索,這就為資料的有效利用設(shè)置了障礙。我個人認(rèn)為,藏書量在幾十本、上百本的時候,手工建立摘要、索引可能還可以接受;再多以后,我想要的就只是一個快速的全文檢索工具,就好像在互聯(lián)網(wǎng)環(huán)境下,對google的依賴一樣。  
便于修改。俗話說:“金無足赤,人無完人”,電子書也是人做的,有時難免會出點(diǎn)什么錯,或者因?yàn)橘Y訊的發(fā)展,需要對原有內(nèi)容加以修正、補(bǔ)充,這個時候如果面對的是一個不可編輯的EXE,您會有什么感想?  
節(jié)省時間和耐心。Windows在顯示文件列表的時候,需要讀取文件信息,EXE文件還要讀取ICON等,如果裝有反病毒軟件,進(jìn)入文件夾的時候,反病毒軟件一般還會自動對文件夾中的EXE文件進(jìn)行自動檢查,而電子書大小一般都在MB級,因此打開包含EXE格式電子書的時候,感覺速度巨慢,比較令人反感。  
節(jié)省空間。一般EXE格式電子書的標(biāo)準(zhǔn)架構(gòu)是:可執(zhí)行體+內(nèi)容+TOC。可執(zhí)行體指的是電子書的執(zhí)行代碼部分,包括程序代碼、插件代碼、界面資源等。內(nèi)容指的是電子書中真正包含的文本、圖像內(nèi)容,一般使用某種壓縮、加密算法進(jìn)行處理。TOC(Table Of Content)相當(dāng)于目錄索引,作用是加速對內(nèi)容的訪問。因此相對于直接用WinZip、WinRAR對原始內(nèi)容進(jìn)行壓縮,每一本EXE格式的電子書都會浪費(fèi)一部分磁盤空間,以存儲執(zhí)行體部分。電子書的軟件界面越花哨,這種浪費(fèi)一般也越大,我見過最夸張的電子書比原始內(nèi)容足足多出 1 MB多的東西。  
避免垃圾。對于某些基于IE內(nèi)核的電子書來說,由于實(shí)現(xiàn)技術(shù)的限制,可能會在注冊表和系統(tǒng)目錄下留下垃圾。  
安全。如果說如今的網(wǎng)絡(luò)社會是一個充滿惡意、毫無誠信的環(huán)境,可能有點(diǎn)夸張了,不過確實(shí)有人不知“做人要厚道”為何物。老實(shí)說,每次拿到一個來路不明的EXE格式的電子書的時候,我都在懷疑里面有沒有什么木馬、病毒,實(shí)在難受。  
便于平臺轉(zhuǎn)換,包括轉(zhuǎn)換到手持設(shè)備。EXE格式的電子書看起來可能很爽,但是畢竟只能在Windows下看,如果想在其它系統(tǒng)下看,尤其是在手持設(shè)備上看,唯一的出路就是反編譯了它。  
當(dāng)然,在反編譯后,也必須尋找合適的替代品,以繼續(xù)滿足原先的需要: 

打包工具。建議選擇Winzip或WinRAR,不僅使用方便,而且打包后文件也小,進(jìn)入目錄還快。  
閱讀工具。現(xiàn)在可以不解包就直接閱讀zip/rar文件內(nèi)容的軟件不少,一搜一大把,我自己都做過一個MyReader,不僅可以直接從ZIP/RAR中讀取內(nèi)容,還有自動定位index.htm、書簽、現(xiàn)場保護(hù)、資源瀏覽器右鍵菜單擴(kuò)展、zip/rar密碼自動記憶等功能。  
全文檢索工具。可以直接在zip/rar中全文檢索的軟件也有不少,我自己也做過一個FindStr,支持加密zip/rar,這個工具還可以與MyReader集成,搜索結(jié)果可以直接用MyReader直接打開,不需解包。另外它還支持批量文本替換,所以也經(jīng)常被我用來整理下載到的或反編譯出來的小說,包括去除廣告鏈接、絕對URL改成相對URL等。  
對勞動成果的保護(hù)。這個直接用zip/rar的密碼保護(hù)就好。  
2. 常見電子書格式及其反編譯思路 
2.1 PDF格式 
PDF格式是Adobe公司推出的一種跨平臺電子文檔格式,Adobe公司提供專用的文檔瀏覽器,使用戶可以在不同平臺下獲得相同的閱讀效果。 

其實(shí)Adobe公司提供的PDF編輯工具--Adobe Acrobat本身,就已經(jīng)支持將PDF文件另存為RTF格式,因此我對PDF的反編譯研究不多。不過這個功能似乎受到“文檔安全性”的限制,好在我google了一下,破解PDF安全保護(hù)的軟件似乎不少。如果真的對批量轉(zhuǎn)換有興趣,在codeproject上也有一篇文章,提供將PDF轉(zhuǎn)換成純文本的源代碼。 

從我使用的情況看,Adobe Acrobat本身輸出的RTF格式,對英文文檔來說應(yīng)該沒有什么太大的問題,頂多是格式有點(diǎn)變化,但是在輸出中文文檔的時候,偶爾會因?yàn)樽址a錯誤,導(dǎo)致輸出的文件在Word、寫字板中打開的時候,只能看到一堆亂碼。對于這種情況,手工替換一下字符集編碼即可解決。 

出現(xiàn)亂碼還有一種可能就是PDF文件中使用了自定義的字庫,導(dǎo)致轉(zhuǎn)換出來后的文件無法正常顯示,這個比較麻煩。PDF文件自帶字庫有兩種方式:自帶一種完整的字庫,稱為font embedding;只自帶一種字庫中要用到的那幾個字符,稱為font subsetting。在e類出版物論壇的“圖書制作、閱讀工具區(qū)”對此有過討論,需要的可以自己去看。 

不過有一次我試著用過一個叫PDF2Html的軟件,這個軟件的思想是將PDF文件的每一頁轉(zhuǎn)換成一個JPG文件,然后將JPG文件封裝到HTML文件里,加上目錄、翻頁按鈕等,這樣在網(wǎng)絡(luò)瀏覽的時候,連客戶端的Acrobat Reader及客戶端字體支持都可以省了。這個軟件的HTML文件模板做得怎樣先不去說它,最令我奇怪的是,轉(zhuǎn)換出來的圖像格式只能是JPG,不能是PNG。其實(shí)對于有大片白色背景的頁面來說,使用PNG格式不僅文件長度比JPG小,而且不會象JPG格式一樣,在文字、圖像邊緣產(chǎn)生許多細(xì)小的碎片(高次雜波)。 

2.2 基于IE內(nèi)核的電子書 
隨著互聯(lián)網(wǎng)的發(fā)展,現(xiàn)在越來越多的網(wǎng)絡(luò)文檔內(nèi)容是以HTML格式提供的,而微軟本身又以控件的形式提供了IE瀏覽器的內(nèi)核,可以很方便地被幾乎所有Windows下的編程工具所調(diào)用,因此目前基于IE內(nèi)核的電子書似乎占據(jù)了主流位置。 

2.2.1 CHM格式 
CHM(發(fā)音為“chum”)的原意是Compiled HTML help file,是微軟作為HLP格式(16位Windows下的標(biāo)準(zhǔn)幫助文件格式)的替代格式提出的,因此微軟自己不僅隨4.01以上版本的IE一起提供免費(fèi)的瀏覽器,而且免費(fèi)提供制作工具M(jìn)icrosoft HTML Help Workshop。 

CHM文件內(nèi)部使用ITS格式,這是一種非常優(yōu)秀的壓縮格式,感覺壓縮比要比zip、rar大。 

由于ITS格式的開放性,國外早就有人做出了CHM格式的獨(dú)立編譯、反編譯工具,并且公開了全部源代碼,需要的人可以到這里看: 

http://bonedaddy.net/pabs3/hhm/ 

這個網(wǎng)站除了提供CHM編譯、反編譯工具及其源代碼外,還提供CHM格式的詳細(xì)說明,當(dāng)然是英文的。我做的UnEBook在開始的時候,就使用了其中chmdeco的源代碼,實(shí)現(xiàn)批量反編譯CHM的功能。如果這個網(wǎng)站不幸登錄不了,google一下chmdeco就好,有很多備份站點(diǎn)的。chmdeco內(nèi)部使用的是chmlib的源代碼,這份源代碼很有名,除chmdeco外,chmtools用的也是它。 

不過在使用了一段時間后,我發(fā)現(xiàn)這份代碼在反編譯某些CHM文件的時候,會出現(xiàn)數(shù)組越界錯誤。這種錯誤出現(xiàn)的概率雖然不大,但是出現(xiàn)后還是比較心煩,因此最終放棄了這份代碼。 

現(xiàn)在UnEBook使用的CHM反編譯代碼是從這里改出來的: 

http://www.codeproject.com/winhelp/htmlhelp.asp 

這份代碼使用了微軟未公開的ITS文件訪問接口,直接對文件進(jìn)行操作。由于使用的都是微軟的東西,不僅目標(biāo)碼比較小,兼容性也好得多,目前還沒有遇到反編譯不出來的CHM文件(唯一的一次例外,是那個CHM文件本身就打不開),內(nèi)存漏洞什么的也沒有發(fā)現(xiàn)??磥砦④浀臇|西還是要由微軟來對付,方為王道。 

另外某些人制作CHM電子書的時候,為了省事,沒有制作index.htm,而是單純依賴左側(cè)的目錄樹進(jìn)行導(dǎo)航。對于這樣的電子書,在反編譯后,一般還需要根據(jù)生成的hcc文件,自動生成一個索引頁,以免看的時候不方便。hcc文件結(jié)構(gòu)大致如下: 

多級目錄通過UL>控制,見到UL>的時候往下走一級目錄,/UL>往回走一級。  
目錄項(xiàng)以O(shè)BJECT type="text/sitemap">開始,以/OBJECT>結(jié)束。以PARAM NAME="Name" VALUE="xxx">存放項(xiàng)名稱,PARAM NAME="Local" VALUE="xxx.html">存放項(xiàng)鏈接。  
某些目錄項(xiàng)可能只有名稱,沒有鏈接。  
在UnEbook中,不僅能夠根據(jù)hcc文件自動生成索引頁,還能自動生成框架頁,將索引頁和顯示頁嵌入框架中,以最大限度模仿CHM中的目錄效果。如果要完全模仿能夠動態(tài)伸縮的樹形目錄效果,則需要增加圖片、js、css等文件,實(shí)在得不償失。 

2.2.2 EXE格式 

除了CHM格式外,大量基于IE內(nèi)核的電子書是以EXE格式提供的。制作EXE格式的電子書工具現(xiàn)在似乎已成為一個產(chǎn)業(yè),養(yǎng)活了大批的程序員。雖然很多人認(rèn)為這種格式的電子書很酷:一個文件就可以執(zhí)行,界面也可以做得很漂亮,還可以帶密碼保護(hù)。但是我個人對這種格式的電子書是最最痛恨的:除了前面說到的安全性、速度、空間、檢索等問題外,我最心煩的一點(diǎn)是目前的EXE電子書都沒有好用的書簽功能,尤其是沒有能夠定位到頁面中任意位置的書簽功能,看長文檔看到一半的時候被打斷會很麻煩,所以自從MyReader實(shí)現(xiàn)了書簽功能后,我就下定決心一定要解決反編譯問題。 
123下一頁閱讀全文

標(biāo)簽:武威 汕頭 臺州 安徽 濟(jì)源 泰安 濟(jì)寧 廣東

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《常見電子書格式及其反編譯思路分析第1/3頁》,本文關(guān)鍵詞  常見,電子書,格式,及,其反,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《常見電子書格式及其反編譯思路分析第1/3頁》相關(guān)的同類信息!
  • 本頁收集關(guān)于常見電子書格式及其反編譯思路分析第1/3頁的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章