[發明專利]腳本的加載控制方法及裝置有效
| 申請號: | 201410610794.3 | 申請日: | 2014-11-03 |
| 公開(公告)號: | CN105630526B | 公開(公告)日: | 2019-04-19 |
| 發明(設計)人: | 王彩紅 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 北京潤澤恒知識產權代理有限公司 11319 | 代理人: | 蘇培華 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 開曼群島;KY |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 腳本 加載 控制 方法 裝置 | ||
1.一種腳本的加載控制方法,其特征在于,包括:
啟動腳本引擎,并將文件系統下的預置文件路徑作為參數傳遞給所述腳本引擎,以便所述腳本引擎根據所述預置文件路徑進行啟動;其中,所述預置文件路徑下不保存待執行的腳本文件;
在所述腳本引擎的進程空間內新申請預置大小的內存空間;
獲取腳本內容,并將獲取的腳本內容寫入所述內存空間中;
監控所述腳本引擎對文件操作類函數的調用行為;
當監控到所述腳本引擎調用所述文件操作類函數時,截獲所述腳本引擎的操作指令,并對所述操作指令進行分析;
根據分析結果執行對應操作;其中,如果經分析所述操作指令為打開或讀寫操作指令,且指向所述預置文件路徑,則對所述內存空間內的所述腳本內容執行對應操作,并將操作結果返回給所述腳本引擎,以便模擬腳本引擎對文件系統中的腳本文件的操作。
2.根據權利要求1所述的方法,其特征在于,還包括:
在所述腳本引擎根據所述預置文件路徑進行啟動成功后,暫停所述腳本引擎的運行;
定位所述腳本引擎入口的內存地址;
將所述腳本引擎入口的內存地址處保存的原始指令修改為預置指令;
在所述預置指令后的內存地址處保存所述新申請的內存空間的地址;
恢復所述腳本引擎的運行,以便所述腳本引擎執行所述入口的內存地址處的所述預置指令;
其中,所述預置指令用于命令所述腳本引擎通過調用預置函數加載預置的動態鏈接庫DLL,以便將所述DLL注入到所述腳本引擎中,并通過所述DLL的主函數完成所述對所述腳本引擎調用行為的監控,操作指令的截獲,以及分析所述腳本引擎操作腳本文件的操作指令,根據分析結果執行對應操作的步驟。
3.根據權利要求2所述的方法,其特征在于,還包括:
在將所述腳本引擎入口的內存地址處保存的原始指令修改為預置指令之前,在所述新申請的內存空間中將所述原始指令進行備份;
在所述動態鏈接庫的主函數返回后,將所述內存空間中備份的原始指令寫回所述腳本引擎入口的內存地址處,以便于所述腳本引擎繼續從所述入口的內存地址處執行所述原始指令。
4.根據權利要求1所述的方法,其特征在于,如果經分析所述操作指令為文件創建指令,且指向所述預置文件路徑,所述根據分析結果執行對應操作,包括:
在所述預置文件路徑下創建一空文件;
將創建所述空文件的文件句柄返回給所述腳本引擎。
5.根據權利要求4所述的方法,其特征在于,如果所述操作指令為文件打開指令或者寫指令,且指向所述文件句柄,所述根據分析結果執行對應操作,包括:
對所述內存空間內的所述腳本內容執行打開或者寫操作;
將已打開或者已寫入的通知信息作為操作結果返回給所述腳本引擎。
6.根據權利要求4所述的方法,其特征在于,如果所述操作指令為文件讀指令,且指向所述文件句柄,所述根據分析結果執行對應操作,包括:
讀取所述內存空間內的所述腳本內容;
將讀取到的腳本內容作為操作結果返回給所述腳本引擎。
7.根據權利要求4所述的方法,其特征在于,如果經分析所述操作指令為文件關閉指令,且指向所述文件句柄,所述根據分析結果執行對應操作,包括:
刪除所保存的所述空文件的文件句柄,并關閉所述空文件。
8.根據權利要求1至7任一項所述的方法,所述獲取腳本內容,包括:
向服務器發送下發腳本內容的請求,并接收服務器響應所述請求而下發的腳本內容。
9.根據權利要求1至7任一項所述的方法,還包括:
在腳本引擎執行完畢所述內存空間中的腳本內容后,清空所述內存空間中的所述腳本內容并釋放所述內存空間。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410610794.3/1.html,轉載請聲明來源鉆瓜專利網。





