[發明專利]一種Java軟件水印虛方法中指令代碼的生成方法有效
| 申請號: | 201410467066.1 | 申請日: | 2014-09-12 |
| 公開(公告)號: | CN104200139B | 公開(公告)日: | 2017-11-24 |
| 發明(設計)人: | 陳建平;李奎;施佺;馬海英;朱浩;王進;文萬志 | 申請(專利權)人: | 南通大學 |
| 主分類號: | G06F21/16 | 分類號: | G06F21/16 |
| 代理公司: | 南京匯盛專利商標事務所(普通合伙)32238 | 代理人: | 吳靜安 |
| 地址: | 226019 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 java 軟件 水印 方法 指令 代碼 生成 | ||
1.一種Java軟件水印虛方法中指令代碼的生成方法,基于BCEL類庫,其特征在于包括如下步驟:
1)通過BCEL類庫載入待嵌入指令的Java類文件,并通過BCEL類庫的類文件解析器ClassParser對所述類文件進行解析,將解析后的類文件對象jc包裝轉化成BCEL類庫中ClassGen類的對象;
2)從所述Java類文件對象中獲取類文件的參數信息,所述參數信息包括類中的方法,再從獲取的方法中找到并取出虛方法,所述類中的方法通過jc對象獲取,虛方法的獲取通過ClassGen類的removeMethod方法實現;
3)根據獲取的虛方法與參數信息創建一個新的虛方法,用于取代原先的虛方法;該步驟通過調用BCEL類庫中用于處理方法的MethodGen類實現;
4)產生用于嵌入水印信息的指令代碼,將所述指令代碼添加到所述新虛方法的指令集合中;所述新虛方法的指令集合通過所述MethodGen類的對象mg獲得;然后向該指令集合中添加用于嵌入水印信息的指令;
5)將所述新虛方法套入所述Java類文件中;
步驟4)中,用于嵌入水印信息的指令代碼的生成包括:
修改操作數,對通過修改操作數嵌入水印信息的指令,進行配置操作數,組合成完整的指令,將所述指令代碼添加到類中新虛方法的指令集合中;
編碼操作碼,生成操作碼編碼碼本,根據需嵌入的編碼,選擇相應的操作碼,配置操作數,組合成完整的指令,將所述指令代碼添加到類中新虛方法的指令集合中。
2.根據權利要求1所述的Java軟件水印虛方法中指令代碼的生成方法,其特征在于所述參數信息還包括所述Java類文件的類文件名與常量池。
3.根據權利要求1所述的Java軟件水印虛方法中指令代碼的生成方法,其特征在于所述修改操作數的過程根據嵌入水印信息的大小,通過循環語句實現與嵌入水印信息的大小對應數量的指令。
4.根據權利要求1所述的Java軟件水印虛方法中指令代碼的生成方法,其特征在于所述修改操作數的過程具體包括如下步驟:
A)利用隨機函數生成用于嵌入水印信息的指令所需的操作數;
B)將操作碼與操作數組合成指令,存放于一臨時集合中;
C)將所述臨時集合中的指令復制到類中所述新虛方法的指令集合中。
5.根據權利要求3所述的Java軟件水印虛方法中指令代碼的生成方法,其特征在于所述編碼操作碼的過程具體包括如下步驟:
Ⅰ)通過映射生成碼本,所述碼本中的每一編碼與一條指令操作碼成一一映射關系;
Ⅱ)根據需要嵌入的編碼,從所述碼本中找到對應的指令操作碼;
Ⅲ)通過隨機函數產生上述指令操作碼的操作數;
Ⅳ)將操作碼與操作數組合成指令,存放于一臨時集合中;
Ⅴ)將臨時集合中的指令復制到所述新虛方法的指令集合中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南通大學,未經南通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410467066.1/1.html,轉載請聲明來源鉆瓜專利網。





