本發(fā)明有關(guān)可執(zhí)行文件與共享庫的保護技術(shù),且特別有關(guān)可執(zhí)行文件(executable?file)及共享庫(shared?library)的反逆向工程(anti-reverseengineering)及反除錯(anti-debugging)或反偵錯技術(shù)。
背景技術(shù):
::1、計算機可執(zhí)行的軟件通常包裝成可執(zhí)行文件或共享庫的形式。對可執(zhí)行文件或共享庫進行二進制混淆(binary?obfuscation)的目的是增加軟件的安全性和防止逆向工程。通過二進制混淆,可以使軟件的執(zhí)行邏輯更難以理解和分析,使攻擊者難以分析和了解程序的內(nèi)部運作。這可以防止竊取知識產(chǎn)權(quán),并阻礙逆向工程,或使攻擊者難以找出可攻擊的弱點。2、目前,代碼重組和指令替換是兩種常見的代碼混淆方法。3、代碼重組即重組二進制程序碼的結(jié)構(gòu),以使其更難以理解。這可以包括改變程序的函數(shù)順序、調(diào)整程序碼塊的位置、插入無效指令或無用的程序碼片段,以干擾分析人員對程序碼的流程和邏輯的理解。4、指令替換即替換原始二進制指令,以使程序的執(zhí)行路徑和邏輯更加隱晦而難以理解。上述替換可以基于固定的轉(zhuǎn)換規(guī)則或動態(tài)生成的規(guī)則進行。例如,將二進制指令替換為等效但更復(fù)雜的指令序列,或使用相似的指令進行替換,以使程序的行為更難以預(yù)測。5、這些方法可以與其他混淆技術(shù)結(jié)合使用,例如指令插入、虛假控制流、無效指令或數(shù)據(jù)插入等。混合使用多種技術(shù)可以增加分析人員理解和解析二進制程序碼的難度,以提高軟件的安全性和抵抗逆向工程的能力。6、盡管代碼重組和指令替換是常見的二進制代碼混淆方法,但它們并不能完全阻止攻擊者分析執(zhí)行中的進程(process),且存在下列缺點:7、其一,增加執(zhí)行時間和效能開銷:混淆技術(shù)通常會引入額外的計算和運行時處理,這可能會增加程序的執(zhí)行時間和效能開銷。例如,代碼重組和指令替換可能導(dǎo)致執(zhí)行時的額外計算,以恢復(fù)原始的程序流程和邏輯,這可能導(dǎo)致性能下降。8、其二,增加開發(fā)和維護成本:對程序碼進行混淆可能增加開發(fā)和維護的復(fù)雜性?;煜夹g(shù)可能需要特殊的工具和流程以處理混淆的程序碼。此外,由于混淆后的程序碼可能難以理解,在開發(fā)和維護過程中可能需要更多的勞力和時間。9、其三,可逆性:大多數(shù)混淆技術(shù)是可逆的,這意味著攻擊者能進行逆向工程以還原原始的程序碼。例如,代碼重組和指令替換可以通過相應(yīng)的反混淆技術(shù)進行逆向工程,以恢復(fù)原始的程序結(jié)構(gòu)和邏輯。10、其四,指針(pointer)和數(shù)據(jù)處理困難:一些混淆技術(shù)可能會導(dǎo)致指針和數(shù)據(jù)的處理變得困難。例如,指令替換可能會改變使用指針或操作數(shù)據(jù)的方式,而使指針和數(shù)據(jù)的處理更加困難。11、其五,不完全的保護:混淆技術(shù)可以增加分析和逆向工程的難度,但不能提供絕對的保護。只要經(jīng)過足夠時間和努力,有經(jīng)驗的攻擊者仍有可能解碼或還原混淆的程序碼?;煜夹g(shù)應(yīng)該作為安全策略的一部分,與其他防御措施(例如加密、完整性檢查和授權(quán)機制)結(jié)合使用,以提高軟件的整體安全性。12、綜上,目前需要更嚴密的保護技術(shù)。技術(shù)實現(xiàn)思路1、為解決上述問題,本發(fā)明提供一種可執(zhí)行文件與共享庫的保護方法,由一電子裝置的至少一處理器執(zhí)行于該電子裝置的一操作系統(tǒng)(operating?system)中,該保護方法包括下列步驟:由該電子裝置判斷一第一進程是否正在被除錯或者是否為一第二可執(zhí)行文件被執(zhí)行后所形成者,其中,若該第一進程正在被除錯,且即將執(zhí)行一第一可執(zhí)行文件,且該第一可執(zhí)行文件已被加密,則拒絕該第一進程執(zhí)行該第一可執(zhí)行文件;若該第一進程正在被除錯,且即將對一共享庫進行存儲器映射,且該共享庫已被加密,則拒絕該第一進程對該共享庫進行該存儲器映射;以及,若該第一進程為該第二可執(zhí)行文件被執(zhí)行后所形成者,而該第二可執(zhí)行文件已被加密,且一第二進程即將對該第一進程進行除錯,則拒絕該第二進程對該第一進程進行該除錯。2、在一實施例中,在該第一進程已對該共享庫進行該存儲器映射之后,該數(shù)據(jù)保護方法還包括:若該共享庫已被加密,且該第二進程即將對該第一進程進行除錯,則拒絕該第二進程對該第一進程進行該除錯。3、本發(fā)明另提供一種計算機可讀取存儲介質(zhì),存儲有多個指令,所述指令由電子裝置讀取以執(zhí)行上述的保護方法。4、本發(fā)明又提供一種可執(zhí)行文件與共享庫的保護系統(tǒng),包括:一存儲裝置,安裝有一操作系統(tǒng);以及至少一處理器,用于執(zhí)行該操作系統(tǒng),且在該操作系統(tǒng)中執(zhí)行上述的保護方法。5、本發(fā)明使用反逆向工程和反除錯技術(shù)保護可執(zhí)行文件和共享庫,以避免攻擊者經(jīng)由逆向工程或除錯而取得可執(zhí)行文件和共享庫中的解密后的內(nèi)容。此外,本發(fā)明同樣適用對于已經(jīng)過二進制混淆的可執(zhí)行文件和共享庫。技術(shù)特征:1.一種可執(zhí)行文件與共享庫的保護方法,由一電子裝置的至少一處理器執(zhí)行于該電子裝置的一操作系統(tǒng)中,該保護方法包括下列步驟:2.如權(quán)利要求1所述的保護方法,其中,在該第一進程已對該共享庫進行該存儲器映射之后,該保護方法還包括:3.如權(quán)利要求1所述的保護方法,其中,該方法還包括下列步驟:4.如權(quán)利要求1所述的保護方法,其中,該方法還包括下列步驟:5.如權(quán)利要求1所述的保護方法,其中,若該第一進程為該第二可執(zhí)行文件被執(zhí)行后所形成者,則該保護方法還包括:6.如權(quán)利要求1所述的保護方法,其中,若該第一進程為該第二可執(zhí)行文件被執(zhí)行后所形成者,而該第二可執(zhí)行文件已被加密,則該保護方法還包括:7.如權(quán)利要求6所述的保護方法,其中,該第二缺頁處理函數(shù)包括:8.如權(quán)利要求7所述的保護方法,其中,該方法還包括:9.如權(quán)利要求1所述的保護方法,其中,該方法還包括:10.一種可執(zhí)行文件與共享庫的保護系統(tǒng),包括:技術(shù)總結(jié)一種可執(zhí)行文件與共享庫的保護方法及保護系統(tǒng),包括將可執(zhí)行文件與共享庫的部分內(nèi)容加密,于執(zhí)行所述可執(zhí)行文件與共享庫時實時解密,且禁止被除錯的進程執(zhí)行可執(zhí)行文件與共享庫中的已被加密的部分內(nèi)容,以避免攻擊者獲取可執(zhí)行文件與共享庫中的該部分內(nèi)容。技術(shù)研發(fā)人員:許進興受保護的技術(shù)使用者:威聯(lián)通科技股份有限公司技術(shù)研發(fā)日:技術(shù)公布日:2025/5/19