使用者態應用程式呼叫Native API的方法

2021-04-02 18:56:47 字數 1920 閱讀 4409

微軟基本沒有提供給使用者態程式呼叫

native api

的介面,因為

windows sdk

中幾乎沒有呼叫所需的標頭檔案和庫檔案(

sdk中只有少量的

native api

所需的資料結構),但是可以利用以下兩種方法在使用者態呼叫

native api。

通過下面的三個步驟則可以在執行期獲取

native api

的函式指標,從而實現呼叫該函式的目的。

第一步,宣告函式原型和相關資料結構;

例如:

typedef

ntstatus (__stdcall *zwquerysysteminformationfunc)(

in system_information_class systeminformationclass,

out pvoid systeminformation,

in ulong systeminformationlength,

out pulong returnlength optional);

第二步,利用函式

getprocprocess

和getmodulehandle

獲取native api

函式指標;

例如:

zwquerysysteminformation = (zwquerysysteminformationfunc)getprocaddress (getmodulehandle(_t ("ntdll.dll")), "zwquerysysteminformation"));

第三步,呼叫該函式。

完整例子可以參照示例**

getsysteminformation

,當然,這種方法也可以實現執行期獲取

windows user mode api

的函式指標。

上面的方法中實際獲取的是

ntdll.dll

中native api proxy

函式的指標,在

windows

這些proxy

函式實際都是通過呼叫

int 2eh

實現轉核和

api的實際呼叫的(

xp之後的

windows

還實現了一種利用

sysenter

指令轉核的

native api

呼叫介面,

ntdll.dll

中的proxy

函式就是利用這種方式實現的),所以使用者態程式也可以通過

int 2eh

的方式實現

native api

的呼叫。

這種方式主要只需要兩個步驟:

第一步,宣告

native api

的函式原型;

例如:

ntstatus __stdcall myzwquerysysteminformation (in system_information_class systeminformationclass,

in out pvoid systeminformation,

in ulong systeminformationlength,

out pulong returnlength optional)

第二步,在該函式中新增

int 2eh

及設定相應暫存器的相關**;

char

** ppstackframe = (char**)&systeminformationclass;

__a**

完整例子可以參照示例**

getsysteminformation。

完整例子可以參照示例**

getsysteminformation

利用應用UID呼叫應用程式

利用應用uid呼叫應用程式通常有兩種方法 例如 便可以啟用相機程式。二.使用tapatask類 便可以呼叫瀏覽器並直接訪問移動夢網。以下是一些常用功能的uid 瀏覽器0x10008d39 日曆0x10005901 情景模式0x100058f8 名片夾0x101f4cce 待辦事項0x10005900...

利用應用UID呼叫應用程式

利用應用uid呼叫應用程式 from forum nokia wiki 利用應用uid呼叫應用程式通常有兩種方法 便可以啟用相機程式。二.使用tapatask類 便可以呼叫瀏覽器並直接訪問移動夢網。以下是一些常用功能的uid 瀏覽器0x10008d39 日曆0x10005901 情景模式0x1000...

C 呼叫外部應用程式

呼叫外部程式 1先初始化要啟動的程序 processstartinfo 指定啟動程序時使用的一組值。processstartinfo startinfo new processstartinfo hh.exe decompile.2隱藏程序被啟動是的方式 startinfo.windowstyle ...

js呼叫本地應用程式

2.npapi 外掛 window下開發npapi參考文件 npapi 是重型 當別的方法無法到達你的目的時,才建議使用。執行在npapi外掛中的 擁有當前使用者的全部許可權,不能利用google chrome 的沙箱技術和其他安全防護技術。在處理不可信任的輸入,如content scripts和x...

C 呼叫外部應用程式

演示說明 此示例演示如何用c 呼叫記事本程式 notepad.exe 主程式等待7秒鐘,如果使用者沒有關閉記事本程式,則主程式強制關閉。示例 using system using system.collections.generic using system.text 需要引用的名稱空間。using...