抵抗物件置換
保護工具通常會附掛保護函數庫檔案,我們可以將函數表輸出,寫一個具有相同函數表的函數庫檔案 (不需完全實作其內容,只是驗證其行為模式),將它待換掉原來的檔案,如果保護軟體仍未發現任何異常,即表示這個保護機制可以被模擬而取代。
抵抗檔案篡改
破解軟體保護的目的是要修改軟體,繞過版權檢查點跳躍,這樣的行動作必須動到修改程式碼並存檔,也就是篡改,可從檢查保護後的軟體檔案,可否被篡改來得知檔案的完整性 (原始性) 能否被維護,如果完整性無法被維護,代表這個檔案可以被修改後能仍執行,也等同有被繞過版權檢查程式的危機。
檢測的方法很簡單,只要使用能編輯 Binary code 的編輯器,如 Ultra Editor,將保護後的執行檔案開啟,找到檔案前段的屬性敘述區,這一段資料不影響檔案執行的,只要修改一個 Bit 後,然後將它存檔,接著我們去執行它,看它能否執行,如果照常執行,代表保護機制無法維護其程式的完整性。
抵抗單步執行除錯
破解軟體保護常用的工具是軟體除錯器,軟體除錯器有些內嵌在程式開發工具,有一些獨立的軟體除錯工具,如SoftICE、OllyDBG、WinDBG。
除錯器可以對執行檔執行單步指令追蹤,駭客可以藉由指令的執行和畫面變化找出版全檢查點,並加以修改,或者了解原始創作的邏輯。
即使在完整合法的版權執行條件下,保護機制若不能偵測並干擾除錯器的運行,那意味著無論採用何種保護,基本上它都是不安全的。檢測的方法很簡單,以除錯器對合法版權條件下 (接上保護鎖或安裝了註冊碼) 的執行檔,進行單步執行,若無法執行或一直再某個迴圈運行,無法如正常程序進行畫面,則代表這個保護機制具備抗除錯器的功能。反之,若如原來一般正常執行,則代表所謂安全的後門是打開的,保護機制隨時有被破解的可能。
如果上述3項檢驗都能過關,表示這個保護機制強度很高。
若能通過2項,表示這個保護機制的壽命不會太久,你必須常更換保護策略。
若只能通過1項,那表示只要產品被駭客盯上,短期內就會被破解。
很多軟體版權保護工具,也有 【不願面對的真相】,許多保護工具業者會以商業機密為由,不願公佈其實作理論,儼然是一個黑箱作業,多數業者不願提供製作出來軟體可能的漏洞和技術理論及其驗證方法。
表面上,軟體商買了工具,並遵循保護工具手冊的指引,製作出具備版權保護的軟體,但是,並沒有說明怎麼去檢驗軟體的保護強度和安全度。相信許多軟體商仍抱持 【有燒香有保佑】 心態,去使用保護工具,期待世界的另一個角落,意圖瓢竊創作的人能夠知難而退,但是卻無法驗證事實是否如此。但是大多數的人應該同意,我們所處的地方看不見,但並不代表盜版的情形不存在,即使採用了保護策略,盜版仍有所聞,所以至少保護工具業者應該說明產品的強度為何,實為負責任之商家所為。
如同現代工業為所有原料和設備制定其標準,破壞條件是必要的檢測項目之一,抗破壞能力越強的東西,價值越高。其實,軟體保護工具的強度也是可以被檢驗的,並不會因為保護工具業者不公佈保護技術理論而變得更安全,反而,可以被公開來檢視驗證的東西,才能令人信任。我們可用從破解保護的手法,很容易檢驗出保護工具所製作出來的軟體,強度為何。我們從以下三種破解手法來看待軟體保護工具的強度。
正新官網:www.pronew.com.tw 04-24738309
#程式碼加密 #程式碼混淆 #抗反組譯 #加密工具 #抗Dump工具 #抗Debug工具 #.Net程式#SafeNet #正新電腦 #軟體保護 #資訊安全
留言列表