首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

破解 CEB 電子書列印限制:從二進位比對到標誌位修改的實戰記錄

     編輯:關於VC++

前言:免費資源難覓,付費下載卻遇阻

近期我萌生了自製作業系統的念頭(其實是想挑戰自我),卻苦於資料不足。身為窮 VC 程式設計師,囊中羞澀,購買實體書不切實際,下載電子書又往往碰壁——各位常混免費下載站的同仁應深有體會。偏偏某系列叢書有兩冊在網路上死活找不到,我便一咬牙,用公司發的 200 元紅包當作沒領,在某網站花 1100 下載幣購入。

下載並不便宜,單冊約 300 幣,我手頭的 1000 幣僅夠三本。以往從該站流出的盜版電子書多為 PDF 格式,本以為這次也同樣,沒想到付費進入下載頁面才發現:必須安裝 Apabi Reader,且唯有經由 Apabi 下載的檔案才能閱讀,中間還牽涉註冊、授權憑證等流程。安裝與註冊倒還免費,Apabi 介面甚至提供了下載 URL(經驗證,直接用 FlashGet 下載得到的資料與 Apabi 下載的截然不同),但該站限制僅能在三台不同機器上下載,帳戶資料僅保留半年。對我這「三年跳槽七次」的異類來說,這限制簡直無法接受。

所幸,我們破解版超星一族有利器——FlashPaper!

打印功能被封鎖?尋找破解突破口

滿心歡喜打開電子書,卻發現「列印」選單項雖在卻呈灰色不可用。難道是版本未授權?查閱附帶的 CBE 說明檔,明明寫著可使用「列印」功能,顯然是製作時被刻意封鎖。

在各大搜尋引擎無解、嘗試用 VC 呼叫 Apabi 提供的 OCX 失敗後,我想用官方製作工具對同一檔案處理後比對差異,找出封鎖列印的標誌位,可惜官方工具僅支援製作 CE 版本(XEB 檔)。無奈之下只好先保存檔案,期待日後有高人破解。為求穩妥,我先下載了收費章節,再下載站方提供的免費章節——免費章節無需 Apabi,直接是 RAR 檔,解開後仍是 CBE 格式。靈光一閃:既然繞過 Apabi,RAR 內只有一個檔案且無授權憑證,或許……果然,免費章節可以列印!

同一本書,同一軟體壓縮,參數必有 99% 相同。免費與收費章節差異僅在列印權限與授權憑證,且參數通常位於檔案頭部。只要比對兩者檔案頭,便能找到封鎖列印的標誌位(前提是該標誌位未加密)。

二進位比對:鎖定關鍵位元組

以下為兩個加密章節的比對結果:

加密章節與免費章節比對結果:

兩個免費章節比對結果:

由上圖可見,疑似隱藏標誌位的位置有:

  • 00000010 處(66 與 77 不同)
  • 00000014 處(06 與 07 不同)
  • 00000056~00000057(04 06 與 40 00 不同)
  • 00000067~00000068(AA 01 與 04 00 不同)
  • 0000006B 處(0A 與 07 不同)
  • 00000079 處(00 與 06 不同)

經反覆試驗,最終確認「列印」標誌位位於 0000006B 處,只需將 0A 改為 07,大功告成!

最後一句:方正別怪我,都是無良網站逼出來的……

代碼說明

無代碼,故無說明。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved