使用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
相關文章
- 立即執行函式函式
- 自執行函式函式
- 深入理解 函式、匿名函式、自執行匿名函式函式
- python函式每日一講 - exec執行函式Python函式
- MySQL 對window函式執行sum函式疑似BugMySql函式
- js立即執行函式原理JS函式
- 多執行緒常用函式執行緒函式
- 03-立即執行函式函式
- 使用騰訊雲函式服務執行 laravel 9函式Laravel
- JavaScript 匿名函式與具名函式執行效率比較JavaScript函式
- (未完成)APC函式的執行,分析 KiDeliverApc 函式函式IDE
- 使用ASM框架實現統計函式執行時間ASM框架函式
- 前端進階-執行時函式前端函式
- js解惑-函式執行順序JS函式
- JavaScript 匿名立即自執行函式JavaScript函式
- 立即執行函式(IIFE)&&閉包函式
- JS小知識——立即執行函式JS函式
- 鉤子函式的執行機理函式
- 圖片載入完執行函式函式
- js函式執行過程的探究JS函式
- Golang時間函式及測試函式執行時間案例Golang函式
- python之為函式執行設定超時時間(允許函式執行的最大時間)Python函式
- NX二次開發-C#使用DllImport呼叫libufun.dll裡的UF函式(反編譯.net.dll)呼叫loop等UF函式C#Import函式編譯OOP
- 【函式】Oracle12c 列轉行函式使用listagg函式Oracle
- c++如何使用pthread_join函式配合pthread_create函式來建立和等待執行緒完成,實現執行緒同步與控制C++thread函式執行緒
- JavaScript 立即執行函式、逗號運算JavaScript函式
- c++函式模板和執行機制C++函式
- React 中 render 函式的執行時機React函式
- mysql執行函式出現1418錯誤MySql函式
- 關於執行緒的幾個函式執行緒函式
- js中自執行函式的怪異行為研究JS函式
- 在JS中統計函式執行次數JS函式
- 胡扯JS系列-匿名函式的自動執行JS函式
- phpsimplexml_load_file函式執行不穩定PHPXML函式
- 執行建構函式中指定的任務函式
- 遠端執行緒注入dll,突破session 0執行緒Session
- 使用 Python 函式進行模組化Python函式
- Microsoft Visual Studio VS dumpbin使用檢視.obj、.lib、.dll、.exe檔案頭、段函式ROSOBJ函式
- vue sync 函式同步執行 待請求確認Vue函式