[發(fā)明專利]代碼混淆處理及運(yùn)行的方法、裝置、終端設(shè)備及存儲(chǔ)介質(zhì)在審
| 申請(qǐng)?zhí)枺?/td> | 202011211588.7 | 申請(qǐng)日: | 2020-11-03 |
| 公開(公告)號(hào): | CN112328978A | 公開(公告)日: | 2021-02-05 |
| 發(fā)明(設(shè)計(jì))人: | 鄺耀宗 | 申請(qǐng)(專利權(quán))人: | 廣東三維家信息科技有限公司 |
| 主分類號(hào): | G06F21/14 | 分類號(hào): | G06F21/14;G06F21/60 |
| 代理公司: | 北京超凡宏宇專利代理事務(wù)所(特殊普通合伙) 11463 | 代理人: | 衡滔 |
| 地址: | 510000 廣東省廣州市天河區(qū)天河軟件園*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 代碼 混淆 處理 運(yùn)行 方法 裝置 終端設(shè)備 存儲(chǔ) 介質(zhì) | ||
本申請(qǐng)?zhí)峁┮环N代碼混淆處理及運(yùn)行的方法、裝置、終端設(shè)備及存儲(chǔ)介質(zhì),其中,代碼混淆處理方法包括步驟:在目標(biāo)JavaScript代碼混淆過(guò)程中,根據(jù)預(yù)設(shè)腳本獲取目標(biāo)JavaScript代碼中每個(gè)類的成員的混淆前名稱、混淆后名稱;根據(jù)目標(biāo)JavaScript代碼中每個(gè)類的成員的混淆前名稱與目標(biāo)JavaScript代碼中每個(gè)類的成員的混淆后名稱之間的映射關(guān)系生成映射表;當(dāng)目標(biāo)JavaScript代碼混淆完成時(shí),保存映射表;構(gòu)建對(duì)外訪問(wèn)接口,對(duì)外訪問(wèn)接口用于根據(jù)映射表向外部訪問(wèn)對(duì)象返回目標(biāo)JavaScript代碼的成員的混淆前名稱。本申請(qǐng)?jiān)趯?shí)現(xiàn)代碼混淆的同時(shí),也能夠通過(guò)反射機(jī)制運(yùn)行JavaScript混淆代碼。與此同時(shí)本申請(qǐng)還具有更優(yōu)的擴(kuò)展性。
技術(shù)領(lǐng)域
本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體而言,涉及一種代碼混淆處理及運(yùn)行的方法、裝置、終端設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù)
目前,為了避免軟件產(chǎn)品中的代碼被他人通過(guò)反編譯技術(shù)而獲得,開發(fā)人員通常是在軟件產(chǎn)品上架時(shí)將軟件產(chǎn)品中的代碼進(jìn)行混淆處理,其中,通過(guò)混淆處理的代碼,其內(nèi)部的屬性名稱會(huì)被替換成可讀性差的字段,以使得他人難以確定代碼的具體實(shí)現(xiàn)邏輯,進(jìn)而避免讓人抄襲、惡意修改源碼等這類情況。
另一方面,反射機(jī)制是軟件產(chǎn)品中常用的一種代碼設(shè)計(jì)方式,其中,反射機(jī)制是在代碼實(shí)際運(yùn)行過(guò)程中(而不是在程序編譯過(guò)程中),對(duì)于任意一個(gè)代碼(對(duì)象),都能夠枚舉出這個(gè)代碼(對(duì)象)的所有屬性和方法;對(duì)于任意一個(gè)代碼(對(duì)象),都能夠增加、刪除和調(diào)用它的任意方法和屬性。
由此可見,由于混淆后的代碼其具體實(shí)現(xiàn)邏輯被改變,反射及時(shí)無(wú)法枚舉其屬性和方法,因此,為了實(shí)現(xiàn)在代碼混淆的前提下,能夠?qū)崿F(xiàn)反射機(jī)制,現(xiàn)有的解決方式是在對(duì)代碼進(jìn)行混淆時(shí)保留成員名稱,這樣代碼混淆時(shí)就不會(huì)對(duì)成員名稱進(jìn)行混淆。這種方式有以下缺點(diǎn)是:一,要維護(hù)一個(gè)需要保留的屬性名的字符串列表,不利于程序的擴(kuò)展;二,將暴露真實(shí)的屬性名,降低他人還原JavaScript混淆代碼的難度,不利于保護(hù)代碼本身。
發(fā)明內(nèi)容
本申請(qǐng)實(shí)施例的目的在于提供一種代碼混淆處理及運(yùn)行的方法、裝置、終端設(shè)備及存儲(chǔ)介質(zhì),用以在實(shí)現(xiàn)代碼混淆的同時(shí),也能夠通過(guò)反射機(jī)制運(yùn)行JavaScript混淆代碼。與此同時(shí)本申請(qǐng)的代碼混淆處理及運(yùn)行的方法、裝置、終端設(shè)備及存儲(chǔ)介質(zhì)還具有更優(yōu)的擴(kuò)展性。
為此,本申請(qǐng)第一方面公開一種代碼混淆處理方法,所述方法包括:
對(duì)目標(biāo)JavaScript代碼進(jìn)行混淆;
在所述目標(biāo)JavaScript代碼混淆過(guò)程中,根據(jù)預(yù)設(shè)腳本獲取所述目標(biāo)JavaScript代碼中每個(gè)類的成員的混淆前名稱、混淆后名稱;
根據(jù)所述目標(biāo)JavaScript代碼中每個(gè)類的成員的所述混淆前名稱與所述目標(biāo)JavaScript代碼中每個(gè)類的成員的所述混淆后名稱之間的映射關(guān)系生成映射表;
當(dāng)所述目標(biāo)JavaScript代碼混淆完成時(shí),保存所述映射表;
構(gòu)建對(duì)外訪問(wèn)接口,所述對(duì)外訪問(wèn)接口用于根據(jù)映射表向外部訪問(wèn)對(duì)象返回所述目標(biāo)JavaScript代碼的成員的混淆后名稱。
在本申請(qǐng)第一方面中,通過(guò)對(duì)目標(biāo)JavaScript代碼進(jìn)行混淆可得到混淆后的目標(biāo)JavaScript代碼,與此同時(shí),通過(guò)在目標(biāo)JavaScript代碼混淆過(guò)程中,根據(jù)預(yù)設(shè)腳本獲取目標(biāo)JavaScript代碼中每個(gè)類的成員的混淆前名稱、混淆后名稱,可根據(jù)目標(biāo)JavaScript代碼中每個(gè)類的成員的混淆前名稱與目標(biāo)JavaScript代碼中每個(gè)類的成員的混淆后名稱之間的映射關(guān)系生成映射表,這樣一來(lái),當(dāng)用反射機(jī)制運(yùn)行混淆后的目標(biāo)JavaScript代碼時(shí),可通過(guò)映射表獲取目標(biāo)JavaScript代碼中每個(gè)類的成員的混淆后名稱,進(jìn)而正常運(yùn)行混淆后的目標(biāo)JavaScript代碼。
該專利技術(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.szxzyx.cn/pat/books/202011211588.7/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 上一篇:一種臂架穿繩油漆保護(hù)裝置及保護(hù)方法
- 下一篇:一種刀筷消毒器
- 同類專利
- 專利分類
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ò)程
- 遙控器代碼格式結(jié)構(gòu)及其收發(fā)信方法及裝置
- 在虛擬機(jī)中驗(yàn)證代碼模塊的方法及裝置
- 一種用于代碼的管理方法及裝置
- 虛擬代碼提供系統(tǒng)、生成裝置、驗(yàn)證裝置、提供方法
- 一種自動(dòng)化代碼質(zhì)量檢查方法及系統(tǒng)
- 代碼掃描方法、裝置、計(jì)算設(shè)備及計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 用于更新代碼的方法和裝置
- 前端代碼打包方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種代碼審查服務(wù)同步方法、裝置及計(jì)算機(jī)設(shè)備
- 一種高效智能源代碼安全管理平臺(tái)
- 加密算法中的運(yùn)算符提升
- 包混淆和包轉(zhuǎn)發(fā)
- 一種Java代碼的混淆方法、恢復(fù)方法及其裝置
- 代碼混淆方法、系統(tǒng)、計(jì)算機(jī)裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 解混淆方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種自定義混淆方案的JavaScript代碼混淆方法
- 代碼混淆方法、裝置及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)反混淆方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 一種文本糾錯(cuò)方法及裝置
- 一種基于圖卷積網(wǎng)絡(luò)的函數(shù)級(jí)混淆檢測(cè)方法
- 運(yùn)行控制裝置及運(yùn)行控制方法
- 運(yùn)行支援裝置、運(yùn)行支援系統(tǒng)以及運(yùn)行支援程序
- 列車運(yùn)行處理方法、運(yùn)行處理裝置和運(yùn)行調(diào)度系統(tǒng)
- 運(yùn)行監(jiān)測(cè)系統(tǒng)及運(yùn)行監(jiān)測(cè)方法
- 運(yùn)行控制裝置及運(yùn)行控制方法
- 運(yùn)行曲線制作裝置、運(yùn)行輔助裝置以及運(yùn)行控制裝置
- 運(yùn)行支持裝置、車輛、運(yùn)行管理裝置和運(yùn)行支持方法
- 運(yùn)行計(jì)劃方法、運(yùn)行控制裝置和運(yùn)行計(jì)劃系統(tǒng)
- 運(yùn)行控制裝置、運(yùn)行管理系統(tǒng)、運(yùn)行控制方法以及車輛
- 自動(dòng)建模運(yùn)行系統(tǒng)及運(yùn)行方法





