使用rundll32.exe執行dll函式
我們知道windows下dll是沒辦法獨立執行的,但是微軟提供了rundll32.exe用於執行dll。
先測試一下:執行“Rundll32.exe shell32.dll,RestartDialog”,會彈出重啟對話方塊。同樣這種方式可以開啟windows系統其他功能。
下面看一下如何定義自己的dll讓rundll32.exe執行。
微軟給出的dll函式原型如下:
void CALLBACK EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);
hwnd - window handle that should be used as the owner window for any windows your DLL creates hinst - your DLL's instance handle lpszCmdLine - ASCIIZ command line your DLL should parse nCmdShow - describes how your DLL's windows should be displayed
自定義的測試dll如下:
extern "C" _declspec(dllexport) void __cdecl rundll32dllfun(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine,
int nCmdShow)
{
MessageBox(NULL,"TEST",lpszCmdLine,MB_OK);
return;
}
生成動態庫rundll32dll.dll。
執行:
rundll32.exe "E:\demo\rudll32dll\Release\rudll32dll.dll",rundll32dllfun
彈出了熟悉的對話方塊,說明呼叫成功。
同時可以傳入引數,執行:
rundll32.exe "E:\demo\rudll32dll\Release\rudll32dll.dll",rundll32dllfun 888
彈出了對話方塊,並且888顯示了對話方塊上面,說明引數也可以傳遞了,其中引數在lpszCmdLine中獲取。
執行命令說明:rundll32.exe "xxx.dll",dllfun parameter
這樣我們就可以開發dll作為應用程式來執行了,在程式中只能看到rundll32.exe,需通過程式檢視工具檢視執行了哪個dll。
rundll32.exe在那裡4位系統中的位置說明:
windows/system32/rundll32.exe對應呼叫64位dll
windows/SysWoW64/rundll32.exe對應呼叫32位dll
微軟給出的參考文章如下:http://support2.microsoft.com/kb/164787
相關文章
- dll 入口函式函式
- 自執行函式函式
- 立即執行函式函式
- 深入理解 函式、匿名函式、自執行匿名函式函式
- 使用騰訊雲函式服務執行 laravel 9函式Laravel
- 使用 OpenQuery 函式對遠端表執行DMLENQ函式
- js立即執行函式原理JS函式
- js 匿名自執行函式JS函式
- 自執行函式的理解函式
- 03-立即執行函式函式
- 多執行緒常用函式執行緒函式
- 1.自執行函式表示式函式
- MySQL 對window函式執行sum函式疑似BugMySql函式
- python函式每日一講 - exec執行函式Python函式
- javascript中的自執行(立即執行)函式(function(){…})()JavaScript函式Function
- JavaScript 匿名函式與具名函式執行效率比較JavaScript函式
- js匿名函式和具名函式執行效率比較JS函式
- 詳解 Qt 呼叫 DLL功能函式QT函式
- js 立即執行函式表示式介紹JS函式
- 使用ASM框架實現統計函式執行時間ASM框架函式
- JavaScript 匿名立即自執行函式JavaScript函式
- js解惑-函式執行順序JS函式
- 前端進階-執行時函式前端函式
- 立即執行函式(IIFE)&&閉包函式
- JavaScript中的立即執行函式JavaScript函式
- JavaScript 立即執行函式表示式 ( IIFE ) 用例JavaScript函式
- 詳解javascript立即執行函式表示式(IIFE)JavaScript函式
- 圖片載入完執行函式函式
- JS小知識——立即執行函式JS函式
- 鉤子函式的執行機理函式
- js函式執行過程的探究JS函式
- javascript如何終止函式的執行JavaScript函式
- JavaScript自執行函式(function(){})()的理解JavaScript函式Function
- 多執行緒安全strtok函式MStrTok執行緒函式
- Golang時間函式及測試函式執行時間案例Golang函式
- (未完成)APC函式的執行,分析 KiDeliverApc 函式函式IDE
- C++建構函式解構函式的執行過程C++函式
- 透過使用型別庫提高VB呼叫DLL函式的效能 (轉)型別函式