|
楼主 |
发表于 2008-8-30 15:44:07
|
显示全部楼层
20.RUNDLL32.EXE 是什么程序
: u) m" ^- c, v, h5 |1 o4 G$ D; A) z0 S: S" z
Rundll32.exe是什么?顾名思意,“执行32位的DLL文件”。它的作用是执行DLL文件中的内部函数,这样在进程当中,只会有Rundll32.exe,而不会有DLL后门的进程,这样,就实现了进程上的隐藏。如果看到系统中有多个Rundll32.exe,不必惊慌,这证明用Rundll32.exe启动了多少个的DLL文件。当然,这些Rundll32.exe执行的DLL文件是什么,我们都可以从系统自动加载的地方找到。: H# w8 e, \* ?
+ I2 w$ }8 q! R4 X* a1 q6 y+ a% D 现在,我来介绍一下Rundll32.exe这个文件,意思上边已经说过,功能就是以命令行的方式调用动态链接程序库。系统中还有一个Rundll.exe文件,他的意思是“执行16位的DLL文件”,这里要注意一下。在来看看Rundll32.exe使用的函数原型:1 e/ g6 @$ C- U2 ^0 e
Void CALLBACK FunctionName (
+ P& L( @2 @% o; b HWND hwnd,
3 m3 R0 T8 X R& n HINSTANCE hinst,+ f2 I: C0 D% h: Q2 H/ y
LPTSTR lpCmdLine,+ k3 H/ j1 L, V- _3 n, Z) M
Int nCmdShow
4 v6 _. }& M6 e4 _" Z/ Q );
1 E, c( C$ U4 B. `0 L1 S
2 c7 C) e$ h/ v# s- q 其命令行下的使用方法为:Rundll32.exe DLLname,Functionname [Arguments]
- ]$ y' m, w4 i' R DLLname为需要执行的DLL文件名;Functionname为前边需要执行的DLL文件的具体引出函数;[Arguments]为引出函数的具体参数。+ l; T( w( K+ t# I
略谈Rundll32.exe的作用 (我是菜鸟)
) x4 a! M* a8 \5 ^) q: F+ E- p/ r, T6 Y; s S5 E0 J* X
3 y: _& C2 q2 i- b7 H d" K
7 @& i+ S& y. n' e- s1 X& z8 S 常用Windows9x的朋友一定对Rundll32.exe和Rundll.exe这两个档案不会陌生吧,不过,由於这两个程式的功能原先只限於在微软内部使用,因而真正知道如何使用它们的朋友想必不多。那么好,如果你还不清楚的话,那么就让我来告诉你吧。 % ^* D* b. k) X# W5 x
首先,请你做个小实验(请事先保存好你正在执行的程式的结果,否则...):点击“开始-程式-Ms-Dos方式”,进入Dos视窗,然後键入rundll32.exe user.exe,restartwindows,再按下回车键,这时你将看到,机器被重启了!怎么样,是不是很有趣? 1 G, Y6 \9 J9 r' I+ f2 B
当然,Rundll的功能绝不仅仅是重启你的机器。其实,Rundll者,顾名思义,执行Dll也,它的功能就是以命令列的方式呼叫Windows的动态链结库,Rundll32.exe与Rundll.exe的区别就在於前者是呼叫32位的链结库,而後者是运用於16位的链结库,它们的命令格式是:
7 c5 u& i3 ^: m5 Q4 _$ n; \7 E8 g+ p/ N
RUNDLL.EXE ,, & v- z1 |; S- U' F
这里要注意三点:1.Dll档案名中不能含有空格,比如该档案位於c:\ProgramFiles\目录,你要把这个路径改成c:\Progra~1\;2.Dll档案名与Dll入口点间的逗号不能少,否则程式将出错并且不会给出任何资讯!3.这是最重要的一点:Rundll不能用来呼叫含返回值参数的Dll,例如Win32API中的GetUserName(),GetTextFace()等。在Visual Basic中,提供了一条执行外部程式的指令Shell,格式为: 3 Y2 }( Y6 I5 A5 C2 ^* W& B% P1 ^7 t
Shell “命令列”
6 P3 Y! ^; _9 R" P 如果能配合Rundll32.exe用好Shell指令,会使您的VB程式拥有用其他方法难以甚至无法实现的效果:仍以重启为例,传统的方法需要你在VB工程中先建立一个模组,然後写入WinAPI的声明,最後才能在程式中呼叫。而现在只需一句:
% A4 w4 e3 H) f6 H" s+ L2 \* p& k! k" \
Shell “rundll32.exe user.exe,restartwindows”就搞定了!是不是方便多了?
9 A: b# e4 m: G c Q) u 实际上,Rundll32.exe在呼叫各种Windows控制面板和系统选项方面有著独特的优势。下面,我就将本人在因特网上收集的有关Rundll的指令列举如下(很有用的,能省去你很多呼叫Windows API的时间!!),供大家在程式设计中引用: & t7 [, A. }, t- P6 e
命令列: rundll32.exe shell32.dll,Control_RunDLL
; A c8 ^, B& I! f4 [% T, k) q 功能: 显示控制面板 ; L+ ~5 H. v7 f9 x6 `" Z/ E
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1 . x! J+ a- s" g. w+ U7 N' z
功能: 显示“控制面板-辅助选项-键盘”选项视窗
; h# n4 J& G7 n9 s; i 命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2
. ?+ d8 o0 j" J. F 功能: 显示“控制面板-辅助选项-声音”选项视窗 * a% S+ f$ N& S& b A6 E. V+ F
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3 1 A7 d# u) f: e7 T
功能: 显示“控制面板-辅助选项-显示”选项视窗
1 ]/ _: K4 w( ~9 Y, z- ^ 命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4 $ C$ d6 E2 ?9 x3 T" @
功能: 显示“控制面板-辅助选项-滑鼠”选项视窗
; A! O; j/ d; k: s7 R3 W7 D* O 命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5 ' ]( u; w9 g) G/ K e7 w7 d9 K
功能: 显示“控制面板-辅助选项-传统”选项视窗
" e4 i' O2 T: @- g& w 命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1
* Z0 V, j f! z; B, F# J 功能: 执行“控制面板-添加新硬体”向导。 ( q' P) Z, R% {* t, j0 A! z
命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter , ]; J# ~' F# n3 h# t+ S$ D) B
功能: 执行“控制面板-添加新印表机”向导。
. h2 j% v) T% A. z4 s2 l2 f1 H n 命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1
) W# M) A1 `) f* |# P4 |. f* K 功能: 显示 “控制面板-添加/删除程式-安装/卸载” 面板。 0 R; ^1 P, S& \; ?# K
命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2
' D7 N" P5 u9 e- m% q9 B- t 功能: 显示 “控制面板-添加/删除程式-安装Windows” 面板。
& q( s+ t1 g4 s9 u 命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3
& i/ L0 J) Y% U: ?* ]) Q 功能: 显示 “控制面板-添加/删除程式-启动盘” 面板。
, Z* ^' p3 t. Z 命令列: rundll32.exe syncui.dll,Briefcase_Create
5 C9 ^ e) Y- G3 [% R 功能: 在桌面上建立一个新的“我的公文包”。 , Q9 N. |) q1 o
命令列: rundll32.exe diskcopy.dll,DiskCopyRunDll ( z8 ~% @2 E$ @* P( q+ a4 o
功能: 显示复制软碟视窗 4 x6 M4 @% \; J& B
命令列: rundll32.exe apwiz.cpl,NewLinkHere %1
1 g6 L5 `& ^ {2 u! E2 G 功能: 显示“建立快捷方式”的对话框,所建立的快捷方式的位置由%1参数决定。
) I) a3 i$ j) \0 \; r 命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0
7 F. Q. x( T: D; D# [ 功能: 显示“日期与时间”选项视窗。
2 M% }: @- c- F 命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,1 8 ?3 w0 u; _+ K9 P' V7 Z
功能: 显示“时区”选项视窗。 ) r5 d X2 q* ?0 v: ~. `
命令列: rundll32.exe rnaui.dll,RnaDial [某个拨号连接的名称] 6 u$ o, N- A+ X. Q5 c7 o
功能: 显示某个拨号连接的拨号视窗。如果已经拨号连接,则显示目前的连接状态的视窗。
1 g, f& w1 [. _8 J% P0 X 命令列: rundll32.exe rnaui.dll,RnaWizard 0 ^0 x: ]5 ]6 _2 f- F) J( O. Q0 t0 @
功能: 显示“新建拨号连接”向导的视窗。
9 ]% o$ W. _) N. m& Y. f1 K 命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0 ) Y7 T2 }8 t2 K- _
功能: 显示“显示属性-背景”选项视窗。 ! n7 H `2 l6 b$ U: \6 v
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1 ! { ]1 d" S9 y* t- q2 K
功能: 显示“显示属性-萤屏保护”选项视窗。 ; G8 A! E' E, @( W3 a- U1 W
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2 ) \( b: o6 K% H5 N
功能: 显示“显示属性-外观”选项视窗。 6 ]6 a c" X0 }" X/ I; K+ o
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3
" u: N; C3 A, N2 O# S% m O: k N 功能: 显示显示“显示属性-属性”选项视窗。
/ {* @' n( t V! U 命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL FontsFolder - e5 B0 g; |, U. |( t
功能: 显示Windows的“字体”档案夹。 ) E6 v# J- j8 Q5 i% }$ s8 m" v
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3 1 \- ?9 O5 R5 O' F
功能: 同样是显示Windows的“字体”档案夹。 & Z3 V& c9 w, F* A. P# J
命令列: rundll32.exe shell32.dll,SHformatDrive ( Y; g8 {; K5 p- K4 w9 _
功能: 显示格式化软碟对话框。
4 N: c9 h: Y9 E/ X: E d 命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0 - h- V3 o! i; g: N J1 \& S
功能: 显示“控制面板-游戏控制器-一般”选项视窗。 5 B4 E* g9 L C1 a% [5 {0 w
命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,1
( z X6 y) Z- S9 p2 j 功能: 显示“控制面板-游戏控制器-进阶”选项视窗。
& w! x" _, w" J5 { 命令列: rundll32.exe mshtml.dll,PrintHTML (HTML文档) # \7 f1 n5 Y; v: t
功能: 列印HTML文档。 5 S/ `- N! ^. l# Q
命令列: rundll32.exe shell32.dll,Control_RunDLL mlcfg32.cpl
1 M& h/ ` ?. g2 m2 S$ K# O6 t* Y! o3 o 功能: 显示Microsoft Exchange一般选项视窗。 6 d- B/ J8 F$ {. a& ]9 [+ c. g' A Y
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @0
( S/ [ @0 I h( d6 K8 A 功能: 显示“控制面板-滑鼠” 选项 。 |1 k ]5 f- t C; S
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1
5 b9 ^7 X" Y; @0 [1 w0 r, _ 功能: 显示 “控制面板-键盘属性-速度”选项视窗。 9 f8 I- J z H4 R% V4 T
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1,,1
- F5 r7 s. c; M9 } 功能: 显示 “控制面板-键盘属性-语言”选项视窗。 " {; _' E- r+ M( S
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @2 $ m W, m9 M8 K2 W, p9 z
功能: 显示Windows“印表机”档案夹。 + S9 }7 e" D* d, P
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
, c" E( w. W" ~* [ J# G" t) B; @ 功能: 显示Windows“字体”档案夹。 # Y* P$ |5 ^3 O8 N
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @4
! Z1 @: J2 Z+ T8 `% z2 u 功能: 显示“控制面板-输入法属性-输入法”选项视窗。 0 @( H m* ^) j6 q4 U# H- R
命令列: rundll32.exe shell32.dll,Control_RunDLL modem.cpl,,add 0 t% B$ R1 p5 _2 g; i
功能: 执行“添加新调制解调器”向导。 6 ~. q/ p* x) L ]
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0
) y4 R0 }0 M3 J8 B- g5 r1 n4 v 功能: 显示“控制面板-多媒体属性-音频”属性页。
& `) `; o; R1 z) O) f% F) \ 命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,1 1 c" b/ m0 E0 @' {( X) e5 F4 ~
功能: 显示“控制面板-多媒体属性-视频”属性页。
1 |6 U$ V; e7 j! }$ ~& c 命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2
5 b5 Y2 K* ]9 j4 ]% Z 功能: 显示“控制面板-多媒体属性-MIDI”属性页。
' Q7 t" \. A0 L) p9 [ 命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,3
- u6 U H8 H4 i: d2 t 功能: 显示“控制面板-多媒体属性-CD音乐”属性页。
4 @3 b+ p; G' ?3 l 命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,4
& y1 k8 T7 a. W# ? 功能: 显示“控制面板-多媒体属性-设备”属性页。 # Y' q/ k' o: V' D
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1 / |8 |& t% `5 \' }7 R# p
功能: 显示“控制面板-声音”选项视窗。 t9 _, [* {, m- z! O
命令列: rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl 2 L; M% {/ j' v1 ]+ E
功能: 显示“控制面板-网路”选项视窗。 , L" ~% v' v9 s: G
命令列: rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl 8 @0 L0 N# @& _( j- A* A! y9 s
功能: 显示ODBC32资料管理选项视窗。
% Y! s) k5 R0 D7 z. p0 k% r+ \ 命令列: rundll32.exe shell32.dll,OpenAs_RunDLL {drive:\path\filename} ' T7 h l& k, O o4 F/ _
9 K9 e R+ \. [& Q1 x6 U5 D" {3 J% c
功能: 显示指定档案(drive:\path\filename)的“打开方式”对话框。 + u9 @+ i. Q, p6 G( X) [
命令列: rundll32.exe shell32.dll,Control_RunDLL password.cpl
& @4 X U4 |% r 功能: 显示“控制面板-密码”选项视窗。 ' O: f8 q7 h; x8 W9 c' G
命令列: rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl
+ K( \9 r* ]! ^ l4 Z' Y8 }6 f 功能: 显示“控制面板-电源管理属性”选项视窗。
9 \* e) l6 I7 P8 `& | K. z 命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder / H0 Q! S4 Z" I/ z9 @
功能: 显示Windows“印表机”档案夹。(同rundll32.exe shell32.dll,Control_RunDLL main.cpl @2) : E; ]' y @/ }, N
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0
: _$ p% n* \6 l4 y 功能: 显示“控制面板-区域设置属性-区域设置”选项视窗。
v9 G# l6 H" ~$ j 命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1 6 h7 p I. _9 Y& |+ }% L3 P5 j
功能: 显示“控制面板-区域设置属性-数字”选项视窗。 * H1 @; `. ~; G
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2 $ {, d5 \8 z% K! {
功能: 显示“控制面板-区域设置属性-货币”选项视窗。
; c6 c& y$ W, f. H 命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3
/ U, z/ m: P1 R) _- ? m' H 功能: 显示“控制面板-区域设置属性-时间”选项视窗。
6 k. V" }$ p/ { G 命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4 : [ E. u! M3 T# B v4 j) d) x. A
功能: 显示“控制面板-区域设置属性-日期”选项视窗。 : t6 `( b" U6 M% x+ F% m
命令列: rundll32.exe desk.cpl,InstallScreenSaver [萤屏保护档案名] + D5 c8 d$ P, F
功能: 将指定的萤屏保护档案设置为Windows的屏保,并显示萤屏保护属性视窗。
' J5 u( `4 t. R+ J7 m0 t$ I 命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0 % _. C. @9 C4 f8 I/ \
功能: 显示“控制面板-系统属性-传统”属性视窗。 9 b( F, o" Q- g' O: d' T! K
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1
3 E9 x7 |" P$ z. ~ 功能: 显示“控制面板-系统属性-设备管理器”属性视窗。 % {) K% \% O3 ?" [. u+ n3 }
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2
# F) j. ]0 |6 x2 y6 A) s& p$ H 功能: 显示“控制面板-系统属性-硬体配置档案”属性视窗。
; G2 y, n T8 i 命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3
6 a2 I5 Q# u9 x3 [ 功能: 显示“控制面板-系统属性-性能”属性视窗。 % K/ b; S) j# Z% o/ p: R
命令列: rundll32.exe user.exe,restartwindows
" Q. s4 K* |9 h" {- J. j, J8 f 功能: 强行关闭所有程式并重启机器。
, z" Y& }/ N4 r7 ~" z( P 命令列: rundll32.exe user.exe,exitwindows
8 x: G( U2 |; x2 B 功能: 强行关闭所有程式并关机。
/ O% @+ R5 C* L `, Y 命令列: rundll32.exe shell32.dll,Control_RunDLL telephon.cpl
2 C9 [9 s/ H2 l2 K3 ^* S# { 功能: 显示“拨号属性”选项视窗
0 r) i/ g1 z1 W( |9 b, x% a 命令列: rundll32.exe shell32.dll,Control_RunDLL themes.cpl
) ?4 L8 f. o0 Q8 V' K- C# h1 r 功能: 显示“桌面主旨”选项面板 . c: t( x3 @. T" u7 T
当然,不止是VisualBasic,象Delphi.VisualC++等其他程式设计语言也可以通过呼叫外部命令的方法来使用Rundll的这些功能,具体方法这里就不再详细叙述了。灵活的使用Rundll,一定会使你的程式设计轻轻松松,达到事半功倍的效果! |
|