|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
Rundll32.exe是什么?顾名思意,“执行32位的DLL文件”。它的作用是执行DLL文件中的内部函数,这样在进程当中,只会有Rundll32.exe,而不会有DLL后门的进程,这样,就实现了进程上的隐藏。如果看到系统中有多个Rundll32.exe,不必惊慌,这证明用Rundll32.exe启动了多少个的DLL文件。当然,这些Rundll32.exe执行的DLL文件是什么,我们都可以从系统自动加载的地方找到。/ Q* R1 {- J4 S: N
% s6 I8 o( G! j% P/ Z) i
现在,我来介绍一下Rundll32.exe这个文件,意思上边已经说过,功能就是以命令行的方式调用动态链接程序库。系统中还有一个Rundll.exe文件,他的意思是“执行16位的DLL文件”,这里要注意一下。在来看看Rundll32.exe使用的函数原型:
+ u5 M1 C' k4 Y' p QVoid CALLBACK FunctionName (
5 R( h& H/ }: P) O4 T6 J2 ?1 fHWND hwnd,1 g, B. \9 i+ a3 J
HINSTANCE hinst,6 T# {8 {0 L- b5 q) N/ n5 S
LPTSTR lpCmdLine,
- |; z) M5 l! B3 J4 q0 I, C, e# v; |Int nCmdShow
' y! P9 C9 K+ N$ W2 u, j);: l+ ^0 }: R9 i8 ?+ ^2 r: R* e9 i
" F. \; y+ i: q9 }6 o
其命令行下的使用方法为:Rundll32.exe DLLname,Functionname [Arguments]) a" D, |$ T* G7 o/ ` f
DLLname为需要执行的DLL文件名;Functionname为前边需要执行的DLL文件的具体引出函数;[Arguments]为引出函数的具体参数。
# e' D$ H) q& M+ @, z% ~略谈Rundll32.exe的作用
2 i% a: I, `1 k8 I5 y. S: _
# i3 \* ]& Y! V# d( _) o, U% N# \' \$ q) j7 W5 P
9 v( U7 F5 m9 @常用Windows9x的朋友一定对Rundll32.exe和Rundll.exe这两个档案不会陌生吧,不过,由於这两个程式的功能原先只限於在微软内部使用,因而真正知道如何使用它们的朋友想必不多。那么好,如果你还不清楚的话,那么就让我来告诉你吧。 4 Y! { Y( u: s" }1 h3 }
首先,请你做个小实验(请事先保存好你正在执行的程式的结果,否则...):点击“开始-程式-Ms-Dos方式”,进入Dos视窗,然後键入rundll32.exe user.exe,restartwindows,再按下回车键,这时你将看到,机器被重启了!怎么样,是不是很有趣?
6 W/ ]8 X: ^# x+ h# D( I Z当然,Rundll的功能绝不仅仅是重启你的机器。其实,Rundll者,顾名思义,执行Dll也,它的功能就是以命令列的方式呼叫Windows的动态链结库,Rundll32.exe与Rundll.exe的区别就在於前者是呼叫32位的链结库,而後者是运用於16位的链结库,它们的命令格式是:
9 E/ h1 E! \/ b
, G+ v) }" `" S6 Y* F4 s3 [RUNDLL.EXE ,,
. f- `1 Y# c2 H这里要注意三点:1.Dll档案名中不能含有空格,比如该档案位於c:\ProgramFiles\目录,你要把这个路径改成c:\Progra~1\;2.Dll档案名与Dll入口点间的逗号不能少,否则程式将出错并且不会给出任何资讯!3.这是最重要的一点:Rundll不能用来呼叫含返回值参数的Dll,例如Win32API中的GetUserName(),GetTextFace()等。在Visual Basic中,提供了一条执行外部程式的指令Shell,格式为: * o6 Q# ^" J: r3 h: r, _7 Q( ?
Shell “命令列” ! u# c9 M4 C7 B) o$ T
如果能配合Rundll32.exe用好Shell指令,会使您的VB程式拥有用其他方法难以甚至无法实现的效果:仍以重启为例,传统的方法需要你在VB工程中先建立一个模组,然後写入WinAPI的声明,最後才能在程式中呼叫。而现在只需一句:
: P1 U4 a2 [ z. M3 |. u' T- T, z& C8 W" Y' N, a. m/ [
Shell “rundll32.exe user.exe,restartwindows”就搞定了!是不是方便多了?
. M1 j1 M6 S$ j$ ~. G$ P- t) n实际上,Rundll32.exe在呼叫各种Windows控制面板和系统选项方面有著独特的优势。下面,我就将本人在因特网上收集的有关Rundll的指令列举如下(很有用的,能省去你很多呼叫Windows API的时间!!),供大家在程式设计中引用: X! S) j7 {6 E# k9 A- M6 M
命令列: rundll32.exe shell32.dll,Control_RunDLL 9 d: w {( q2 M$ x+ ]8 Z
功能: 显示控制面板
6 C" p7 w0 @- n0 d1 J命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1
' k! l" }. n8 a功能: 显示“控制面板-辅助选项-键盘”选项视窗 0 k% Q/ J7 l0 W# \5 K
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2 7 }$ W* n" y$ f3 L) S1 O
功能: 显示“控制面板-辅助选项-声音”选项视窗
- ]! O1 B- u' Q+ t/ }' c `命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3
; h2 X# a% u2 W7 j功能: 显示“控制面板-辅助选项-显示”选项视窗
+ h/ j+ W) P( o' b8 n命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4 & [) M* y4 d/ x$ J
功能: 显示“控制面板-辅助选项-滑鼠”选项视窗
& v! ]: @% d/ O% U/ ~6 H# m命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5 ; G7 g' }& ?5 y( M, {2 {
功能: 显示“控制面板-辅助选项-传统”选项视窗
2 z5 i7 [7 L3 x2 W4 M! w X2 w命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1
9 z# B$ m E4 u功能: 执行“控制面板-添加新硬体”向导。
6 A1 k! E/ l- F: h命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter ( v* ^( l w% |: d
功能: 执行“控制面板-添加新印表机”向导。
, L9 {) U% M; p, l I命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1
; k8 ] \" m8 Q% f! b功能: 显示 “控制面板-添加/删除程式-安装/卸载” 面板。
" I" T* E: K; H5 X3 t1 u$ U; Y命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2 7 L3 C6 R# p3 P
功能: 显示 “控制面板-添加/删除程式-安装Windows” 面板。
n8 X- V! o1 P/ h命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3 2 w" `+ ^& H4 E) K, r
功能: 显示 “控制面板-添加/删除程式-启动盘” 面板。 9 W! W8 d& p! k: v/ O+ |# m" }1 v
命令列: rundll32.exe syncui.dll,Briefcase_Create - m$ s6 e. [# k" Z; T& |7 h
功能: 在桌面上建立一个新的“我的公文包”。 + s% \* {: v+ l0 B- W
命令列: rundll32.exe diskcopy.dll,DiskCopyRunDll & e' _6 B) o- A4 I- r# L5 x
功能: 显示复制软碟视窗 ; l3 m# ~8 Y* X# q! n
命令列: rundll32.exe apwiz.cpl,NewLinkHere %1
2 v8 a$ t' c* Z/ J8 Z* M) |功能: 显示“建立快捷方式”的对话框,所建立的快捷方式的位置由%1参数决定。
9 \% C: @( R2 z" _# @5 o" x( h命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0
4 H* ~: L6 V/ z8 }0 J6 V" {功能: 显示“日期与时间”选项视窗。 / p; K7 N' X0 N) \+ F! n
命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,1 ! F. u: Z* G& o: B a) c. o
功能: 显示“时区”选项视窗。 * p4 H9 V4 F5 D
命令列: rundll32.exe rnaui.dll,RnaDial [某个拨号连接的名称]
2 u; m5 K- v4 h1 }) i" S功能: 显示某个拨号连接的拨号视窗。如果已经拨号连接,则显示目前的连接状态的视窗。
, r, }4 N. \" x3 c1 |5 h命令列: rundll32.exe rnaui.dll,RnaWizard # {6 p. g, [% m1 m
功能: 显示“新建拨号连接”向导的视窗。 # ~6 _. ?- [( A9 X! S6 }$ |
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0 8 ?& n6 o2 P) F# \8 V/ q- r
功能: 显示“显示属性-背景”选项视窗。
9 H: ?& M2 r; b4 l命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1
2 x5 u7 V# {0 M7 Z5 \功能: 显示“显示属性-萤屏保护”选项视窗。 ) R+ j+ A8 {5 F+ V
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2
( ?, u9 }$ T" _% z# s1 u# A功能: 显示“显示属性-外观”选项视窗。 : y) s$ x! a0 h9 u% Q
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3 " | D9 S6 Q. @$ J' ]9 C
功能: 显示显示“显示属性-属性”选项视窗。 + s: \+ s8 E) V9 c
命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL FontsFolder
; m Q& f3 e0 S$ J9 Y8 P功能: 显示Windows的“字体”档案夹。 p; |6 b9 a0 I
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
0 `! a3 q4 H: ^% D$ y功能: 同样是显示Windows的“字体”档案夹。 % ^: ?7 m0 P, U6 c1 X
命令列: rundll32.exe shell32.dll,SHformatDrive
( B6 _* E) E7 }) H5 @" U功能: 显示格式化软碟对话框。 $ U% D) f1 L* y" z3 N4 t3 V! X
命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0 U x+ k* {- T0 U6 z- z
功能: 显示“控制面板-游戏控制器-一般”选项视窗。
+ v9 B1 e) B7 Q) q9 g% w' n命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,1
5 w% H! ^2 y: c2 d" \功能: 显示“控制面板-游戏控制器-进阶”选项视窗。 $ T$ i" f a# D! z/ G
命令列: rundll32.exe mshtml.dll,PrintHTML (HTML文档) ) |. a8 a( s1 A, I" y: Z- b. Y4 D3 W
功能: 列印HTML文档。 : q8 L# N1 d8 F; z
命令列: rundll32.exe shell32.dll,Control_RunDLL mlcfg32.cpl
w: h' S* _; U+ }) y功能: 显示Microsoft Exchange一般选项视窗。
9 \& m/ X" R. B& O% o6 ~2 X* {命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @0
. Z+ u& U- g( u. S% }8 v功能: 显示“控制面板-滑鼠” 选项 。 $ i6 T# H# ^9 r3 L. P; Y
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1 8 O/ _6 r! Q9 Q3 ^. I }
功能: 显示 “控制面板-键盘属性-速度”选项视窗。
5 x U1 O6 b/ o @( T7 r3 R% m命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1,,1
8 w+ A% X9 C% F2 c6 K3 }功能: 显示 “控制面板-键盘属性-语言”选项视窗。
+ Q+ V3 |' ?6 w: q# R命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @2 2 Y2 J' q% B/ e. e' i! x* M
功能: 显示Windows“印表机”档案夹。 ! H* t( a7 T O( Q' t
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
" y- r' Y! `4 I2 ~6 f' g7 v& _功能: 显示Windows“字体”档案夹。 ! ]* b6 B A" s# Q3 g! g. t% J0 L
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @4
- x/ Y0 w3 i+ }9 k功能: 显示“控制面板-输入法属性-输入法”选项视窗。 9 k: o2 P% F- N4 e8 z
命令列: rundll32.exe shell32.dll,Control_RunDLL modem.cpl,,add + S" k7 M, M- S% v
功能: 执行“添加新调制解调器”向导。
- A' k' i6 {8 ]. A$ S8 ^: l9 m0 d; B命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0
6 v$ U6 Z$ _( S& x功能: 显示“控制面板-多媒体属性-音频”属性页。 & S" k: C" X4 O5 @) f- g
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,1 ( T4 \" k$ E6 i; m( V3 X
功能: 显示“控制面板-多媒体属性-视频”属性页。
8 X, y; w+ Y5 y* L( d, J命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2 $ S$ s. h% X: y. A
功能: 显示“控制面板-多媒体属性-MIDI”属性页。 . R* L5 K; S/ Z" l* h
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,3 - Z" ^# T4 b0 Y7 X( m7 m
功能: 显示“控制面板-多媒体属性-CD音乐”属性页。 / v S" A0 G' X- ?+ } O
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,4
/ J8 _: `) k# s功能: 显示“控制面板-多媒体属性-设备”属性页。 7 [0 X( w; a1 |) b$ ~
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1 ) ?- G" F) \( `- D# s
功能: 显示“控制面板-声音”选项视窗。
8 U1 u2 f, g- o |3 R命令列: rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl 4 d8 x2 ~( a* p7 ~, H
功能: 显示“控制面板-网路”选项视窗。
5 o' I$ o& e4 c6 z命令列: rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl
! w+ d$ X9 v$ q功能: 显示ODBC32资料管理选项视窗。
k" T( T9 ~- m" L/ y. g0 @命令列: rundll32.exe shell32.dll,OpenAs_RunDLL {drive:\path\filename}
' [* F" i2 b! j6 T8 |$ N, |7 V
功能: 显示指定档案(drive:\path\filename)的“打开方式”对话框。
" d$ E- z9 S- V% R" \4 C( |命令列: rundll32.exe shell32.dll,Control_RunDLL password.cpl $ r* n( n8 J, e2 c& @) g
功能: 显示“控制面板-密码”选项视窗。 ! W: _3 R. M5 F6 ~, e2 D
命令列: rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl 8 B U3 t/ V& u% i3 U: {. q
功能: 显示“控制面板-电源管理属性”选项视窗。 $ F( l1 h# l5 r0 C" ^
命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder
3 f C Z9 `1 Z7 ]% \) }! Z功能: 显示Windows“印表机”档案夹。(同rundll32.exe shell32.dll,Control_RunDLL main.cpl @2)
$ I" Q; y5 y1 p, N# u' j命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0 " {( W/ t" C) J
功能: 显示“控制面板-区域设置属性-区域设置”选项视窗。
1 s3 \$ S- d; M: B命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1
+ o4 j2 D* v. h# F# [功能: 显示“控制面板-区域设置属性-数字”选项视窗。 : S: C4 v$ K ]: s; Q/ J6 w
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2
+ Y8 E0 N# z: K4 {功能: 显示“控制面板-区域设置属性-货币”选项视窗。
1 L1 q6 D$ v- B7 r) R& v命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3 ) R3 ^8 f9 a0 e8 i# b& I5 A
功能: 显示“控制面板-区域设置属性-时间”选项视窗。
+ N# r( j* ^+ y5 g* Z! W命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4 4 I' v" U( w( E. d8 O
功能: 显示“控制面板-区域设置属性-日期”选项视窗。
: f$ b; |/ a* d& |6 F命令列: rundll32.exe desk.cpl,InstallScreenSaver [萤屏保护档案名]
$ ]! T! b1 s. t* U& |功能: 将指定的萤屏保护档案设置为Windows的屏保,并显示萤屏保护属性视窗。 - ?9 b( I6 Q4 ^1 e5 ~9 }
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0 1 L; v. l- ?! e7 ~, w6 p
功能: 显示“控制面板-系统属性-传统”属性视窗。
; K; W" S7 z8 p3 ^命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1 2 G$ h7 d, S6 m. I( a, T, X9 x( Y
功能: 显示“控制面板-系统属性-设备管理器”属性视窗。
+ V7 u& m& Z3 ~6 B. v命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2
& `6 \+ p6 O8 C4 Q功能: 显示“控制面板-系统属性-硬体配置档案”属性视窗。
& U8 [0 S" P4 c6 S命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3 ) X/ w) q; \3 F6 k' s* f
功能: 显示“控制面板-系统属性-性能”属性视窗。 - S8 G' R9 F- d4 B' o8 V% r, t; [
命令列: rundll32.exe user.exe,restartwindows ; f7 h0 U8 w, m Q7 z' Z( F3 U
功能: 强行关闭所有程式并重启机器。
% O6 _- [* }2 P/ z& O" V+ g命令列: rundll32.exe user.exe,exitwindows 0 r% @; n, L$ P; |
功能: 强行关闭所有程式并关机。 8 N# ~- S1 P/ B* \" D) `
命令列: rundll32.exe shell32.dll,Control_RunDLL telephon.cpl
4 a( b0 Y3 n; R) W. R功能: 显示“拨号属性”选项视窗 # C7 a+ Z e- }: r' v/ N$ x
命令列: rundll32.exe shell32.dll,Control_RunDLL themes.cpl
, Y0 h# h( S3 |$ S功能: 显示“桌面主旨”选项面板
, o& J: y' P/ [2 X当然,不止是VisualBasic,象Delphi.VisualC++等其他程式设计语言也可以通过呼叫外部命令的方法来使用Rundll的这些功能,具体方法这里就不再详细叙述了。灵活的使用Rundll,一定会使你的程式设计轻轻松松,达到事半功倍的效果! |
|