麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 編程設計 > 正文

調用未公開的API函數的方法

2020-07-14 13:42:25
字體:
來源:轉載
供稿:網友
Windows SDK開發包中并未提供所有的API函數,在本文中我將討論如何調用這種未公開的API函數。

事實上所有未公開的API函數都和其它的API函數一樣包含在系統的動態鏈接庫中,調用這些函數的方法是取得它們的指針,然后通過指針來進行操作。而取得函數地址,是通過GetProcAddress這個API函數實現的:

FARPROC WINAPI GetProcAddress(
HMODULE hModule, // DLL模塊句柄
LPCSTR lpProcName // 函數名稱
);


當然,在取得地址之前,需要用LoadLibrary獲得模塊的句柄。還有,為了書寫方便,最好用typedef將函數指針定義為一種類型。

下面我將通過兩個例子來演示如何調用這些未公開的API函數。

一、有名稱的函數

這種函數在DLL中擁有自己的函數名稱,但是在SDK包中并沒有提供聲明,其中最有代表性的是RegisterServiceProcess函數:

DWORD WINAPI RegisterServiceProcess(
DWORD dwProcessId, // 進程ID
DWORD dwType // 注冊種類,1表示注冊
);


這個函數的功能是在Win98下將進程注冊為系統服務進程,很多木馬程序的隱藏就是用這個函數實現的。調用它的示例代碼如下:

typedef DWORD (WINAPI * REGISTER)( DWORD, DWORD );
HMODULE hModule;
REGISTER RegisterServiceProcess;
hModule = LoadLibrary( "kernel32.dll" );
if ( hModule != NULL )
{
RegisterServiceProcess = (REGISTER)GetProcAddress( hModule, "RegisterServiceProcess" );
RegisterServiceProcess( GetCurrentProcessId(), 1 );
FreeLibrary( hModule );
}


二、無名稱的函數

有的函數在DLL中并沒有函數名稱,這又如何調用呢?事實上所有的API函數無論有無名稱,都會有一個ID,來在DLL中標識自己。比如函數RunFileDlg,它的ID是61,功能是顯示系統“運行”對話框。下圖所列的是我開發的進程管理軟件July中所調用的“運行”對話框:

 

事實上調用這種函數的方法和前一種非常相似,唯一不同的只是把GetProcAddress的lpProcName參數使用MAKEINTRESOURCE宏將函數的ID轉換一下即可。示例代碼如下:

typedef void (WINAPI* RUN)( HWND, HICON, LPCSTR, LPCSTR, LPCSTR, UINT );
HMODULE hShell32;
RUN RunFileDlg;
hShell32 = LoadLibrary( "shell32.dll" );
RunFileDlg = (RUN)GetProcAddress( hShell32, MAKEINTRESOURCE( 61 ) );
RunFileDlg( hParent, hIcon, NULL, NULL, NULL, 0 );
FreeLibrary( hShell32 );


未公開的API函數的調用方法就介紹到這里了。事實上還有很多這樣的函數,關于這些函數的介紹及使用方法,請下載我的“未公開的Windows API函數”文檔。
附件:/do/uploads/soft/api.rar

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久精品.com | av在线播放亚洲 | 中文字幕在线视频网站 | 欧美性黄 | 91色琪琪电影亚洲精品久久 | 成人aaaaa片毛片按摩 | 在线看免电影网站 | 久久久久免费精品 | 一区二区三区黄色 | 国产成年免费视频 | 久草影音| 久久精品美乳 | 91网站免费观看 | 狠狠操夜夜爱 | 黄色免费av网站 | 欧美日韩国产成人在线观看 | 色综合网在线观看 | 97久久精品一区二区三区观看 | 成年免费大片黄在线观看岛国 | 国产精品视频一区二区三区四区五区 | 国产中出视频 | 国产精品久久久久久久久久久天堂 | 视频一区二区三区在线播放 | 久久成人国产精品 | 一级国产航空美女毛片内谢 | 国产精品久久久久久久久久了 | 日本a v免费观看 | 九九热在线视频免费观看 | 久久国产秒| 成人短视频在线观看免费 | 亚洲射吧 | www.99xxxx.com| 日韩字幕| www.精品视频 | 久久精品艹 | 精品在线观看一区 | 国产在线看一区 | 久色免费 | 日韩欧美高清一区 | 亚洲一区国产二区 | 国产69精品99久久久久久宅男 |