|
楼主 |
发表于 2008-8-30 15:44:07
|
显示全部楼层
20.RUNDLL32.EXE 是什么程序 3 P8 h# g4 Y" t; U& x
' }. \/ k! o5 {8 ^: ?' V5 d# v. b Rundll32.exe是什么?顾名思意,“执行32位的DLL文件”。它的作用是执行DLL文件中的内部函数,这样在进程当中,只会有Rundll32.exe,而不会有DLL后门的进程,这样,就实现了进程上的隐藏。如果看到系统中有多个Rundll32.exe,不必惊慌,这证明用Rundll32.exe启动了多少个的DLL文件。当然,这些Rundll32.exe执行的DLL文件是什么,我们都可以从系统自动加载的地方找到。
/ m+ i4 n6 a4 w
- p2 z) b d1 `9 i+ M5 U 现在,我来介绍一下Rundll32.exe这个文件,意思上边已经说过,功能就是以命令行的方式调用动态链接程序库。系统中还有一个Rundll.exe文件,他的意思是“执行16位的DLL文件”,这里要注意一下。在来看看Rundll32.exe使用的函数原型:/ Y, p `) j2 m# _. p
Void CALLBACK FunctionName (, ?4 H9 L0 {8 O, T
HWND hwnd,8 q( R: g3 i- x2 W, ?, h* d
HINSTANCE hinst,1 c- B7 w9 Z( u' G/ s c
LPTSTR lpCmdLine,8 A1 i, P8 d% z, B
Int nCmdShow
9 b0 x6 {( ~5 k" S# z4 o* P4 \4 e9 R );% l6 u5 a& f1 x" c- \
, P G, I+ Q8 N3 f+ M4 m3 Q
其命令行下的使用方法为:Rundll32.exe DLLname,Functionname [Arguments]
( z; _) j. H6 k% K( {; f2 }: [. G DLLname为需要执行的DLL文件名;Functionname为前边需要执行的DLL文件的具体引出函数;[Arguments]为引出函数的具体参数。2 V' N/ l0 V# D3 Q! i/ Q5 P
略谈Rundll32.exe的作用 (我是菜鸟)
3 V. n9 Z7 j; Z& |
9 @, g2 o/ f }- q' t+ L- b! | M : H3 L S0 R# Z7 P# h
6 @5 N5 z5 w/ i+ o) t4 d0 q
常用Windows9x的朋友一定对Rundll32.exe和Rundll.exe这两个档案不会陌生吧,不过,由於这两个程式的功能原先只限於在微软内部使用,因而真正知道如何使用它们的朋友想必不多。那么好,如果你还不清楚的话,那么就让我来告诉你吧。 / M9 }- V3 P- W- t' b: R0 y. K& V
首先,请你做个小实验(请事先保存好你正在执行的程式的结果,否则...):点击“开始-程式-Ms-Dos方式”,进入Dos视窗,然後键入rundll32.exe user.exe,restartwindows,再按下回车键,这时你将看到,机器被重启了!怎么样,是不是很有趣?
+ @" J0 J# o j& \: H 当然,Rundll的功能绝不仅仅是重启你的机器。其实,Rundll者,顾名思义,执行Dll也,它的功能就是以命令列的方式呼叫Windows的动态链结库,Rundll32.exe与Rundll.exe的区别就在於前者是呼叫32位的链结库,而後者是运用於16位的链结库,它们的命令格式是:
( I {# D5 m5 B
8 Y8 r9 a: m3 x* L6 q0 ^3 Y RUNDLL.EXE ,, / K/ _9 W1 r8 B' t
这里要注意三点:1.Dll档案名中不能含有空格,比如该档案位於c:\ProgramFiles\目录,你要把这个路径改成c:\Progra~1\;2.Dll档案名与Dll入口点间的逗号不能少,否则程式将出错并且不会给出任何资讯!3.这是最重要的一点:Rundll不能用来呼叫含返回值参数的Dll,例如Win32API中的GetUserName(),GetTextFace()等。在Visual Basic中,提供了一条执行外部程式的指令Shell,格式为: Z5 V7 C; L' V8 c9 S. P' J9 }
Shell “命令列”
9 M4 J* {- `" {5 }+ q- s' |. C 如果能配合Rundll32.exe用好Shell指令,会使您的VB程式拥有用其他方法难以甚至无法实现的效果:仍以重启为例,传统的方法需要你在VB工程中先建立一个模组,然後写入WinAPI的声明,最後才能在程式中呼叫。而现在只需一句: / }4 p4 w( G4 R
' s% q I/ o% {& p
Shell “rundll32.exe user.exe,restartwindows”就搞定了!是不是方便多了? : N* I1 m) A( @& @* ]: m8 R
实际上,Rundll32.exe在呼叫各种Windows控制面板和系统选项方面有著独特的优势。下面,我就将本人在因特网上收集的有关Rundll的指令列举如下(很有用的,能省去你很多呼叫Windows API的时间!!),供大家在程式设计中引用:
5 {/ I+ W; M" l3 l 命令列: rundll32.exe shell32.dll,Control_RunDLL
% V" Y" S* x- S8 d' S( X" Z 功能: 显示控制面板 1 l& N- l$ N( e& R q& `4 p
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1 1 j: U; j9 s. J7 l; z6 o
功能: 显示“控制面板-辅助选项-键盘”选项视窗 ! t' }" y$ G! I/ A( |
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2
) h6 ]1 G; ^. x T5 i: x- { 功能: 显示“控制面板-辅助选项-声音”选项视窗 ( T' E$ c, o- p6 U( E7 {/ a
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3
) n, ~- U) h: t 功能: 显示“控制面板-辅助选项-显示”选项视窗 # v$ R+ u- X& Y, @. \$ g, h
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4 0 n5 e) {0 q; T8 V
功能: 显示“控制面板-辅助选项-滑鼠”选项视窗 8 ]4 K+ ]# }/ S( O! c
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5 , ~; t' A* [& z# W# F
功能: 显示“控制面板-辅助选项-传统”选项视窗
1 z, Z E, c3 T0 y4 ?8 X 命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1
8 a6 X: H5 L3 i: K( ?- l0 T6 { 功能: 执行“控制面板-添加新硬体”向导。
3 |+ m2 m- q2 s 命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter
8 Y* j* I' z% Y0 c1 ~ 功能: 执行“控制面板-添加新印表机”向导。 7 Y! Z8 j/ F- s! r( S
命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1
' s! g: {+ x' O' O& {. g+ ~/ A1 j 功能: 显示 “控制面板-添加/删除程式-安装/卸载” 面板。 1 A [; F1 u3 l: d7 C
命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2 , G! V% g# K! n3 n" c
功能: 显示 “控制面板-添加/删除程式-安装Windows” 面板。
' u/ [" V1 X/ t7 r8 j( m' M 命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3 + c/ O: l* Z4 q$ ~- ?
功能: 显示 “控制面板-添加/删除程式-启动盘” 面板。 o- c# a2 \. _' O: M# n
命令列: rundll32.exe syncui.dll,Briefcase_Create
5 A" I" w4 e1 t3 O9 ]- X 功能: 在桌面上建立一个新的“我的公文包”。 # _) \6 F e7 l& \3 D) e
命令列: rundll32.exe diskcopy.dll,DiskCopyRunDll H0 c3 ^* K* Y
功能: 显示复制软碟视窗
* Z- L: l: ]/ \ 命令列: rundll32.exe apwiz.cpl,NewLinkHere %1
, o! ?! N2 V) L' g9 q 功能: 显示“建立快捷方式”的对话框,所建立的快捷方式的位置由%1参数决定。 , f% {, l* h; S) y; S
命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0
2 D" \* N4 X+ J, y 功能: 显示“日期与时间”选项视窗。 / {4 b( n ^( A
命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,1
- ?& `$ v; u8 a( S" i8 N) T2 _! R' K! G 功能: 显示“时区”选项视窗。 5 p' m5 Q* C/ F% R3 F6 b
命令列: rundll32.exe rnaui.dll,RnaDial [某个拨号连接的名称]
# a5 c: ~: F' `) Z! P& z2 T$ O7 f 功能: 显示某个拨号连接的拨号视窗。如果已经拨号连接,则显示目前的连接状态的视窗。
4 [8 y! d) | ?$ f4 ] 命令列: rundll32.exe rnaui.dll,RnaWizard # D* ?8 W4 A$ r$ I$ v
功能: 显示“新建拨号连接”向导的视窗。 . d* P2 B3 L: ]$ @
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0 8 |8 P/ ^9 I, u0 U
功能: 显示“显示属性-背景”选项视窗。
' n; W; h0 b b7 n+ \6 m5 M" }6 K 命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1 ! ?1 A9 r- E9 \# B. a
功能: 显示“显示属性-萤屏保护”选项视窗。
7 {& k% U/ H$ o) U6 {6 Z& t- E! O 命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2 + ]1 L b1 R! s+ R# S% O% h) b1 c
功能: 显示“显示属性-外观”选项视窗。
9 S* H$ _6 o# }, q$ p6 F 命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3 . {. J5 [) Q8 f3 y* P; K
功能: 显示显示“显示属性-属性”选项视窗。 0 {2 W& t5 v" I+ Y, i! q# m: F+ I
命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL FontsFolder
) } p9 ]2 H: M) [; G 功能: 显示Windows的“字体”档案夹。
+ `8 |; O1 M4 B8 N+ g 命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3 6 v( U5 T# M8 o: [4 h6 n5 T
功能: 同样是显示Windows的“字体”档案夹。
: Z( x% Y1 o% Y9 q* B 命令列: rundll32.exe shell32.dll,SHformatDrive 8 F9 W& ~: L( h1 b
功能: 显示格式化软碟对话框。 ' F. Z) H+ D8 d: [$ k
命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0 5 S9 ~) w X9 y1 f2 p& g q! b
功能: 显示“控制面板-游戏控制器-一般”选项视窗。
& D4 m# [0 w- `* B' b) c( o; } 命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,1 . n. [% i% u' O) ~: ^. Z
功能: 显示“控制面板-游戏控制器-进阶”选项视窗。 ( A/ T( ]( a/ ?0 _* ~. |( n
命令列: rundll32.exe mshtml.dll,PrintHTML (HTML文档)
3 ^( f# w: r. n5 b6 g' b; O 功能: 列印HTML文档。 # J' N% N3 y5 V8 ?
命令列: rundll32.exe shell32.dll,Control_RunDLL mlcfg32.cpl 2 G4 l$ p; c" A: F
功能: 显示Microsoft Exchange一般选项视窗。 / t$ q! U5 ~6 V3 ^
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @0 6 Z9 z7 F$ \, x4 ~0 H0 n) Z5 p
功能: 显示“控制面板-滑鼠” 选项 。
/ {5 d8 Y% Q% d, f 命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1
! }9 o0 v# {: X7 P 功能: 显示 “控制面板-键盘属性-速度”选项视窗。 + r' a+ I: e8 v2 \" v: e
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1,,1 7 c8 ]) I) F/ |1 ]5 a7 U; @
功能: 显示 “控制面板-键盘属性-语言”选项视窗。 1 W3 J7 V) i y5 Y
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @2
" ]/ v h1 w6 r$ V+ I" m7 e 功能: 显示Windows“印表机”档案夹。 / L) r6 T) M6 n: P+ r
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
: \4 ? x( q2 d( k 功能: 显示Windows“字体”档案夹。 ' y* v S# _( K1 ^4 O4 i# u
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @4
4 P# L5 ^& x; Q, F7 ^ 功能: 显示“控制面板-输入法属性-输入法”选项视窗。 0 N- l) d' ]! h B
命令列: rundll32.exe shell32.dll,Control_RunDLL modem.cpl,,add
9 E6 P/ t \7 G9 P) q0 T; O 功能: 执行“添加新调制解调器”向导。 ; B( M ^: A3 N m" b( p- E2 y' x
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0
+ ^3 s' A' ]9 h9 a 功能: 显示“控制面板-多媒体属性-音频”属性页。 : ^5 }) U7 `) u6 u+ A
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,1 $ u& c4 j3 P7 ]4 s/ Q* ]. Y
功能: 显示“控制面板-多媒体属性-视频”属性页。 1 S& p, i: ~& }
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2 8 I2 H6 {6 y& h& F: a# l' b' N# J! R; j
功能: 显示“控制面板-多媒体属性-MIDI”属性页。 # D( v7 w- x' m# `( N; H
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,3 % m1 `% x8 {* I& B, K7 z
功能: 显示“控制面板-多媒体属性-CD音乐”属性页。
9 }% F8 G: Y, R6 V7 G$ s 命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,4
6 E' k% k# {; u: D& a E5 [5 u 功能: 显示“控制面板-多媒体属性-设备”属性页。
! H ^ S6 x1 x7 j: E. W& S U 命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1
6 @) P* t$ b# e3 o9 Q 功能: 显示“控制面板-声音”选项视窗。
; X* B, F9 @) m 命令列: rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl
" Y4 ~! H0 w; p' ?8 D$ u$ { 功能: 显示“控制面板-网路”选项视窗。
. _$ _% x( j" `1 p 命令列: rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl 9 l( ~/ @* \& ?& Z
功能: 显示ODBC32资料管理选项视窗。
1 Q1 C2 m, A1 m3 }) m- S2 g" _8 r 命令列: rundll32.exe shell32.dll,OpenAs_RunDLL {drive:\path\filename}
9 Z" J2 o! @9 G) D& t0 P
! w9 C+ X' _6 d- c5 S 功能: 显示指定档案(drive:\path\filename)的“打开方式”对话框。 ( i; _$ q1 d* {/ z+ M" U T) v
命令列: rundll32.exe shell32.dll,Control_RunDLL password.cpl ' c! u2 I3 R$ |& L- l4 E: d6 l7 C
功能: 显示“控制面板-密码”选项视窗。
) L& s% J4 q' g- r9 H( w9 F S 命令列: rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl , }* R G; ~6 L1 K3 j
功能: 显示“控制面板-电源管理属性”选项视窗。
) N3 b7 x& p1 O' d$ U0 x6 C2 f 命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder
" x& C3 k! @# @0 c+ ?4 F8 f 功能: 显示Windows“印表机”档案夹。(同rundll32.exe shell32.dll,Control_RunDLL main.cpl @2) ' ^7 i' S1 w, W1 ?+ i& r4 P, V6 m& O
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0
- i2 O) w% W- W1 s% S/ d# J 功能: 显示“控制面板-区域设置属性-区域设置”选项视窗。
8 `: o- W7 h0 J& _ 命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1 * q5 `4 _5 ]8 }% e2 V
功能: 显示“控制面板-区域设置属性-数字”选项视窗。
. L! p5 _( n- p3 g" ` 命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2
5 ?; S& I; E0 m3 h 功能: 显示“控制面板-区域设置属性-货币”选项视窗。 z+ M3 t$ ~( }
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3
& ~- B& M1 w3 n1 a8 | 功能: 显示“控制面板-区域设置属性-时间”选项视窗。 5 m" Y# i; }( A, \1 [- k+ T
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4
6 @2 \2 X. U4 y% e 功能: 显示“控制面板-区域设置属性-日期”选项视窗。
( j2 w, Z: r [( B3 C 命令列: rundll32.exe desk.cpl,InstallScreenSaver [萤屏保护档案名]
0 E, [" _( m2 i" \) {; J1 K- ? 功能: 将指定的萤屏保护档案设置为Windows的屏保,并显示萤屏保护属性视窗。
4 p2 X+ V9 m4 \3 R8 { o/ { 命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0
. h; ^/ y. |8 p 功能: 显示“控制面板-系统属性-传统”属性视窗。
0 x7 ]$ @8 ]9 }* |: ~7 f/ o 命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1 8 q+ X; b8 Z7 D6 @* y
功能: 显示“控制面板-系统属性-设备管理器”属性视窗。 6 J! b+ [4 s j+ h7 F3 j
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2 6 F& z4 ]: l1 A- O P
功能: 显示“控制面板-系统属性-硬体配置档案”属性视窗。 - P) \2 |: o5 e# N+ S0 H
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3
# s+ W8 n; H6 ]1 b$ L 功能: 显示“控制面板-系统属性-性能”属性视窗。 8 R, ], `; r. ?: ?% G
命令列: rundll32.exe user.exe,restartwindows . t5 y3 e7 h5 e8 J
功能: 强行关闭所有程式并重启机器。 3 ?( H. T1 N: p7 v
命令列: rundll32.exe user.exe,exitwindows . B4 W4 E0 ^+ q! `4 p- b3 Y8 l
功能: 强行关闭所有程式并关机。
4 Y. [1 v: H& C 命令列: rundll32.exe shell32.dll,Control_RunDLL telephon.cpl 8 W7 Y7 X7 e6 |) v$ z- R2 C
功能: 显示“拨号属性”选项视窗
1 H) @& l' L5 O6 J 命令列: rundll32.exe shell32.dll,Control_RunDLL themes.cpl
- n1 C6 Z# D$ S1 U4 N4 Q$ k 功能: 显示“桌面主旨”选项面板 ( t& a/ c, G$ B
当然,不止是VisualBasic,象Delphi.VisualC++等其他程式设计语言也可以通过呼叫外部命令的方法来使用Rundll的这些功能,具体方法这里就不再详细叙述了。灵活的使用Rundll,一定会使你的程式设计轻轻松松,达到事半功倍的效果! |
|