[發明專利]一種代碼注入方法及裝置在審
| 申請號: | 201610099126.8 | 申請日: | 2016-02-23 |
| 公開(公告)號: | CN105700931A | 公開(公告)日: | 2016-06-22 |
| 發明(設計)人: | 何曉陽;洪森;王美娟 | 申請(專利權)人: | 北京藍海訊通科技股份有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 王寶筠 |
| 地址: | 100192 北京市海淀區西小*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 代碼 注入 方法 裝置 | ||
技術領域
本發明涉及數據處理領域,具體涉及一種代碼注入方法及裝置。
背景技術
代碼注入是將實現一定功能的代碼段注入至應用程序代碼中,以增加原有 應用程序能夠實現的功能。由于實現代碼注入實質上是在應用程序運行的過程 中,動態的將代碼段插入到預設位置的過程。
目前,代碼注入過程是靠人工完成的,即將待注入代碼人工的插入至應用 程序代碼中,完成代碼的注入過程。但是,這對開發人員的專業知識要求較高, 且人工完成代碼注入效率較低。
發明內容
有鑒于此,本發明提供了一種代碼注入方法,能夠自動化的完成代碼注入。
本發明提供了一種代碼注入方法,所述方法包括:
預先生成任一應用程序代碼的映射表,所述映射表中包括所述應用程序代 碼中的待修改對象與待注入代碼的對應關系,所述待注入代碼中標識有代碼注 入位置;
在所述應用程序代碼運行過程中,實時查詢當前運行的對象是否為所述映 射表中的待修改對象,如果是,則獲取所述映射表中與所述待修改對象對應的 待注入代碼;
根據所述待注入代碼中標識的代碼注入位置,將所述待注入代碼注入到所 述應用程序代碼中的所述代碼注入位置,完成代碼注入。
優選地,所述預先生成任一應用程序代碼的映射表,所述映射表中包括所 述應用程序代碼中的待修改對象與待注入代碼的對應關系,所述待注入代碼中 標識有代碼注入位置,包括:
接收預先對應用程序代碼中對象的注解,所述注解用于標識待修改對象、 待注入代碼以及代碼注入位置;
根據所述應用程序代碼中的注解,生成所述應用程序代碼的映射表,所述 映射表中包括所述應用程序代碼中的待修改對象與待注入代碼的對應關系,所 述待注入代碼中標識有代碼注入位置。
優選地,所述待修改對象包括java代碼中的類、方法。
優選地,所述根據所述待注入代碼中標識的代碼注入位置,將所述待注入 代碼注入到所述應用程序代碼中的所述代碼注入位置,完成代碼注入,包括:
獲取所述應用程序代碼中所述待修改對象對應的字節碼;
根據所述待注入代碼中標識的代碼注入位置,將所述映射表中所述待修改 對象對應的待注入代碼轉化為字節碼后,與所述待修改對象對應的字節碼合 并,完成代碼注入。
優選地,所述方法還包括:
如果當前運行的對象不是所述映射表中的待修改對象,則繼續執行所述應 用程序代碼的下一個對象。
本發明還提供了一種代碼注入裝置,所述裝置包括:
生成模塊,用于預先生成任一應用程序代碼的映射表,所述映射表中包括 所述應用程序代碼中的待修改對象與待注入代碼的對應關系,所述待注入代碼 中標識有代碼注入位置;
查詢模塊,用于在所述應用程序代碼運行過程中,實時查詢當前運行的對 象是否為所述映射表中的待修改對象;
獲取模塊,用于在所述查詢模塊的查詢結果為是時,獲取所述映射表中與 所述待修改對象對應的待注入代碼;
注入模塊,用于根據所述待注入代碼中標識的代碼注入位置,將所述待注 入代碼注入到所述應用程序代碼中的所述代碼注入位置,完成代碼注入。
優選地,所述生成模塊,包括:
接收子模塊,用于接收預先對應用程序代碼中對象的注解,所述注解用于 標識待修改對象、待注入代碼以及代碼注入位置;
生成子模塊,用于根據所述應用程序代碼中的注解,生成所述應用程序代 碼的映射表,所述映射表中包括所述應用程序代碼中的待修改對象與待注入代 碼的對應關系,所述待注入代碼中標識有代碼注入位置。
優選地,所述待修改對象包括java代碼中的類、方法。
優選地,所述注入模塊,包括:
獲取子模塊,用于獲取所述應用程序代碼中所述待修改對象對應的字節 碼;
合并子模塊,用于根據所述待注入代碼中標識的代碼注入位置,將所述映 射表中所述待修改對象對應的待注入代碼轉化為字節碼后,與所述待修改對象 對應的字節碼合并,完成代碼注入。
優選地,所述裝置還包括:
執行模塊,用于在所述查詢模塊的查詢結果為否時,繼續執行所述應用程 序代碼的下一個對象。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京藍海訊通科技股份有限公司,未經北京藍海訊通科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610099126.8/2.html,轉載請聲明來源鉆瓜專利網。





