一種文件源代碼License控制方法及裝置的制造方法
【技術領域】
[0001] 本發(fā)明涉及軟件使用授權技術領域,具體涉及一種文件源代碼LicenSe(軟件使 用范圍授權)控制方法及裝置。
【背景技術】
[0002] License控制是對軟件使用范圍授權的控制,為防止軟件濫用及盜版,軟件一般都 有自己的License控制辦法;為了保護軟件的文件源代碼,目前常用的License控制方式主 要為:將文件源代碼編譯為二進制的PC0DE代碼,從而限制文件源代碼未經授權的查看和 修改。
[0003] 以MATLAB軟件產品為例,當前MATLAB在科學計算、仿真建模、統(tǒng)計分析等領域應 用特別廣泛,基于MATLAB開發(fā)的工具包或產品也越來越多,對于基于MATLAB開發(fā)的工具包 或產品,為了保護源代碼,MATLAB提供了將源代碼編譯為二進制的PC0DE代碼的方法,以限 制未經授權的查看、修改源代碼。
[0004] 現(xiàn)有的文件源代碼License控制方法,通過將文件源代碼編譯為二進制的PC0DE 代碼,雖然能限制他人未經授權的查看、修改源代碼;然而,無法限制他人使用軟件產品的 功能,只要將軟件復制到任何一個可以正常運行軟件的設備上,則軟件均可以正常使用;可 以看出,現(xiàn)有的文件源代碼License控制方法的License控制深度并不高,無法起到防止軟 件濫用、保護軟件開發(fā)成果的作用。
【發(fā)明內容】
[0005] 有鑒于此,本發(fā)明實施例提供一種文件源代碼License控制方法及裝置,以解決 現(xiàn)有文件源代碼License控制方法的License控制深度并不高的問題。
[0006] 為實現(xiàn)上述目的,本發(fā)明實施例提供如下技術方案:
[0007] -種文件源代碼License控制方法,包括:
[0008] 生成License驗證信息;
[0009] 確定文件源代碼中需要插入所述License驗證信息的位置;
[0010] 在所述位置插入所述License驗證信息,以在調用所述位置的源代碼時,進行 License驗證。
[0011] 其中,所述文件源代碼License控制方法應用于MATLAB場景;所述文件源代碼包 括:函數(shù)文件對應的文件源代碼,或,類文件對應的文件源代碼,或腳本文件對應的文件源 代碼;
[0012] 所述確定文件源代碼中需要插入所述License驗證信息的位置包括:
[0013] 若在函數(shù)文件對應的文件源代碼中插入所述License驗證信息,則確定所述文件 源代碼中第一個以函數(shù)標識符為起始的行,將該行的下一行作為所述License驗證信息的 插入位置;
[0014] 若在類文件對應的文件源代碼中插入所述License驗證信息,則確定所述文件源 代碼中以類構造函數(shù)標識符為起始的行,將該行的下一行作為所述License驗證信息的插 入位置;
[0015] 若在腳本文件對應的文件源代碼中插入所述License驗證信息,則將所述腳本文 件的第一行作為所述License驗證信息的插入位置。
[0016] 其中,所述文件源代碼License控制方法還包括:
[0017] 將所述License驗證信息與字符串變量相對應。
[0018] 其中,所述在所述位置插入所述License驗證信息包括:
[0019] 利用正則表達式匹配文件源代碼中需要插入所述License驗證信息的位置,在所 述位置插入所述字符串變量。
[0020] 其中,所述文件源代碼License控制方法還包括:
[0021] 以新名稱,對插入所述License驗證信息的文件源代碼進行命名;所述新名稱與 所述文件源代碼的原始名稱不同。
[0022] 其中,一份文件夾內保存有多份源代碼文件;所述在所述位置插入所述License 驗證信息包括:
[0023] 逐級調取所述文件夾下的對象,所述對象包括文件夾和源代碼文件;
[0024] 若當前級調取的對象存在文件夾,則進入當前級文件夾,繼續(xù)進行源代碼文件調 ??;
[0025] 若當前級調取的對象存在源代碼文件,則對所調取的源代碼文件的源代碼中需要 插入所述License驗證信息的位置,進行License驗證信息的插入。
[0026] 其中,所述文件源代碼License控制方法還包括:
[0027] 若所述文件源代碼未經過編譯,則在所述文件源代碼插入所述License驗證信息 后,將插入所述License驗證信息的文件源代碼編譯為PC0DE二進制代碼。
[0028] 本發(fā)明實施例還提供一種文件源代碼License控制裝置,包括:
[0029] 驗證信息生成模塊,用于生成License驗證信息;
[0030] 插入位置確定模塊,用于確定文件源代碼中需要插入所述License驗證信息的位 置;
[0031] 插入模塊,用于在所述位置插入所述License驗證信息,以在調用所述位置的源 代碼時,進行License驗證。
[0032] 其中,所述文件源代碼License控制裝置應用于MATLAB場景;所述文件源代碼包 括:函數(shù)文件對應的文件源代碼,或,類文件對應的文件源代碼,或腳本文件對應的文件源 代碼;
[0033] 所述插入位置確定模塊包括:
[0034] 第一插入單元,用于若在函數(shù)文件對應的文件源代碼中插入所述License驗證信 息,則確定所述文件源代碼中第一個以函數(shù)標識符為起始的行,將該行的下一行作為所述 License驗證信息的插入位置;
[0035] 第二插入單元,用于若在類文件對應的文件源代碼中插入所述License驗證信 息,則確定所述文件源代碼中以類構造函數(shù)標識符為起始的行,將該行的下一行作為所述 License驗證信息的插入位置;
[0036] 第三插入單元,用于若在腳本文件對應的文件源代碼中插入所述License驗證信 息,則將所述腳本文件的第一行作為所述License驗證信息的插入位置。
[0037] 其中,所述文件源代碼License控制裝置還包括:
[0038] 對應模塊,用于將所述License驗證信息與字符串變量相對應;
[0039] 命名模塊,用于以新名稱,對插入所述License驗證信息的文件源代碼進行命名; 所述新名稱與所述文件源代碼的原始名稱不同;
[0040] 所述插入模塊包括:
[0041] 變量插入單元,用于利用正則表達式匹配文件源代碼中需要插入所述License驗 證信息的位置,在所述位置插入所述字符串變量;
[0042]和 / 或,
[0043] 逐級調取單元,用于逐級調取文件夾下的對象,所述對象包括文件夾和源代碼文 件,一份文件夾內保存有多份源代碼文件;繼續(xù)調取單元,用于若當前級調取的對象存在文 件夾,則進入當前級文件夾,繼續(xù)進行源代碼文件調??;插入執(zhí)行單元,用于若當前級調取 的對象存在源代碼文件,則對所調取的源代碼文件的源代碼中需要插入所述License驗證 信息的位置,進行License驗證信息的插入。
[0044] 基于上述技術方案,本發(fā)明實施例提供的文件源代碼License控制方法,包括生 成License驗證信息;確定文件源代碼中需要插入所述License驗證信息的位置;在所述 位置插入所述License驗證信息,以在調用所述位置的源代碼時,進行License驗證。本 發(fā)明實施例提供的文件源代碼License控制方法,在軟件的文件源代碼的若干位置插入 License驗證信息,從而使得軟件在使用時,需要進行License驗證,使得不合法的用戶無 法進行軟件使用,提升了軟件的License控制深度。
【附圖說明】
[0045] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據 提供的附圖獲得其他的附圖。
[0046] 圖1為本發(fā)明實施例提供的文件源代碼License控制方法的流程圖;
[0047] 圖2為本發(fā)明實施例提供的文件源代碼License控制方法的另一流程圖;
[0048] 圖3為本發(fā)明實施例提供的插入License驗證信息的方法流程圖;
[0049] 圖4為本發(fā)明實施例提供的文件源代碼Licens