[發(fā)明專利]一種代碼注入方法及裝置在審
| 申請?zhí)枺?/td> | 201610099126.8 | 申請日: | 2016-02-23 |
| 公開(公告)號: | CN105700931A | 公開(公告)日: | 2016-06-22 |
| 發(fā)明(設(shè)計)人: | 何曉陽;洪森;王美娟 | 申請(專利權(quán))人: | 北京藍(lán)海訊通科技股份有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 北京集佳知識產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 王寶筠 |
| 地址: | 100192 北京市海淀區(qū)西小*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 代碼 注入 方法 裝置 | ||
1.一種代碼注入方法,其特征在于,所述方法包括:
預(yù)先生成任一應(yīng)用程序代碼的映射表,所述映射表中包括所述應(yīng)用程序代 碼中的待修改對象與待注入代碼的對應(yīng)關(guān)系,所述待注入代碼中標(biāo)識有代碼注 入位置;
在所述應(yīng)用程序代碼運行過程中,實時查詢當(dāng)前運行的對象是否為所述映 射表中的待修改對象,如果是,則獲取所述映射表中與所述待修改對象對應(yīng)的 待注入代碼;
根據(jù)所述待注入代碼中標(biāo)識的代碼注入位置,將所述待注入代碼注入到所 述應(yīng)用程序代碼中的所述代碼注入位置,完成代碼注入。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)先生成任一應(yīng)用程 序代碼的映射表,所述映射表中包括所述應(yīng)用程序代碼中的待修改對象與待注 入代碼的對應(yīng)關(guān)系,所述待注入代碼中標(biāo)識有代碼注入位置,包括:
接收預(yù)先對應(yīng)用程序代碼中對象的注解,所述注解用于標(biāo)識待修改對象、 待注入代碼以及代碼注入位置;
根據(jù)所述應(yīng)用程序代碼中的注解,生成所述應(yīng)用程序代碼的映射表,所述 映射表中包括所述應(yīng)用程序代碼中的待修改對象與待注入代碼的對應(yīng)關(guān)系,所 述待注入代碼中標(biāo)識有代碼注入位置。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述待修改對象包括java 代碼中的類、方法。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述待注入代碼 中標(biāo)識的代碼注入位置,將所述待注入代碼注入到所述應(yīng)用程序代碼中的所述 代碼注入位置,完成代碼注入,包括:
獲取所述應(yīng)用程序代碼中所述待修改對象對應(yīng)的字節(jié)碼;
根據(jù)所述待注入代碼中標(biāo)識的代碼注入位置,將所述映射表中所述待修改 對象對應(yīng)的待注入代碼轉(zhuǎn)化為字節(jié)碼后,與所述待修改對象對應(yīng)的字節(jié)碼合 并,完成代碼注入。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
如果當(dāng)前運行的對象不是所述映射表中的待修改對象,則繼續(xù)執(zhí)行所述應(yīng) 用程序代碼的下一個對象。
6.一種代碼注入裝置,其特征在于,所述裝置包括:
生成模塊,用于預(yù)先生成任一應(yīng)用程序代碼的映射表,所述映射表中包括 所述應(yīng)用程序代碼中的待修改對象與待注入代碼的對應(yīng)關(guān)系,所述待注入代碼 中標(biāo)識有代碼注入位置;
查詢模塊,用于在所述應(yīng)用程序代碼運行過程中,實時查詢當(dāng)前運行的對 象是否為所述映射表中的待修改對象;
獲取模塊,用于在所述查詢模塊的查詢結(jié)果為是時,獲取所述映射表中與 所述待修改對象對應(yīng)的待注入代碼;
注入模塊,用于根據(jù)所述待注入代碼中標(biāo)識的代碼注入位置,將所述待注 入代碼注入到所述應(yīng)用程序代碼中的所述代碼注入位置,完成代碼注入。
7.根據(jù)權(quán)利要求6所述的模塊,其特征在于,所述生成模塊,包括:
接收子模塊,用于接收預(yù)先對應(yīng)用程序代碼中對象的注解,所述注解用于 標(biāo)識待修改對象、待注入代碼以及代碼注入位置;
生成子模塊,用于根據(jù)所述應(yīng)用程序代碼中的注解,生成所述應(yīng)用程序代 碼的映射表,所述映射表中包括所述應(yīng)用程序代碼中的待修改對象與待注入代 碼的對應(yīng)關(guān)系,所述待注入代碼中標(biāo)識有代碼注入位置。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述待修改對象包括java 代碼中的類、方法。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述注入模塊,包括:
獲取子模塊,用于獲取所述應(yīng)用程序代碼中所述待修改對象對應(yīng)的字節(jié) 碼;
合并子模塊,用于根據(jù)所述待注入代碼中標(biāo)識的代碼注入位置,將所述映 射表中所述待修改對象對應(yīng)的待注入代碼轉(zhuǎn)化為字節(jié)碼后,與所述待修改對象 對應(yīng)的字節(jié)碼合并,完成代碼注入。
10.根據(jù)權(quán)利要求6所述的模塊,其特征在于,所述裝置還包括:
執(zhí)行模塊,用于在所述查詢模塊的查詢結(jié)果為否時,繼續(xù)執(zhí)行所述應(yīng)用程 序代碼的下一個對象。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京藍(lán)海訊通科技股份有限公司,未經(jīng)北京藍(lán)海訊通科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610099126.8/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





