[發(fā)明專利]64位程序調(diào)用32位程序模塊的方法、裝置、介質(zhì)及設(shè)備在審
| 申請?zhí)枺?/td> | 201911375244.7 | 申請日: | 2019-12-27 |
| 公開(公告)號: | CN111142969A | 公開(公告)日: | 2020-05-12 |
| 發(fā)明(設(shè)計)人: | 高古尊;何曉文;李啟光 | 申請(專利權(quán))人: | 貴陽動視云科技有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 北京名華博信知識產(chǎn)權(quán)代理有限公司 11453 | 代理人: | 苗源 |
| 地址: | 550000 貴州省貴陽市貴陽國家高新技*** | 國省代碼: | 貴州;52 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 64 程序 調(diào)用 32 模塊 方法 裝置 介質(zhì) 設(shè)備 | ||
1.一種64位程序調(diào)用32位程序模塊的方法,其特征在于,包括:
調(diào)用LoadLibrary32函數(shù)和GetPorcAddress32函數(shù);
通過所述LoadLibrary32函數(shù)調(diào)用LoadLibrary函數(shù)加載32位目標(biāo)程序模塊,通過所述GetPorcAddress32函數(shù)調(diào)用GetPorcAddress函數(shù)獲取所述目標(biāo)程序模塊中的目標(biāo)函數(shù);
將寄存器中的參數(shù)保存到棧中,并調(diào)整指針訪問范圍;
調(diào)用所述目標(biāo)程序模塊中的目標(biāo)函數(shù)。
2.如權(quán)利要求1所述的64位程序調(diào)用32位程序模塊的方法,其特征在于,所述調(diào)用LoadLibrary32函數(shù)和GetPorcAddress32函數(shù)之前包括:
在64位程序下加載32位的Kernel32.dll到內(nèi)存;
修復(fù)Kernel32.dll的重定向,修復(fù)導(dǎo)入表和導(dǎo)出表;
獲取所述Kernel32.dll內(nèi)的LoadLibrary函數(shù)和GetPorcAddress函數(shù);
將調(diào)用所述LoadLibrary函數(shù)的代碼封裝為LoadLibrary32函數(shù),將調(diào)用所述GetPorcAddress函數(shù)的代碼封裝為GetPorcAddress32函數(shù)。
3.如權(quán)利要求1所述的64位程序調(diào)用32位程序模塊的方法,其特征在于,還包括:
修改寄存器的值為0x23。
4.如權(quán)利要求2所述的64位程序調(diào)用32位程序模塊的方法,其特征在于,所述調(diào)整指針訪問范圍包括:
將所述64位程序的PE文件的基址修改為0xffffffff內(nèi)的地址。
5.一種64位程序調(diào)用32位程序模塊的裝置,其特征在于,包括:
第一調(diào)用模塊,用于調(diào)用LoadLibrary32函數(shù)和GetPorcAddress32函數(shù);
加載模塊,用于通過所述LoadLibrary32函數(shù)調(diào)用LoadLibrary函數(shù)加載32位目標(biāo)程序模塊,通過所述GetPorcAddress32函數(shù)調(diào)用GetPorcAddress函數(shù)獲取所述目標(biāo)程序模塊中的目標(biāo)函數(shù);
指針模塊,用于將寄存器中的參數(shù)保存到棧中,并調(diào)整指針訪問范圍;
第二調(diào)用模塊,用于調(diào)用所述目標(biāo)程序模塊中的目標(biāo)函數(shù)。
6.如權(quán)利要求5所述的64位程序調(diào)用32位程序模塊的裝置,其特征在于,還包括封裝模塊,用于:
在64位程序下加載32位的Kernel32.dll到內(nèi)存;
修復(fù)Kernel32.dll的重定向,修復(fù)導(dǎo)入表和導(dǎo)出表;
獲取所述Kernel32.dll內(nèi)的LoadLibrary函數(shù)和GetPorcAddress函數(shù);
將調(diào)用所述LoadLibrary函數(shù)的代碼封裝為LoadLibrary32函數(shù),將調(diào)用所述GetPorcAddress函數(shù)的代碼封裝為GetPorcAddress32函數(shù)。
7.如權(quán)利要求5所述的64位程序調(diào)用32位程序模塊的裝置,其特征在于,還包括,寄存器轉(zhuǎn)換模塊,用于修改寄存器的值為0x23。。
8.如權(quán)利要求6所述的64位程序調(diào)用32位程序模塊的裝置,其特征在于,所述調(diào)整指針訪問范圍包括:
將所述64位程序的PE文件的基址修改為0xffffffff內(nèi)的地址。
9.一種計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序,其特征在于,所述計算機(jī)程序被執(zhí)行時實現(xiàn)如權(quán)利要求1-4中任意一項所述方法的步驟。
10.一種計算機(jī)設(shè)備,包括處理器、存儲器和存儲于所述存儲器上的計算機(jī)程序,其特征在于,所述處理器執(zhí)行所述計算機(jī)程序時實現(xiàn)如權(quán)利要求1-4中任意一項所述方法的步驟。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于貴陽動視云科技有限公司,未經(jīng)貴陽動視云科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911375244.7/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- IDL調(diào)用裝置及調(diào)用方法
- 調(diào)用方法及調(diào)用系統(tǒng)
- 一種服務(wù)調(diào)用方法及裝置
- 服務(wù)調(diào)用方法、服務(wù)調(diào)用裝置及服務(wù)調(diào)用系統(tǒng)
- 組件調(diào)用方法、裝置及計算機(jī)可讀存儲介質(zhì)
- 身份驗證方法及裝置
- 系統(tǒng)調(diào)用處理方法、裝置、計算機(jī)設(shè)備和存儲介質(zhì)
- 一種數(shù)據(jù)調(diào)用方法、裝置、電子設(shè)備及存儲介質(zhì)
- 一種微服務(wù)請求重試的方法及終端
- 業(yè)務(wù)數(shù)據(jù)的處理方法、裝置及系統(tǒng)





