本發(fā)明涉及通信領域中的信息處理技術,尤其涉及一種信息訪問方法、裝置和設備。
背景技術:
隨著電子產(chǎn)品的推廣、普及與發(fā)展,電子產(chǎn)品功能越來越多、性能越來越強,終端例如手機上安裝的應用程序越來越多。因為現(xiàn)在的用戶喜歡將自己的個人信息等一些重要的信息存儲在終端中,基于安全考慮終端上會安裝各種用戶保護終端安全的應用程序。這些保護終端安全的應用程序會限制一些應用程序?qū)δ承┨囟☉贸绦虻脑L問權限,訪問權限的訪問規(guī)則大多與基于進程的關系鏈來設置的。
現(xiàn)有技術是只能在32位進程里面注入32位的進程,64位的進程里面注入64位的進程;這樣,在保護終端安全的應用程序的限制下,許多應用程序之間不能進行互相訪問,極大的降低了用戶的體驗效果。
技術實現(xiàn)要素:
為解決上述技術問題,本發(fā)明實施例期望提供一種信息訪問方法、裝置和設備,解決了現(xiàn)有技術方案中許多應用程序之間不能互相訪問的問題,提高了效率,增強了用戶和終端之間的交互能力。
本發(fā)明的技術方案是這樣實現(xiàn)的:
第一方面,提供一種信息訪問方法,所述方法包括:
當檢測到第一應用程序需要訪問第二應用程序時,判斷所述第一應用程序是否有訪問所述第二應用程序的權限;
若所述第一應用程序沒有訪問所述第二應用程序的權限,獲取訪問限制規(guī)則;
基于所述訪問限制規(guī)則,確定第三應用程序;其中,所述第三應用程序為基于所述訪問限制規(guī)則確定的能夠訪問所述第二應用程序的程序;
通過所述第三應用程序訪問所述第二應用程序。
可選的,所述通過所述第三應用程序訪問所述第二應用程序,包括:
基于所述第一應用程序的第一進程中待注入進程的數(shù)量和需執(zhí)行的操作,計算所述待注入進程所需內(nèi)存;
獲取進程數(shù)據(jù)和執(zhí)行指令;
確定所述第三應用程序?qū)牡谝幌到y(tǒng)函數(shù)地址;
基于所述待注入進程所需內(nèi)存、進程數(shù)據(jù)、所述第一系統(tǒng)函數(shù)地址和執(zhí)行指令通過所述第三應用程序訪問所述第二應用程序。
可選的,所述確定所述第三應用程序?qū)牡谝幌到y(tǒng)函數(shù)地址,包括:
確定所述第一應用程序?qū)牡谝荒J剑?/p>
將所述第一模式切換為所述第三應用程序?qū)牡诙J剑?/p>
在所述第二模式下,獲取進程的加載模塊列表和所述第三應用程序的第二進程加載的基礎模塊地址;
基于所述基礎模塊地址,在所述進程的加載模塊列表中獲取所述第一系統(tǒng)函數(shù)地址。
可選的,所述基于待注入進程所需內(nèi)存、進程數(shù)據(jù)、第一系統(tǒng)函數(shù)地址和執(zhí)行指令通過所述第三應用程序訪問所述第二應用程序,包括:
將所述第一應用程序?qū)牡谝荒J角袚Q為所述第三應用程序?qū)牡诙J剑?/p>
基于所述待注入進程所需內(nèi)存為所述待注入進程分配存儲空間;
在所述第二模式下,基于所述第一系統(tǒng)函數(shù)地址確定所述第一系統(tǒng)函數(shù);
在所述第二進程中創(chuàng)建對應的線程,并判斷所述第二進程中是否還存在待注入進程;
若所述第二進程中不存在待注入進程,則基于所述進程數(shù)據(jù)、所述第一系統(tǒng)函數(shù)和執(zhí)行指令通過所述第三應用程序訪問所述第二應用程序。
可選的,所述還包括:
若所述第二進程中還存在待注入進程,則重新獲取待注入進程所需內(nèi)存、進程數(shù)據(jù)和執(zhí)行指令;
將重新獲取到的待注入進程所需內(nèi)存、進程數(shù)據(jù)和執(zhí)行指令寫入對應的目標進程中直至所述目標進程中不存在待注入進程。
第二方面,提供一種信息訪問裝置,所述裝置包括:判斷單元、第一獲取單元、第二獲取單元和處理單元,其中:
所述判斷單元,用于當檢測到第一應用程序需要訪問第二應用程序時,判斷所述第一應用程序是否有訪問所述第二應用程序的權限;
所述第一獲取單元,用于若所述第一應用程序沒有訪問所述第二應用程序的權限,獲取訪問限制規(guī)則;
所述第二獲取單元,用于基于所述訪問限制規(guī)則,確定第三應用程序;其中,所述第三應用程序為基于所述訪問限制規(guī)則確定的能夠訪問所述第二應用程序的程序;
所述處理單元,用于通過所述第三應用程序訪問所述第二應用程序。
第三方面,提供一種信息訪問設備,所述設備包括:處理器和通信接口,其中:
所述處理器,用于當檢測到第一應用程序需要訪問第二應用程序時,判斷所述第一應用程序是否有訪問所述第二應用程序的權限;若所述第一應用程序沒有訪問所述第二應用程序的權限,獲取訪問限制規(guī)則;基于所述訪問限制規(guī)則,確定第三應用程序;其中,所述第三應用程序為基于所述訪問限制規(guī)則確定的能夠訪問所述第二應用程序的程序;基于所述通信接口通過所述第三應用程序訪問所述第二應用程序。
本發(fā)明的實施例所提供的信息訪問方法、裝置和設備,當檢測到第一應用程序需要訪問第二應用程序時,判斷第一應用程序是否有訪問第二應用程序的權限;若第一應用程序沒有訪問第二應用程序的權限,獲取訪問限制規(guī)則;基于訪問限制規(guī)則,確定第三應用程序;第三應用程序為基于訪問限制規(guī)則確定的能夠訪問第二應用程序的程序;通過第三應用程序訪問第二應用程序;這樣,通過第三應用程序第一應用程序可以實現(xiàn)對第二應用程序的訪問,解決了現(xiàn)有技術方案中許多應用程序之間不能互相訪問的問題,提高了效率,增強了用戶和終端之間的交互能力。
附圖說明
圖1為本發(fā)明的實施例提供的一種信息訪問方法的流程示意圖;
圖2為本發(fā)明的實施例提供的另一種信息訪問方法的流程示意圖;
圖3為本發(fā)明的實施例提供的又一種信息訪問方法的流程示意圖;
圖4為本發(fā)明的另一實施例提供的一種信息訪問方法的流程示意圖;
圖5為現(xiàn)有技術中提供的一種進程注入的時候之間的對應關系示意圖;
圖6為本發(fā)明提供的一種進程注入的時候之間的對應關系示意圖;
圖7為本發(fā)明提供的另一種進程注入的時候之間的對應關系示意圖;
圖8為本發(fā)明實施例提供的一種第一應用程序通過第三應用程序訪問第二應用程序的示意圖;
圖9為本發(fā)明的實施例提供的一種信息訪問裝置的結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述。
本發(fā)明的實施例提供一種信息訪問方法,參照圖1所示,該方法包括以下步驟:
步驟101、當檢測到第一應用程序需要訪問第二應用程序時,判斷第一應用程序是否有訪問第二應用程序的權限。
具體的,步驟101當檢測到第一應用程序需要訪問第二應用程序時,判斷第一應用程序是否有訪問第二應用程序的權限可以是由終端來實現(xiàn)的。終端可以是能夠安裝各種應用程序的終端,優(yōu)選的可以是能夠安裝保護終端安全的應用程序的智能終端,例如可以是智能手機、平板、電腦等設備。第一應用程序和第二應用程序是安裝在終端上的兩個不同的應用程序,用戶在使用終端上的第一應用程序訪問終端上的第二應用程序的時候,可以先確定該第一應用程序有沒有訪問第二應用程序的權限。判斷第一應用程序有沒有訪問第二應用程序的權限可以是通過判斷終端上安裝的保護終端的安全應用程序中設置的不能訪問第二應用程序的終端上已經(jīng)安裝的應用程序列表中是否有第一應用程序的標識信息,如果不能訪問第二應用程序的終端上已經(jīng)安裝的應用程序列表有第一應用程序的標識信息說明第一應用程序沒有訪問第二應用程序的權限;如果不能訪問第二應用程序的終端上已經(jīng)安裝的應用程序列表沒有第一應用程序的標識信息說明第一應用程序有訪問第二應用程序的權限。
步驟102、若第一應用程序沒有訪問第二應用程序的權限,獲取訪問限制規(guī)則。
具體的,步驟102若第一應用程序沒有訪問第二應用程序的權限,獲取訪問限制規(guī)則可以是由終端來實現(xiàn)的。當判斷得到第一應用程序沒有訪問第二應用程序的權限時,終端可以對終端上已經(jīng)安裝的用于保護終端的安全應用程序進行分析,確定該安全應用程序設置的訪問限制規(guī)則。在本發(fā)明的一種實現(xiàn)方式中,以終端為手機、安全應用程序可以是安全應用軟件P、第一應用程序可以是對應有32位進程的應用程序、第二應用程序可以是通訊軟件Q為例進行說明,此時,安全應用程序即安全應用軟件P設置的訪問限制規(guī)則可以是凡是具有32位進程的應用程序都不能訪問手機上的第二應用程序即通訊軟件Q。
步驟103、基于訪問限制規(guī)則,確定第三應用程序。
其中,第三應用程序為基于訪問限制規(guī)則確定的能夠訪問第二應用程序的程序。
具體的,步驟103基于訪問限制規(guī)則,確定第三應用程序可以是由終端來實現(xiàn)的。終端分析得到終端上的安全應用程序設置的訪問限制規(guī)則后,按照該訪問限制規(guī)則從終端上已經(jīng)安裝的應用程序中確定一個第三應用程序。如果手機上的安全應用程序設置的訪問限制規(guī)則是凡是具有32位進程的應用程序都不能訪問手機上的第二應用程序時,可以獲取手機上已經(jīng)安裝的具有64位進程的應用程序,并確定這具有64位進程的應用程序中的任一應用程序為第三應用程序。
步驟104、通過第三應用程序訪問第二應用程序。
具體的,步驟104通過第三應用程序訪問第二應用程序可以是由終端來實現(xiàn)的。手機上安裝的第一應用程序(對應具有32位進程的應用程序中的一個應用程序)沒有訪問第二應用程序(通訊軟件Q)的訪問權限時,可以借助手機上已經(jīng)安裝的第三應用程序(對應具有64位進程的應用程序中的一個應用程序)來訪問第二應用程序(通訊軟件Q),最終實現(xiàn)第一應用程序與第二應用程序之間的通信。
本發(fā)明的實施例所提供的信息訪問方法,當檢測到第一應用程序需要訪問第二應用程序時,判斷第一應用程序是否有訪問第二應用程序的權限;若第一應用程序沒有訪問第二應用程序的權限,獲取訪問限制規(guī)則;基于訪問限制規(guī)則,確定第三應用程序;第三應用程序為基于訪問限制規(guī)則確定的能夠訪問第二應用程序的程序;通過第三應用程序訪問第二應用程序;這樣,通過第三應用程序第一應用程序可以實現(xiàn)對第二應用程序的訪問,解決了現(xiàn)有技術方案中許多應用程序之間不能互相訪問的問題,提高了效率,增強了用戶和終端之間的交互能力。
基于前述實施例,本發(fā)明的實施例還提供一種信息訪問方法,參照圖2所示,該方法包括以下步驟:
步驟201、當檢測到第一應用程序需要訪問第二應用程序時,終端判斷第一應用程序是否有訪問第二應用程序的權限。
步驟202、若第一應用程序沒有訪問第二應用程序的權限,終端獲取訪問限制規(guī)則。
步驟203、終端基于訪問限制規(guī)則,確定第三應用程序。
其中,第三應用程序為基于訪問限制規(guī)則確定的能夠訪問第二應用程序的程序。
步驟204、終端基于第一應用程序的第一進程中待注入進程的數(shù)量和需執(zhí)行的操作,計算待注入進程所需內(nèi)存。
具體的,第一進程可以是終端上安裝的第一應用程序?qū)倪M程,可以是32位進程;終端可以確定終端上的第一應用程序訪問第二應用程序時第一應用程序的進程中需要使用的進程作為待注入進程,當然待注入進程也是32位進程;在得到待注入進程之后可以獲取待注入進程的數(shù)量,同時可以獲取第一應用程序訪問第二應用程序時需要執(zhí)行的操作,并基于待注入進程的數(shù)量和需執(zhí)行的操作計算得到這些待注入進程需要占用的內(nèi)存空間,最終得到待注入進程所需內(nèi)存。
步驟205、終端獲取進程數(shù)據(jù)和執(zhí)行指令。
其中,進程數(shù)據(jù)可以包括:進程信息、輔助信息(例如進程的標識信息)、進程的全部路徑信息等與進程相關的一些數(shù)據(jù)信息;執(zhí)行指令可以是第一應用程序需要與第二應用程序交互執(zhí)行的一些操作的指令;如果第一應用程序訪問第二應用程序的目的是從第二應用程序中獲取第二應用程序中的一些信息,此時執(zhí)行指令可以是用于獲取信息的請求,獲取到的執(zhí)行指令就是獲取第二應用程序的中信息的請求。
步驟206、終端確定第三應用程序?qū)牡谝幌到y(tǒng)函數(shù)地址。
具體的,終端可以首先將第一應用程序?qū)牡谝贿M程的模式從第一模式切換為第三應用程序?qū)牡诙M程的第二模式,然后在第二模式下獲取進程的加載模塊列表,在該進程的加載模塊列表中查找到第三應用程序?qū)牡谝幌到y(tǒng)函數(shù)地址。
步驟207、終端基于待注入進程所需內(nèi)存、進程數(shù)據(jù)、第一系統(tǒng)函數(shù)地址和執(zhí)行指令通過第三應用程序訪問第二應用程序。
具體的,如果獲取到的執(zhí)行指令是獲取第二應用程序的中信息的請求,那么在第三應用程序中可以基于待注入進程所需內(nèi)存、進程數(shù)據(jù)、第一系統(tǒng)函數(shù)地址響應該執(zhí)行指令,對第二應用程序進行訪問并在第二應用程序中獲取相應的信息,之后可以將獲取得到的第二應用程序中的相應信息發(fā)送給第一應用程序。
需要說明的是,本實施例中與其它實施例中相同步驟或概念的解釋可以參照其它實施例中的描述,此處不再贅述。
本發(fā)明的實施例所提供的信息訪問方法,當檢測到第一應用程序需要訪問第二應用程序時,判斷第一應用程序是否有訪問第二應用程序的權限;若第一應用程序沒有訪問第二應用程序的權限,獲取訪問限制規(guī)則;基于訪問限制規(guī)則,確定第三應用程序;第三應用程序為基于訪問限制規(guī)則確定的能夠訪問第二應用程序的程序;通過第三應用程序訪問第二應用程序;這樣,通過第三應用程序第一應用程序可以實現(xiàn)對第二應用程序的訪問,解決了現(xiàn)有技術方案中許多應用程序之間不能互相訪問的問題,提高了效率,增強了用戶和終端之間的交互能力。
基于前述實施例,本發(fā)明的實施例還提供一種信息訪問方法,參照圖3所示,該方法包括以下步驟:
步驟301、當檢測到第一應用程序需要訪問第二應用程序時,終端判斷第一應用程序是否有訪問第二應用程序的權限。
步驟302、若第一應用程序沒有訪問第二應用程序的權限,終端獲取訪問限制規(guī)則。
步驟303、終端基于訪問限制規(guī)則,確定第三應用程序。
其中,第三應用程序為基于訪問限制規(guī)則確定的能夠訪問第二應用程序的程序。
步驟304、終端基于第一應用程序的第一進程中待注入進程的數(shù)量和需執(zhí)行的操作,計算待注入進程所需內(nèi)存。
步驟305、終端獲取進程數(shù)據(jù)和執(zhí)行指令。
步驟306、終端確定第一應用程序?qū)牡谝荒J健?/p>
具體的,第一模式可以指的是32位代碼;終端可以在終端當前的操作系統(tǒng)類型下,獲取終端上已經(jīng)安裝的第一應用程序?qū)倪M程屬于哪一種類型的進程,最終確定第一應用程序?qū)倪M程可以是第一進程(即32位進程),當然可以確定該第一應用程序?qū)哪J绞?2位代碼。
步驟307、終端將第一模式切換為第三應用程序?qū)牡诙J健?/p>
其中,第三應用程序?qū)牡诙M程與第一應用程序?qū)牡谝贿M程不同,第三應用程序?qū)牡诙M程可以是64位進程,當然第三應用程序?qū)牡诙J娇梢允?4位代碼。因為第一應用程序和第二應用程序分別對應的模式是不同的,對于第一應用程序的第一模式(32位代碼)而言,這種模式(32位代碼)的應用程序在終端上安裝的安全應用程序設置的訪問限制規(guī)則中均屬于不能訪問第二應用程序的程序信息列表中。因此,為了實現(xiàn)對第二應用程序的訪問可以借助于第三應用程序來實現(xiàn),而此時想要通過第三應用程序訪問第二應用程序就需要先將第一應用程序的進程的模式切換到第三應用程序的模式,即將第一應用程序的32位代碼切換到64位代碼。
需要說明的是,步驟將第一模式切換為第三應用程序?qū)牡诙J娇梢酝ㄟ^以下方式來實現(xiàn):
通過段間跳轉(zhuǎn)指令,將第一模式切換為第三應用程序?qū)牡诙J健?/p>
具體的,可以通過在代碼里面執(zhí)行中央處理器(Central Processing Unit,CPU)的段間跳轉(zhuǎn)指令來實現(xiàn)將32位代碼切換到64位代碼,即實現(xiàn)將第一應用程序的第一模式切換為第三應用程序的第二模式。
步驟308、在第二模式下,終端獲取進程的加載模塊列表和第三應用程序的第二進程加載的基礎模塊地址。
具體的,終端的第一應用程序的第一進程通過調(diào)用第一進程對應的系統(tǒng)函數(shù)獲取進程的加載模塊列表,同時獲取第三應用程序的第二進程加載的基礎模塊地址??梢允牵ㄟ^32位進程對應的系統(tǒng)函數(shù)獲取進程的加載模塊列表,同時可以獲取64位進程加載的基礎模塊地址。
步驟309、終端基于基礎模塊地址,在進程的加載模塊列表中獲取第一系統(tǒng)函數(shù)地址。
具體的,終端中的第一應用程序可以按照系統(tǒng)可執(zhí)行文件的格式規(guī)范對進程的加載模塊列表進行解析處理,在進程的加載模塊列表中獲取基礎模塊地址與系統(tǒng)函數(shù)地址的對應關系在進程的加載模塊列表所處的位置,之后查找取64位進程加載的基礎模塊地址對應的64位系統(tǒng)函數(shù)地址即得到第一系統(tǒng)函數(shù)地址。
步驟310、終端基于待注入進程所需內(nèi)存、進程數(shù)據(jù)、第一系統(tǒng)函數(shù)地址和執(zhí)行指令通過第三應用程序訪問第二應用程序。
需要說明的是,本實施例中與其它實施例中相同步驟或概念的解釋可以參照其它實施例中的描述,此處不再贅述。
本發(fā)明的實施例所提供的信息訪問方法,當檢測到第一應用程序需要訪問第二應用程序時,判斷第一應用程序是否有訪問第二應用程序的權限;若第一應用程序沒有訪問第二應用程序的權限,獲取訪問限制規(guī)則;基于訪問限制規(guī)則,確定第三應用程序;第三應用程序為基于訪問限制規(guī)則確定的能夠訪問第二應用程序的程序;通過第三應用程序訪問第二應用程序;這樣,通過第三應用程序第一應用程序可以實現(xiàn)對第二應用程序的訪問,解決了現(xiàn)有技術方案中許多應用程序之間不能互相訪問的問題,提高了效率,增強了用戶和終端之間的交互能力。
基于前述實施例,本發(fā)明的實施例還提供一種信息訪問方法,參照圖2所示,該方法包括以下步驟:
步驟401、當檢測到第一應用程序需要訪問第二應用程序時,終端判斷第一應用程序是否有訪問第二應用程序的權限。
步驟402、若第一應用程序沒有訪問第二應用程序的權限,終端獲取訪問限制規(guī)則。
步驟403、終端基于訪問限制規(guī)則,確定第三應用程序。
其中,第三應用程序為基于訪問限制規(guī)則確定的能夠訪問第二應用程序的程序。
步驟404、終端基于第一應用程序的第一進程中待注入進程的數(shù)量和需執(zhí)行的操作,計算待注入進程所需內(nèi)存。
步驟405、終端獲取進程數(shù)據(jù)和執(zhí)行指令。
步驟406、終端確定第一應用程序?qū)牡谝荒J健?/p>
步驟407、終端通過段間跳轉(zhuǎn)指令,將第一模式切換為第二應用程序?qū)牡诙J健?/p>
步驟408、在第二模式下,終端獲取進程的加載模塊列表和第三應用程序的第二進程加載的基礎模塊地址。
步驟409、終端基于基礎模塊地址,在進程的加載模塊列表中獲取第一系統(tǒng)函數(shù)地址。
步驟410、終端基于待注入進程所需內(nèi)存為待注入進程分配存儲空間。
具體的,終端的第一應用程序的32進程在得到待注入進程所需內(nèi)存、進程數(shù)據(jù)、執(zhí)行指令和第一系統(tǒng)函數(shù)地址后,可以將上述這些信息寫入第三應用程序的64位進程中,同時根據(jù)得到的待注入進程所需內(nèi)存在64位進程中為待注入進程分配可以容納待注入進程的存儲空間。
步驟411、在第二模式下,終端基于第一系統(tǒng)函數(shù)地址確定第一系統(tǒng)函數(shù)。
具體的,在得到第一系統(tǒng)函數(shù)地址之后,可以在第一系統(tǒng)函數(shù)地址對應的存儲位置獲取對應的第一系統(tǒng)函數(shù)。
步驟412、終端在第二進程中創(chuàng)建對應的線程,并判斷第二進程中是否還存在待注入進程。
具體的,在終端的64位進程中可以創(chuàng)建對應的64位線程,然后判斷64進程中是否還存在需要注入其它進程中的其它待注入進程。
具體的,步驟412在第二進程中創(chuàng)建對應的線程,并判斷第二進程中是否還存在待注入進程之后可以根據(jù)判斷結果選擇執(zhí)行步驟413或者步驟414~415,若第二進程中不存在待注入進程執(zhí)行步驟413,若第二進程中還存在待注入進程執(zhí)行步驟414~415;
步驟413、終端基于進程數(shù)據(jù)、第一系統(tǒng)函數(shù)和執(zhí)行指令通過第三應用程序訪問第二應用程序。
具體的,如果64進程中不存在需要注入其它進程中的其它待注入進程,此時第三應用程序的64進程可以基于進程數(shù)據(jù)和第一系統(tǒng)函數(shù)通過創(chuàng)建的64位線程來訪問終端上的第二應用程序。當然,對第二應用程序的訪問可以是從第二應用程序中獲取相應的信息。
步驟414、終端重新獲取待注入進程所需內(nèi)存、進程數(shù)據(jù)和執(zhí)行指令。
具體的,如果64進程中存在需要注入其它進程中的其它待注入進程,此時終端可以重新獲取64位進程中的其它待注入進程需要占用的存儲空間即所需內(nèi)存、進程數(shù)據(jù)和對應的執(zhí)行指令。
步驟415、終端將重新獲取到的待注入進程所需內(nèi)存、進程數(shù)據(jù)和執(zhí)行指令寫入對應的目標進程中直至目標進程中不存在待注入進程。
其中,將重新獲取到的待注入進程所需內(nèi)存、進程數(shù)據(jù)和執(zhí)行指令寫入對應的目標進程中后的執(zhí)行過程與將第一進程中的上述信息寫入第二進程后的執(zhí)行過程一樣,具體的操作原理和操作流程都是類似的。
具體的,現(xiàn)有技術中的進程之間的關系鏈可以是如圖5a中所示32位進程只能注入32位進程中,如圖5b中所示64位進程只能注入64位進程中。但是采用本發(fā)明中提供的信息訪問方法后,可以打亂進程之間的關系鏈,32位進程注入64位進程中,同時可以實現(xiàn)繼續(xù)注入到其他類型的進程中,例如如圖6中所示還可以進一步注入32位進程中。當然,本發(fā)明中的信息訪問方法同樣可以包括現(xiàn)有技術中的方案32位進程仍然可以注入32位進程中,即如圖7中所示,32位進程既可以注入32位進程中,還可以注入64位進程中;而且,可以實現(xiàn)在注入64位進程中后繼續(xù)注入到32位進程中。
需要說明的是,本實施例中與其它實施例中相同步驟或概念的解釋可以參照其它實施例中的描述,此處不再贅述。
本發(fā)明的實施例所提供的信息訪問方法,當檢測到第一應用程序需要訪問第二應用程序時,判斷第一應用程序是否有訪問第二應用程序的權限;若第一應用程序沒有訪問第二應用程序的權限,獲取訪問限制規(guī)則;基于訪問限制規(guī)則,確定第三應用程序;第三應用程序為基于訪問限制規(guī)則確定的能夠訪問第二應用程序的程序;通過第三應用程序訪問第二應用程序;這樣,通過第三應用程序第一應用程序可以實現(xiàn)對第二應用程序的訪問,解決了現(xiàn)有技術方案中許多應用程序之間不能互相訪問的問題,提高了效率,增強了用戶和終端之間的交互能力。
在本發(fā)明的所有實施例中,一種優(yōu)選的方案可以是先獲取第一系統(tǒng)函數(shù)地址,在得到第一系統(tǒng)函數(shù)地址之后,獲取待注入進程所需內(nèi)存、獲取進程數(shù)據(jù)和執(zhí)行指令,然后將待注入進程所需內(nèi)存、獲取進程數(shù)據(jù)和執(zhí)行指令寫入另一進程中并執(zhí)行后續(xù)的操作,當然也不限定只能是如此順序來進行的。
基于前述實施例,以終端為手機、安全應用程序可以是安全應用軟件P、第一應用程序可以是對應有32位進程的應用程序、第二應用程序可以是通訊軟件Q、第三應用程序可以是對應有64位進程的應用程序為例進行場景說明:
A、若安全應用程序即安全應用軟件P設置的訪問限制規(guī)則是凡是具有32位進程的應用程序都不能訪問手機上的第二應用程序即通訊軟件Q,此時,用戶想使用手機上的有32位進程的應用程序獲取通訊軟件Q中的用戶信息時,可以先計算32位進程中待注入進程所需內(nèi)存、獲取進程數(shù)據(jù)和執(zhí)行指令。
B、將第一應用程序的32位代碼切換到64位代碼,獲取進程的加載模塊列表和64位進程加載的基礎模塊地址,之后基于進程的加載模塊列表和64位進程加載的基礎模塊地址獲取64位系統(tǒng)模塊的系統(tǒng)函數(shù)地址。
C、給待注入進程分配存儲空間,基于64位系統(tǒng)模塊的系統(tǒng)函數(shù)地址調(diào)用64位系統(tǒng)函數(shù),并判斷64進程中是否還存在需要注入其它進程中的其它待注入進程;64進程中不存在需要注入其它進程中的其它待注入進程,此時第三應用程序的64進程可以基于進程數(shù)據(jù)和第一系統(tǒng)函數(shù)通過創(chuàng)建的64位線程來獲取第二應用程序中的用戶信息;如果64進程中存在需要注入其它進程中的其它待注入進程,此時終端可以重新獲取64位進程中的其它待注入進程需要占用的存儲空間即所需內(nèi)存、進程數(shù)據(jù)和對應的執(zhí)行指令,之后將重新獲取到的待注入進程所需內(nèi)存、進程數(shù)據(jù)和執(zhí)行指令寫入對應的目標進程中后,按照將第一進程中的上述信息寫入64位進程后的執(zhí)行過程進行后續(xù)流程。
這樣,如圖8中所示,第一應用程序沒有訪問第二應用程序的權限,因為第三應用程序有訪問第二應用程序的權限,此時第一應用程序可以通過第三應用程序來訪問第二應用程序。
本發(fā)明的實施例提供一種信息訪問裝置5,該裝置可以應用于圖1~4對應的實施例提供的一種信息訪問方法中,參照圖9所示,該裝置可以包括:判斷單元51、第一獲取單元52、第二獲取單元53和處理單元54,其中:
判斷單元51,用于當檢測到第一應用程序需要訪問第二應用程序時,判斷第一應用程序是否有訪問第二應用程序的權限。
第一獲取單元52用于若第一應用程序沒有訪問第二應用程序的權限,獲取訪問限制規(guī)則。
第二獲取單元53,用于基于訪問限制規(guī)則,確定第三應用程序。
其中,第三應用程序為基于訪問限制規(guī)則確定的能夠訪問第二應用程序的程序。
處理單元54,用于通過第三應用程序訪問第二應用程序。
本發(fā)明的實施例所提供的信息訪問裝置,當檢測到第一應用程序需要訪問第二應用程序時,判斷第一應用程序是否有訪問第二應用程序的權限;若第一應用程序沒有訪問第二應用程序的權限,獲取訪問限制規(guī)則;基于訪問限制規(guī)則,確定第三應用程序;第三應用程序為基于訪問限制規(guī)則確定的能夠訪問第二應用程序的程序;通過第三應用程序訪問第二應用程序;這樣,通過第三應用程序第一應用程序可以實現(xiàn)對第二應用程序的訪問,解決了現(xiàn)有技術方案中許多應用程序之間不能互相訪問的問題,提高了效率,增強了用戶和終端之間的交互能力。
基于前述實施例,處理單元54包括:計算模塊、第一獲取模塊、第二獲取模塊和處理模塊,其中:
計算模塊,用于基于第一應用程序的第一進程中待注入進程的數(shù)量和需執(zhí)行的操作,計算待注入進程所需內(nèi)存。
第一獲取模塊,用于獲取進程數(shù)據(jù)和執(zhí)行指令。
第二獲取模塊,用于確定第三應用程序?qū)牡谝幌到y(tǒng)函數(shù)地址。
處理模塊,用于基于待注入進程所需內(nèi)存、進程數(shù)據(jù)、第一系統(tǒng)函數(shù)地址和執(zhí)行指令通過第三應用程序訪問第二應用程序。
基于前述實施例,進一步,第二獲取模塊具體用于執(zhí)行以下步驟:
確定第一應用程序?qū)牡谝荒J健?/p>
將第一模式切換為第三應用程序?qū)牡诙J健?/p>
在第二模式下,獲取進程的加載模塊列表和第三應用程序的第二進程加載的基礎模塊地址。
基于基礎模塊地址,在進程的加載模塊列表中獲取第一系統(tǒng)函數(shù)地址。
基于前述實施例,進一步,第二獲取模塊還用于執(zhí)行以下步驟:
通過段間跳轉(zhuǎn)指令,將第一模式切換為第二應用程序?qū)牡诙J健?/p>
基于前述實施例,進一步,第二獲取模塊具體還用于執(zhí)行以下步驟:
基于基礎模塊地址,得到第三應用程序的第二進程加載的基礎模塊。
按照預設規(guī)則,基于基礎模塊在進程的加載模塊列表獲取第一系統(tǒng)函數(shù)地址。
具體的,基于前述實施例,處理模塊具體用于執(zhí)行以下步驟:
將第一應用程序?qū)牡谝荒J角袚Q為第三應用程序?qū)牡诙J健?/p>
在第二模式下,基于待注入進程所需內(nèi)存為待注入進程分配存儲空間。
基于第一系統(tǒng)函數(shù)地址確定第一系統(tǒng)函數(shù)。
在第二進程中創(chuàng)建對應的線程,并判斷第二進程中是否還存在待注入進程。
若第二進程中不存在待注入進程,則基于進程數(shù)據(jù)、第一系統(tǒng)函數(shù)和執(zhí)行指令通過第三應用程序訪問第二應用程序。
基于前述實施例,處理模塊具體還用于執(zhí)行以下步驟:
若第二進程中還存在待注入進程,則重新獲取待注入進程所需內(nèi)存、進程數(shù)據(jù)和執(zhí)行指令。
將重新獲取到的待注入進程所需內(nèi)存、進程數(shù)據(jù)和執(zhí)行指令寫入對應的目標進程中直至目標進程中不存在待注入進程。
需要說明的是,本實施例中各個單元和模塊之間的交互過程,可以參照圖1~4對應的實施例提供的一種信息訪問方法中的交互過程,此處不再贅述。
本發(fā)明的實施例所提供的信息訪問裝置,當檢測到第一應用程序需要訪問第二應用程序時,判斷第一應用程序是否有訪問第二應用程序的權限;若第一應用程序沒有訪問第二應用程序的權限,獲取訪問限制規(guī)則;基于訪問限制規(guī)則,確定第三應用程序;第三應用程序為基于訪問限制規(guī)則確定的能夠訪問第二應用程序的程序;通過第三應用程序訪問第二應用程序;這樣,通過第三應用程序第一應用程序可以實現(xiàn)對第二應用程序的訪問,解決了現(xiàn)有技術方案中許多應用程序之間不能互相訪問的問題,提高了效率,增強了用戶和終端之間的交互能力。
基于前述實施例,本發(fā)明的實施例提供一種信息訪問設備,該設備包括:處理器和通信接口,其中:
處理器,用于當檢測到第一應用程序需要訪問第二應用程序時,判斷第一應用程序是否有訪問第二應用程序的權限;若第一應用程序沒有訪問第二應用程序的權限,獲取訪問限制規(guī)則;基于訪問限制規(guī)則,確定第三應用程序;其中,第三應用程序為基于訪問限制規(guī)則確定的能夠訪問第二應用程序的程序;基于通信接口通過第三應用程序訪問第二應用程序。
需要說明的是,本實施例中處理器和通信接口之間的交互過程,可以參照圖1~4對應的實施例提供的一種信息訪問方法中的交互過程,此處不再贅述。
本發(fā)明的實施例所提供的信息訪問設備,當檢測到第一應用程序需要訪問第二應用程序時,判斷第一應用程序是否有訪問第二應用程序的權限;若第一應用程序沒有訪問第二應用程序的權限,獲取訪問限制規(guī)則;基于訪問限制規(guī)則,確定第三應用程序;第三應用程序為基于訪問限制規(guī)則確定的能夠訪問第二應用程序的程序;通過第三應用程序訪問第二應用程序;這樣,通過第三應用程序第一應用程序可以實現(xiàn)對第二應用程序的訪問,解決了現(xiàn)有技術方案中許多應用程序之間不能互相訪問的問題,提高了效率,增強了用戶和終端之間的交互能力。
在實際應用中,所述判斷單元51、第一獲取單元52、第二獲取單元53、處理單元54、計算模塊、第一獲取模塊、第二獲取模塊、處理模塊、均可由位于無線數(shù)據(jù)發(fā)送設備中的中央處理器(Central Processing Unit,CPU)、微處理器(Micro Processor Unit,MPU)、數(shù)字信號處理器(Digital Signal Processor,DSP)或現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)等實現(xiàn)。
本領域內(nèi)的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用硬件實施例、軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。