典型的基于軟件的保護技術包含以下五類:
基于注冊驗證的版權控制:注冊信息一般基于軟件使用者的用戶信息生成,可以是一串序列號或注冊碼,也可以是一個授權文件或其他的存在形式。在驗證比較嚴格的情況下,用戶信息應該包含標志用戶唯一性且不可復制的信息,可以采用的此類信息包括計算機的CPU、硬盤等關鍵部件的硬件序列號,計算機的IP地址、MAC地址等。
反逆向工程分析:反逆向分析的目的,就是要盡量隱藏提示信息和注冊驗證的代碼。可以采用的手段包括代碼混淆、設置代碼陷阱、程序加殼等。代碼混淆。將程序中的變量名、函數名用一些無規則字符替代,將對單個函數的調用拆解成對多個函數的復雜調用,達到混淆原始代碼的目的,這樣破解者對驗證邏輯的定位變得困難,即使破解者反編譯了原程序,也不能從中輕易理解原程序運行的邏輯。代碼陷阱。在程序文件中人為設置一些無用代碼或可能引起反編譯程序錯誤理解的代碼,使反編譯程序進入誤區。對于純粹的工具分析,代碼陷阱能起到很好的保護作用。一般采取方法有設置大循環、廢指令法和程序自生成技術。程序加殼。加殼后原程序被加密或壓縮保存在殼程序中,在程序運行時才被還原,可以有效防范靜態分析。常用的反靜態分析工具主要有以下幾種。混淆器有yGuard(Java語言)、JODE(Java語言)、Dotfuscator(.NET)等。加殼工具有ASPack、UPX、PECompact、ASProtect、DBPE等。
反動態跟蹤分析:反動態分析主要的技術是反調試,即在程序運行中自動檢測調試器的存在并采取相應措施,如拋系統異常、停止調試進程、重啟、死機等,以阻止調試器的運行,使得對程序的分析和修改無從入手。
數據校驗:反靜態分析和反動態分析的技術給通過修改可執行程序來實施入口破解的行為帶來很大的障礙,但是仍然不能完全防范對程序的修改,因此有必要在軟件運行過程中進行文件數據完整性校驗。
軟件加殼:殼是計算機軟件中一段專門負責保護軟件不被非法修改或反編譯的程序,它先于軟件原程序運行并拿到控制權,進行一定處理后再將控制權轉交給原程序,實現保護軟件的任務。加殼后的程序能夠有效地防范靜態分析,并且增加動態分析的難度。
回答所涉及的環境:聯想天逸510S、Windows 10。
典型的基于軟件的保護技術包含以下五類:
基于注冊驗證的版權控制:注冊信息一般基于軟件使用者的用戶信息生成,可以是一串序列號或注冊碼,也可以是一個授權文件或其他的存在形式。在驗證比較嚴格的情況下,用戶信息應該包含標志用戶唯一性且不可復制的信息,可以采用的此類信息包括計算機的CPU、硬盤等關鍵部件的硬件序列號,計算機的IP地址、MAC地址等。
反逆向工程分析:反逆向分析的目的,就是要盡量隱藏提示信息和注冊驗證的代碼。可以采用的手段包括代碼混淆、設置代碼陷阱、程序加殼等。代碼混淆。將程序中的變量名、函數名用一些無規則字符替代,將對單個函數的調用拆解成對多個函數的復雜調用,達到混淆原始代碼的目的,這樣破解者對驗證邏輯的定位變得困難,即使破解者反編譯了原程序,也不能從中輕易理解原程序運行的邏輯。代碼陷阱。在程序文件中人為設置一些無用代碼或可能引起反編譯程序錯誤理解的代碼,使反編譯程序進入誤區。對于純粹的工具分析,代碼陷阱能起到很好的保護作用。一般采取方法有設置大循環、廢指令法和程序自生成技術。程序加殼。加殼后原程序被加密或壓縮保存在殼程序中,在程序運行時才被還原,可以有效防范靜態分析。常用的反靜態分析工具主要有以下幾種。混淆器有yGuard(Java語言)、JODE(Java語言)、Dotfuscator(.NET)等。加殼工具有ASPack、UPX、PECompact、ASProtect、DBPE等。
反動態跟蹤分析:反動態分析主要的技術是反調試,即在程序運行中自動檢測調試器的存在并采取相應措施,如拋系統異常、停止調試進程、重啟、死機等,以阻止調試器的運行,使得對程序的分析和修改無從入手。
數據校驗:反靜態分析和反動態分析的技術給通過修改可執行程序來實施入口破解的行為帶來很大的障礙,但是仍然不能完全防范對程序的修改,因此有必要在軟件運行過程中進行文件數據完整性校驗。
軟件加殼:殼是計算機軟件中一段專門負責保護軟件不被非法修改或反編譯的程序,它先于軟件原程序運行并拿到控制權,進行一定處理后再將控制權轉交給原程序,實現保護軟件的任務。加殼后的程序能夠有效地防范靜態分析,并且增加動態分析的難度。
回答所涉及的環境:聯想天逸510S、Windows 10。