|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
Rundll32.exe是什么?顾名思意,“执行32位的DLL文件”。它的作用是执行DLL文件中的内部函数,这样在进程当中,只会有Rundll32.exe,而不会有DLL后门的进程,这样,就实现了进程上的隐藏。如果看到系统中有多个Rundll32.exe,不必惊慌,这证明用Rundll32.exe启动了多少个的DLL文件。当然,这些Rundll32.exe执行的DLL文件是什么,我们都可以从系统自动加载的地方找到。
+ a$ [+ G0 K. ?- q, u4 \- C
, s& X1 K6 P) r+ \) h, T现在,我来介绍一下Rundll32.exe这个文件,意思上边已经说过,功能就是以命令行的方式调用动态链接程序库。系统中还有一个Rundll.exe文件,他的意思是“执行16位的DLL文件”,这里要注意一下。在来看看Rundll32.exe使用的函数原型:
/ k5 W6 v8 @+ l" IVoid CALLBACK FunctionName (
7 s6 t2 |( m8 `0 n# DHWND hwnd,
8 |1 u$ J* {) y# {; S2 A6 }0 dHINSTANCE hinst,9 J$ c2 z+ p$ |
LPTSTR lpCmdLine,+ X- t! t0 l2 w* U( _2 T+ o
Int nCmdShow
/ S9 [# t0 r% ]$ W* I);3 K" n9 e: d# i/ M
% l5 m. Q! I# q( Z
其命令行下的使用方法为:Rundll32.exe DLLname,Functionname [Arguments]1 E& p9 N3 u. E: R. w
DLLname为需要执行的DLL文件名;Functionname为前边需要执行的DLL文件的具体引出函数;[Arguments]为引出函数的具体参数。- ?6 \& d3 I6 O) z! a0 o% O( q' }
略谈Rundll32.exe的作用 ' E3 A% J3 j& N- L5 ]( a
+ _; j: ]' v5 A& ]& K M' `
) d, \. c7 b& l1 |! k
7 @) |+ Q8 K4 e5 t+ k/ G常用Windows9x的朋友一定对Rundll32.exe和Rundll.exe这两个档案不会陌生吧,不过,由於这两个程式的功能原先只限於在微软内部使用,因而真正知道如何使用它们的朋友想必不多。那么好,如果你还不清楚的话,那么就让我来告诉你吧。
! c. N, F- ~6 [# {- u; q- N首先,请你做个小实验(请事先保存好你正在执行的程式的结果,否则...):点击“开始-程式-Ms-Dos方式”,进入Dos视窗,然後键入rundll32.exe user.exe,restartwindows,再按下回车键,这时你将看到,机器被重启了!怎么样,是不是很有趣? ) o) m' `0 a) h5 e) w( p
当然,Rundll的功能绝不仅仅是重启你的机器。其实,Rundll者,顾名思义,执行Dll也,它的功能就是以命令列的方式呼叫Windows的动态链结库,Rundll32.exe与Rundll.exe的区别就在於前者是呼叫32位的链结库,而後者是运用於16位的链结库,它们的命令格式是: ' m3 W6 Z( B) P. c
4 o" P8 \4 q* X+ s4 IRUNDLL.EXE ,, h* l2 \. P0 s7 S
这里要注意三点:1.Dll档案名中不能含有空格,比如该档案位於c:\ProgramFiles\目录,你要把这个路径改成c:\Progra~1\;2.Dll档案名与Dll入口点间的逗号不能少,否则程式将出错并且不会给出任何资讯!3.这是最重要的一点:Rundll不能用来呼叫含返回值参数的Dll,例如Win32API中的GetUserName(),GetTextFace()等。在Visual Basic中,提供了一条执行外部程式的指令Shell,格式为:
; q( y7 d6 d- h4 c0 }6 w1 IShell “命令列”
2 X7 O8 u9 Y4 }2 q& X如果能配合Rundll32.exe用好Shell指令,会使您的VB程式拥有用其他方法难以甚至无法实现的效果:仍以重启为例,传统的方法需要你在VB工程中先建立一个模组,然後写入WinAPI的声明,最後才能在程式中呼叫。而现在只需一句: * t A; [$ N% X" C" V
+ H5 R( i7 @5 d* h6 w K
Shell “rundll32.exe user.exe,restartwindows”就搞定了!是不是方便多了?
8 ` ^( m5 o- }8 Y0 \实际上,Rundll32.exe在呼叫各种Windows控制面板和系统选项方面有著独特的优势。下面,我就将本人在因特网上收集的有关Rundll的指令列举如下(很有用的,能省去你很多呼叫Windows API的时间!!),供大家在程式设计中引用: 9 V7 \# b, k9 f4 b3 x
命令列: rundll32.exe shell32.dll,Control_RunDLL ' ~7 B; M* j; U: c3 U
功能: 显示控制面板 ; E0 [8 n/ b8 p: B; o. M
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1 $ T: Q% o# P/ V4 ^
功能: 显示“控制面板-辅助选项-键盘”选项视窗
. @- F; Z1 a4 j7 f ?命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2
: H5 ^9 o4 o$ P, J% z1 }# R9 o$ c功能: 显示“控制面板-辅助选项-声音”选项视窗
9 r6 f& \# H! m' V命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3 {. ^% g1 e6 o! a
功能: 显示“控制面板-辅助选项-显示”选项视窗
" r) U \( |. G h& ?命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4
+ O% y1 H1 R3 p. ]: E功能: 显示“控制面板-辅助选项-滑鼠”选项视窗 0 i8 v/ C& D G+ i
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5
. a1 c7 q; G+ ?功能: 显示“控制面板-辅助选项-传统”选项视窗 ; ?, k U8 u! h. q4 A' G
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1
7 g4 x# a; K) v4 P2 C功能: 执行“控制面板-添加新硬体”向导。
m: R* [& s6 w命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter # R9 `5 x3 u8 v6 M! A$ r
功能: 执行“控制面板-添加新印表机”向导。 1 F$ J. F" {% h/ i
命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1 0 P2 u3 W$ _+ ]% {: a) L& n
功能: 显示 “控制面板-添加/删除程式-安装/卸载” 面板。
{3 W5 ?. l9 s# w! F命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2 N; I& Y9 q! ]: {9 h1 i' S
功能: 显示 “控制面板-添加/删除程式-安装Windows” 面板。 9 @; [* G5 d6 O6 N+ f/ X
命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3
+ o0 i, E% k C8 g4 N功能: 显示 “控制面板-添加/删除程式-启动盘” 面板。
$ U7 R. W+ i7 z: J- h命令列: rundll32.exe syncui.dll,Briefcase_Create
# ?; U% m6 n% E- g: M功能: 在桌面上建立一个新的“我的公文包”。
% T' [1 n- S2 `( e; K. y命令列: rundll32.exe diskcopy.dll,DiskCopyRunDll $ g) J: B7 x9 n/ l9 ^
功能: 显示复制软碟视窗
6 I- `0 C0 Y& p+ S* J8 S- W/ K9 |命令列: rundll32.exe apwiz.cpl,NewLinkHere %1 / g- i* ~7 {7 n6 e0 _
功能: 显示“建立快捷方式”的对话框,所建立的快捷方式的位置由%1参数决定。 # O$ _% w+ m1 m
命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0
% n0 ~( ^- ?/ r功能: 显示“日期与时间”选项视窗。
0 F( S8 C' |" w" P6 I9 c5 }命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,1
- a* m$ g1 O" P# f, Y, L3 n0 w功能: 显示“时区”选项视窗。
: S6 N1 x2 @+ |! C9 Y命令列: rundll32.exe rnaui.dll,RnaDial [某个拨号连接的名称]
8 N. M: ?6 @6 Q( o% Y$ o% U/ W, X1 V功能: 显示某个拨号连接的拨号视窗。如果已经拨号连接,则显示目前的连接状态的视窗。 ! m) j: ~7 `) Z; G0 [: X
命令列: rundll32.exe rnaui.dll,RnaWizard 1 P U/ M' Z8 r1 J7 U
功能: 显示“新建拨号连接”向导的视窗。
# k! J' _" L w: Q8 b/ J) ^命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0 9 ]' \% p* s8 d7 M( a/ u; s
功能: 显示“显示属性-背景”选项视窗。 8 ]5 l7 f8 C0 t- Y9 ?1 D# p
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1
1 J. G: r* s m. Z3 S6 K4 f% @0 e功能: 显示“显示属性-萤屏保护”选项视窗。 0 z7 ?( Q3 H6 x! w
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2
/ a! C0 r: h( c- ?# F' ~功能: 显示“显示属性-外观”选项视窗。
, J, _6 \$ S& f0 _命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3 & G4 v. V* X7 L4 |
功能: 显示显示“显示属性-属性”选项视窗。
) z( F& z( v+ v& p% ]命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL FontsFolder # j7 N9 m# C0 n$ F
功能: 显示Windows的“字体”档案夹。 + @; ?7 w, s& {2 \
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
# j- D- k' A, ]& ^8 n) a功能: 同样是显示Windows的“字体”档案夹。
/ ^ K4 r" g# V$ z+ w命令列: rundll32.exe shell32.dll,SHformatDrive
1 t. X, X1 Q) w3 s$ I2 C功能: 显示格式化软碟对话框。
) X+ `+ \1 S( [; S6 G* @命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0 * a0 _4 f: b! ?( m, @. s4 K
功能: 显示“控制面板-游戏控制器-一般”选项视窗。
/ @$ b, i2 U- Q* r命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,1
* n" B, z: [( ? G" \ N功能: 显示“控制面板-游戏控制器-进阶”选项视窗。 / F/ Y' E& |: C# P4 b
命令列: rundll32.exe mshtml.dll,PrintHTML (HTML文档) ; U0 R; B% l' T; z" Z. [
功能: 列印HTML文档。
% W8 `4 M3 Y1 B命令列: rundll32.exe shell32.dll,Control_RunDLL mlcfg32.cpl
, d7 k3 [) U0 r功能: 显示Microsoft Exchange一般选项视窗。 4 X) U1 k6 ~- U: k" Q) f( b
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @0
! Z: y/ n$ E) [$ {' s, Y功能: 显示“控制面板-滑鼠” 选项 。
9 e2 R/ W/ L1 r* ~命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1
! j) S4 K+ {9 G: [4 u功能: 显示 “控制面板-键盘属性-速度”选项视窗。 0 x! J* V9 `$ z/ w6 G/ S% X
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1,,1 - j5 `* A- l: {6 X! |
功能: 显示 “控制面板-键盘属性-语言”选项视窗。 1 p* i) h5 k4 X8 d# K5 _
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @2 i5 E7 s( y+ @% p
功能: 显示Windows“印表机”档案夹。
: Z; L( o& Z$ ]- J命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
. M" @2 `' H+ f: V功能: 显示Windows“字体”档案夹。 - L, u6 P/ f# g
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @4 1 o9 {# o# I; q; i
功能: 显示“控制面板-输入法属性-输入法”选项视窗。
! y6 }: \9 c5 T8 n( E* p0 |命令列: rundll32.exe shell32.dll,Control_RunDLL modem.cpl,,add
' g S5 e1 r% W w/ I3 N& k功能: 执行“添加新调制解调器”向导。
+ b3 M; ~, I1 l; K! g命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0
; C5 s, Z( _: l; e3 d- W `功能: 显示“控制面板-多媒体属性-音频”属性页。
- a. r* j. W- m; h- ?) K' P命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,1
+ ~! O$ o5 E7 R2 e, |功能: 显示“控制面板-多媒体属性-视频”属性页。
4 p3 C o( M1 T+ z8 V命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2
8 P. ] q& H; O1 ]5 g; @2 s: q功能: 显示“控制面板-多媒体属性-MIDI”属性页。 . \& I, N. ^+ J# X+ a9 V3 @
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,3 7 J0 o4 ~' V: }8 m# [9 M
功能: 显示“控制面板-多媒体属性-CD音乐”属性页。 % l7 T0 E7 {! H I
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,4
: R4 g( M" c6 {$ y功能: 显示“控制面板-多媒体属性-设备”属性页。
% U9 }! p6 M1 i" f" F# X命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1 2 @- s1 ~, {* H6 N" K! v
功能: 显示“控制面板-声音”选项视窗。 . [. h7 P& l8 Z0 A& g% N' ~
命令列: rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl " J R6 Y# P3 n, ^8 n/ ]+ B J
功能: 显示“控制面板-网路”选项视窗。
' d( y& J6 k9 M命令列: rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl
0 h: Q1 n/ j+ g: _3 L功能: 显示ODBC32资料管理选项视窗。 4 S" |) A8 D2 [
命令列: rundll32.exe shell32.dll,OpenAs_RunDLL {drive:\path\filename} : u! A7 P6 r Y- b, U, G
' j0 N" l; \/ U: E
功能: 显示指定档案(drive:\path\filename)的“打开方式”对话框。
" \1 e0 G8 F# E: J命令列: rundll32.exe shell32.dll,Control_RunDLL password.cpl
, a* M/ S$ L7 e" d0 K功能: 显示“控制面板-密码”选项视窗。 $ M' z9 p' r$ ]- a {( `5 [3 n& G9 Q
命令列: rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl ) s! l) k: V7 \5 k% n( v
功能: 显示“控制面板-电源管理属性”选项视窗。
2 |! o2 y$ q# F' J: T! m命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder
1 K$ @- C p, v' ]! {; w功能: 显示Windows“印表机”档案夹。(同rundll32.exe shell32.dll,Control_RunDLL main.cpl @2)
) u, x4 i1 y' `命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0
% P; V5 c' @5 Y2 ` w功能: 显示“控制面板-区域设置属性-区域设置”选项视窗。
5 ]7 i8 [. [7 K- e$ y命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1
, m3 d# a5 D B) ]1 o: W功能: 显示“控制面板-区域设置属性-数字”选项视窗。
# ?6 \ B" g1 g' _2 A4 N. U( _命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2
. t; x9 f; M1 x功能: 显示“控制面板-区域设置属性-货币”选项视窗。 & U& i0 g& ? D1 i8 y9 [. f# @
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3
+ k5 Z* g" m& Z. L功能: 显示“控制面板-区域设置属性-时间”选项视窗。 9 H9 C! z7 E& F
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4
, t1 L4 N" c+ J, R! [功能: 显示“控制面板-区域设置属性-日期”选项视窗。 8 C0 e+ G+ |# b$ ?( N1 |3 A
命令列: rundll32.exe desk.cpl,InstallScreenSaver [萤屏保护档案名] . G2 ^! s, n& k4 C% Q9 F
功能: 将指定的萤屏保护档案设置为Windows的屏保,并显示萤屏保护属性视窗。 9 I# V5 h# t- T0 l* `$ |
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0
# x' ~2 G% C1 r. l* ^) \$ k功能: 显示“控制面板-系统属性-传统”属性视窗。
7 R/ R6 b$ u: y t" Q" ?, }9 w命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1
: ?* p; O# c5 ]+ W% ^; [. U功能: 显示“控制面板-系统属性-设备管理器”属性视窗。
2 F" m e! a5 q5 e/ D8 u命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2 ; b0 z9 H. P! ^2 l% E- p% x* v" j
功能: 显示“控制面板-系统属性-硬体配置档案”属性视窗。 6 Y/ e0 y" U F7 |
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3
0 K0 y$ e+ @; k! N( B7 L功能: 显示“控制面板-系统属性-性能”属性视窗。 * w' P% J, W0 q @0 U2 g
命令列: rundll32.exe user.exe,restartwindows / s( ~ |$ l: y* w
功能: 强行关闭所有程式并重启机器。 8 z( J' `9 u/ o3 o7 x2 K9 _3 G$ N# R
命令列: rundll32.exe user.exe,exitwindows
" I3 P1 C2 m- r7 H% z. ?功能: 强行关闭所有程式并关机。
* u3 o9 D( ]9 W8 \" Y: d, Z% J命令列: rundll32.exe shell32.dll,Control_RunDLL telephon.cpl
; h& ]- X/ i5 m4 q1 P( ?功能: 显示“拨号属性”选项视窗 + ^, E7 M- H$ b7 p' t1 \/ \/ ]1 B
命令列: rundll32.exe shell32.dll,Control_RunDLL themes.cpl ' w' u- S4 |/ b- {
功能: 显示“桌面主旨”选项面板 $ ?8 U G4 ]' ~1 v R6 q, m0 M( p
当然,不止是VisualBasic,象Delphi.VisualC++等其他程式设计语言也可以通过呼叫外部命令的方法来使用Rundll的这些功能,具体方法这里就不再详细叙述了。灵活的使用Rundll,一定会使你的程式设计轻轻松松,达到事半功倍的效果! |
|