a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

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

調用未公開的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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日本不卡免费新一二三区 | 欧美日韩精 | 国产毛片aaa | 欧美成人一区二区三区片免费 | 欧美日韩成人一区 | 亚洲在线观看免费视频 | 日韩一二区 | 国产女人免费看a级丨片 | 国产精品久久久久久久久久东京 | 色婷婷狠狠 | 亚洲狠狠爱一区二区三区 | 91免费看片| 久久国产精品视频 | 精品一区二区三区三区 | 黄色小视频在线观看 | 三级视频在线观看 | 亚洲伦理在线 | 国产精品久久久久久久久久 | 国产精品久久久久久久 | 日韩精品网站 | 国产极品美女高潮无套av个 | 亚洲精选一区二区 | 亚洲永久 | 久久新| a国产在线观看 | 亚洲人成人一区二区在线观看 | 欧美日韩第一页 | 狠操av| 午夜激情综合 | 日韩在线观看视频免费 | 欧美在线播放一区二区三区 | 欧美日韩精品一区二区三区四区 | 国产浪潮av色综合久久超碰 | 狠狠综合久久av一区二区老牛 | 国产日产精品一区二区三区四区 | 精品少妇一区二区三区在线播放 | 免费色网 | 精品亚洲一区二区三区在线观看 | 国产一二三区在线观看 | 91久久精品久久国产性色也91 | 天天碰天天操 |