主頁(yè) > 知識(shí)庫(kù) > 常見(jiàn)電子書格式及其反編譯思路分析第1/3頁(yè)

常見(jiàn)電子書格式及其反編譯思路分析第1/3頁(yè)

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

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

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

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

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

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

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

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

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

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

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

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

2.2 基于IE內(nèi)核的電子書 
隨著互聯(lián)網(wǎng)的發(fā)展,現(xiàn)在越來(lái)越多的網(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)秀的壓縮格式,感覺(jué)壓縮比要比zip、rar大。 

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

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

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

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

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

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

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

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

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

2.2.2 EXE格式 

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

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

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