[發(fā)明專利]一種基于模塊鉤子的Python字節(jié)碼文件保護(hù)方法有效
| 申請(qǐng)?zhí)枺?/td> | 201611123379.0 | 申請(qǐng)日: | 2016-12-08 |
| 公開(kāi)(公告)號(hào): | CN106599628B | 公開(kāi)(公告)日: | 2019-04-02 |
| 發(fā)明(設(shè)計(jì))人: | 顧乃杰;陳悟;王小強(qiáng);王巖 | 申請(qǐng)(專利權(quán))人: | 合肥康捷信息科技有限公司 |
| 主分類號(hào): | G06F21/14 | 分類號(hào): | G06F21/14 |
| 代理公司: | 安徽省合肥新安專利代理有限責(zé)任公司 34101 | 代理人: | 陸麗莉;何梅生 |
| 地址: | 230000 安徽省合肥市望江西路和創(chuàng)新大*** | 國(guó)省代碼: | 安徽;34 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 模塊 鉤子 python 字節(jié) 文件 保護(hù) 方法 | ||
本發(fā)明公開(kāi)了一種基于模塊鉤子的Python字節(jié)碼文件保護(hù)方法,包括:1對(duì)Python字節(jié)碼文件進(jìn)行加密處理;2設(shè)計(jì)Python模塊鉤子及其對(duì)應(yīng)的注冊(cè)腳本;3在客戶端的Python解釋器的源碼文件中添加Python模塊鉤子及其對(duì)應(yīng)的注冊(cè)腳本;4開(kāi)發(fā)者端將主程序和加密后的Python字節(jié)碼文件發(fā)布給客戶端,并提供新的Python解釋器的源碼文件;5客戶端對(duì)添加Python模塊鉤子及其對(duì)應(yīng)的注冊(cè)腳本后的Python解釋器的源碼文件進(jìn)行編譯,得到編譯后的Python解釋器;6客戶端利用編譯后的Python解釋器執(zhí)行主程序。本發(fā)明能夠有效抵抗反編譯,提高對(duì)Python軟件程序的保護(hù)強(qiáng)度。
技術(shù)領(lǐng)域
本發(fā)明涉及軟件保護(hù)領(lǐng)域,尤其涉及一種保護(hù)Python字節(jié)碼文件的方法。
背景技術(shù)
Python是一種面向?qū)ο螅忉屝偷挠?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,它具有開(kāi)發(fā)高效,易用的特點(diǎn),目前已經(jīng)被大量的公司用來(lái)實(shí)現(xiàn)應(yīng)用程序和大型網(wǎng)站。Python源代碼不像C/C++源碼被編譯成二進(jìn)制文件,python解釋器首先將python文件編譯為字節(jié)碼,表示為.pyc文件,字節(jié)碼文件在加載后會(huì)被解釋器解釋執(zhí)行,字節(jié)碼文件中包含了字節(jié)碼序列信息,另外還存儲(chǔ)了很多python程序運(yùn)行時(shí)信息包括定義的字符串、常量等。由于字節(jié)碼文件是一種可以解析的序列化文件,目前已經(jīng)有很多優(yōu)秀的反編譯工具例uncompyle2,Decompile++可以對(duì)絕大部分字節(jié)碼文件進(jìn)行反編譯并得到可讀性很高的Python源碼,攻擊者可以使用這些工具反編譯字節(jié)碼文件獲取Python程序中實(shí)現(xiàn)的算法和執(zhí)行邏輯的關(guān)鍵信息,侵犯Python軟件的知識(shí)產(chǎn)權(quán)。
因此,有效保護(hù)業(yè)務(wù)中較為關(guān)鍵的Python字節(jié)碼文件不能被反編譯,提高逆向工程的難度,是Python程序軟件保護(hù)領(lǐng)域需要解決的一個(gè)重要問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明為克服現(xiàn)有技術(shù)中存在的不足之處,提供一種基于模塊鉤子的Python字節(jié)碼文件保護(hù)方法,以期能夠有效抵抗反編譯,防止反編譯工具成功反編譯出Python應(yīng)用程序的源碼,提高對(duì)Python軟件程序的保護(hù)強(qiáng)度,保護(hù)基于Python開(kāi)發(fā)的應(yīng)用程序的知識(shí)產(chǎn)權(quán)。
本發(fā)明為達(dá)到上方發(fā)明目的,采用如下技術(shù)方案:
本發(fā)明一種基于模塊鉤子的Python字節(jié)碼文件保護(hù)方法,是應(yīng)用于開(kāi)發(fā)者端和客戶端之間;所述客戶端利用Python解釋器執(zhí)行所述開(kāi)發(fā)者端提供的Python應(yīng)用程序的主程序;所述應(yīng)用程序中包含所述主程序和若干個(gè)Python字節(jié)碼文件;所述主程序在執(zhí)行過(guò)程中按默認(rèn)方式導(dǎo)入若干個(gè)Python字節(jié)碼文件,從而得到所述Python應(yīng)用程序的執(zhí)行結(jié)果;其特點(diǎn)是,
所述Python字節(jié)碼文件保護(hù)方法是按如下步驟進(jìn)行:
步驟1、對(duì)所述開(kāi)發(fā)者端提供的Python字節(jié)碼文件進(jìn)行加密處理,得到加密后的Python字節(jié)碼文件;
步驟1.1、使用隨機(jī)數(shù)發(fā)生器生成對(duì)稱密鑰K;
步驟1.2、根據(jù)所述對(duì)稱密鑰K,使用對(duì)稱加密算法對(duì)所述Python字節(jié)碼文件進(jìn)行加密,得到密文F;
步驟1.3、在所述密文F的前端添加識(shí)別標(biāo)簽,得到標(biāo)簽密文F′;
步驟1.4、利用Shamir(t,n)門限方案將所述對(duì)稱密鑰K分解成n份影子信息;并將所述n份影子信息隨機(jī)打亂后寫入所述密文F和識(shí)別標(biāo)簽之間,從而得到混合密鑰的密文F*作為加密后的Python字節(jié)碼文件;
步驟2、設(shè)計(jì)Python模塊鉤子及其對(duì)應(yīng)的注冊(cè)腳本;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于合肥康捷信息科技有限公司,未經(jīng)合肥康捷信息科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201611123379.0/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過(guò)保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過(guò)保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過(guò)感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過(guò)限制訪問(wèn)計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過(guò)限制訪問(wèn)或處理程序或過(guò)程
- 一種基于Python語(yǔ)言的網(wǎng)格系統(tǒng)實(shí)現(xiàn)方法
- 一種基于模塊鉤子的Python字節(jié)碼文件保護(hù)方法
- 一種通過(guò)加密Python明文源碼token的知識(shí)產(chǎn)權(quán)保護(hù)系統(tǒng)
- 一種創(chuàng)建Python沙盒環(huán)境的方法及電子設(shè)備
- 圖形化Python編程交互方法、系統(tǒng)及電子設(shè)備
- 一種基于Ambari實(shí)現(xiàn)Python組件管理的方法
- 一種基于Java自動(dòng)調(diào)用Python腳本的方法
- Python與Scratch交互式編程方法及電子設(shè)備
- 一種 Python 源碼安全防護(hù)的實(shí)現(xiàn)方法及系統(tǒng)
- 一種生成python項(xiàng)目結(jié)構(gòu)圖的方法、系統(tǒng)及介質(zhì)





