亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美xxxx做受欧美.88| 欧美日韩国产页| 久久久久免费精品国产| 欧美午夜www高清视频| 亚洲国产日韩精品在线| 亚洲欧洲在线看| 成人免费激情视频| 九九久久精品一区| 亚洲黄色片网站| 国产香蕉97碰碰久久人人| 69国产精品成人在线播放| 国产精品久久久久久久久久ktv| 国产精品久久久久av免费| 97香蕉久久夜色精品国产| 成人国产在线激情| 欧美肥臀大乳一区二区免费视频| 欧美激情二区三区| 亚洲欧美日韩久久久久久| 久久视频这里只有精品| 日韩欧美亚洲国产一区| 欧美成人性色生活仑片| 欧美精品video| www.日韩系列| 成人a免费视频| 亚洲人成电影网站色www| 91久久精品一区| 懂色av中文一区二区三区天美| 自拍偷拍亚洲精品| 91国在线精品国内播放| 日韩成人在线播放| 欧美wwwxxxx| 国产日韩在线亚洲字幕中文| 国产欧美日韩免费| 欧美理论电影在线观看| 精品久久久久久久久久久久| 国产精品一区二区三区久久久| 国产精品电影网站| 亚洲欧美成人在线| 国产成人aa精品一区在线播放| 亚洲精品综合久久中文字幕| 欧美亚洲成人免费| 欧美丰满老妇厨房牲生活| 日韩av电影国产| 日韩精品免费在线| 国产精品一区二区三区久久| 欧美在线国产精品| 国产日韩av高清| 美女黄色丝袜一区| 色综合老司机第九色激情| 欧美xxxx18国产| 日韩电影免费观看中文字幕| 午夜精品久久久久久久久久久久久| 色99之美女主播在线视频| 色偷偷av亚洲男人的天堂| 亚洲国内高清视频| 国产精品视频免费观看www| 亚洲成色777777女色窝| 久久精品视频va| 欧美激情按摩在线| 日本亚洲欧美三级| 亚洲bt欧美bt日本bt| 欧美视频在线免费| 亚洲黄色有码视频| 欧美在线免费观看| 久久成人免费视频| 亚洲一二在线观看| 国产97色在线|日韩| 欧美肥老太性生活视频| 欧美黄色免费网站| 精品视频久久久久久久| 在线日韩欧美视频| 91精品国产91久久久久福利| 亚洲国产精品嫩草影院久久| 亚洲国产成人精品女人久久久| 国产精品劲爆视频| 久久福利视频网| 亚洲视频电影图片偷拍一区| 欧美俄罗斯性视频| 日韩免费观看av| 精品爽片免费看久久| 91精品国产乱码久久久久久蜜臀| 欧美中文在线观看国产| 欧美精品激情blacked18| 久久综合电影一区| 国内揄拍国内精品| 国产伦精品免费视频| 国产午夜一区二区| 91tv亚洲精品香蕉国产一区7ujn| 日韩欧美在线中文字幕| 一本一本久久a久久精品综合小说| 91成人性视频| 欧美日韩亚洲精品内裤| 日韩在线一区二区三区免费视频| 亚洲一区二区三区四区在线播放| 欧美日韩亚洲天堂| 97精品视频在线观看| 欧美孕妇与黑人孕交| www.亚洲人.com| 91中文字幕在线观看| 欧美性xxxxhd| 中文.日本.精品| 日韩精品中文字幕在线播放| 91精品国产综合久久香蕉最新版| 热99精品里视频精品| 久久精彩免费视频| 欧美成人h版在线观看| 欧美床上激情在线观看| 亚洲级视频在线观看免费1级| 欧美日韩国产页| 久久久噜噜噜久久| 日韩网站免费观看高清| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久久精品国产一区二区| 亚洲第一天堂无码专区| 国产成人精品在线观看| 欧美成人自拍视频| 中文字幕视频在线免费欧美日韩综合在线看| 91亚洲永久免费精品| 亚洲视频在线免费观看| 92看片淫黄大片欧美看国产片| 亚洲一二在线观看| 成人在线视频网站| 亚洲人成在线观| 91tv亚洲精品香蕉国产一区7ujn| 国产精品丝袜久久久久久不卡| 国产精品免费小视频| 国产美女搞久久| 国产在线a不卡| 国产精品成人品| 精品视频—区二区三区免费| 亚洲天堂av在线免费观看| 91日本在线视频| 日韩一区二区三区xxxx| 欧美亚洲国产成人精品| 欧美亚洲激情在线| 欧美激情videos| 高潮白浆女日韩av免费看| 亚洲欧美激情四射在线日| 精品国偷自产在线| 欧美成人亚洲成人日韩成人| 91精品国产高清久久久久久| 日韩免费av在线| 欧美亚州一区二区三区| 国产精品99久久久久久www| 亚洲黄页网在线观看| 日韩免费在线视频| 亚洲欧美综合区自拍另类| 97欧美精品一区二区三区| 精品久久久久久久久国产字幕| 久久理论片午夜琪琪电影网| 欧美成人免费小视频| 国产精品网站入口| 欧美成年人视频网站| 6080yy精品一区二区三区| 国产日韩欧美日韩大片| 91在线视频成人| 91视频8mav| 欧美视频在线观看 亚洲欧| 美女av一区二区三区| 5278欧美一区二区三区| 成人激情电影一区二区| 日韩免费在线观看视频| 亚洲成人aaa| 97精品国产97久久久久久|