黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图
您现在的位置: 黑客风云 >> 黑客文章 >> 黑客入门 >> 电脑新手 >> 文章正文
[推荐]Windows的自启动方式
      ★★★★★
Windows的自启动方式
文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-4-10

3.注册表启动:
注册表中的启动应该是被使用最频繁的启动方式,但这样的方式也有一些隐蔽性较高的方法,大致有三种。
1.常规启动:
其中\%path%\为任意路径,file.exe为要运行的程序。
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
"Anything"="\%path%\file.exe"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]
"Anything"="\%path%\file.exe"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
"Anything"="\%path%\file.exe"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]
"Anything"="\%path%\file.exe"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
  "Whatever"="c:\runfolder\program.exe"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
  "Whatever"="c:\runfolder\program.exe"
注意:
1.如果需要运行.dll文件,则需要特殊的命令行。
如:
Rundll32.exe C:\WINDOWS\FILE.DLL,Rundll32
2.解除这里相应的自启动项只需删除该键值即可,但注意不要删除如SystemTray、ScanRegistry等这样的系统键值。
3.如果只想不启动而保留键值,只需在该键值加入rem即可。如:
“rem C:\Windows\a.exe”
4.在注册表中的自启动项中没有这项:
[HKEY_CURRENT_USER \Software\Microsoft\Windows\CurrentVersion\RunServices]
5.Run和RunServices的区别在于:Run中的程序是在每次系统启动时被启动,RunServices则是会在每次登录系统时被启动。
关于:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]
有特殊的语法:
例如,运行notepad.exe
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
"title"="My Setup title"
"Flag"=dword:00000002

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001
"RunMyApp"="||notepad.exe"
语法为:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
Flags = 0x0000000
title = "Status Dialog Box title"

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\Depend
0001 = "xxx1"
000X = "xxxx"

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001
Entry1 = "MyApp1.exe"
EntryX = "MyApp2.exe"

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\000x
...
注意:
1.“xxx1,xxxx”是一个动态链接库(DLL)或.OCX文件名(如My.ocx或My.dll)。
2.“0001,000x”是部分名字。可以是数字和文字。
3.“entry1,entryX”是指向一个要运行的程序文件的注册表串值。
键值的说明:
Flags是一个定位在RunOnceEx键用来激活/禁止的DWORD值,具体如下:
值   功能   功能定义
0x00000000   默认   所有功能被禁止
0x00000004   检查壳状况   打开壳的读写校验准备接受OLE命令
0x00000008   无报错对话   错误对话框不显示
0x00000010   创建错误报告文件   创建 C:\Windows\RunOnceEx.err 文件如果有错误出现
0x00000020   创建执行报告文件   创建一个有命令状态的C:\Windows\RunOnceEx.log文件
0x00000040   无例外限制   当注册DLL时不限制例外
0x00000080   无状态对话   当RunOnceEx运行时状态对话框不显示

由于涉及篇幅较多,具体做法请浏览微软网页:
http://support.microsoft.com/support/kb/articles/Q232/5/09.ASP

2.特殊启动1:
在注册表中除了上述的普通的启动方式以外,还可以利用一些特殊的方式达到启动的目的:
[HKEY_CLASSES_ROOT\exefile\shell\open\command] @="%1" %*
[HKEY_CLASSES_ROOT\comfile\shell\open\command] @="%1" %*
[HKEY_CLASSES_ROOT\batfile\shell\open\command] @="%1" %*
[HKEY_CLASSES_ROOT\htafile\shell\open\command] @="%1" %*
[HKEY_CLASSES_ROOT\piffile\shell\open\command] @="%1" %*
[HKEY_LOCAL_MACHINE\Software\CLASSES\batfile\shell\open\command] @="%1" %*
[HKEY_LOCAL_MACHINE\Software\CLASSES\comfile\shell\open\command] @="%1" %*
[HKEY_LOCAL_MACHINE\Software\CLASSES\exefile\shell\open\command] @="%1" %*
[HKEY_LOCAL_MACHINE\Software\CLASSES\htafile\shell\open\command] @= "%1" %*
[HKEY_LOCAL_MACHINE\Software\CLASSES\piffile\shell\open\command] @="%1" %*

其实从注册表的路径上也许就隐约可以看出,这些都是一些经常被执行的可执行文件的键值。往往有些木马是可以更改这些键值从而达到加载的目的:
如果我把“”%1”%*”改为“file.exe”%1”%*”则文件file.exe就会在每次执行某一个类型的文件(要看改的是哪一个文件类型)的时候被执行!
当然,可以被更改的不一定只是可执行文件,譬如冰河就利用了TXT文件的键值:
[HKEY_CLASSES_ROOT\txtfile\shell\open\command]实现木马的一种启动方式。

3.特殊启动2:
在注册表中:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\
的位置上有这样的地址。该地址是系统启动VxD驱动文件放置的地址,就像PrettyPark这个蠕虫一样,可以建立一个主键之后把VxD文件添加到注册表中在这里。
注意:不可以直接把一个EXE文件改名为VxD文件,需要另外进行编程,生成的VxD文件。

4.其他启动方式:
1.C:\Explorer.exe启动方式:
这是一种特殊的启动方式,很少有人知道。
在Win9X下,由于SYSTEM.INI只指定了Windows的外壳文件EXPLORER.EXE的名称,而并没有指定绝对路径,所以Win9X会搜索EXPLORER.EXE文件。
搜索顺序如下:
1.   搜索当前目录。
2.   如果没有搜索到EXPLORER.EXE则系统会获取
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path]的信息获得相对路径。
3.   如果还是没有文件系统则会获取[HKEY_CURRENT_USER\Environment\Path]的信息获得相对路径。
其中:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path]和[HKEY_CURRENT_USER\Environment\Path]所保存的相对路径的键值为:“%SystemRoot%\System32;%SystemRoot%”和空。

所以,由于当系统启动时,“当前目录”肯定是\%SystemDrive%\(系统驱动器),这样系统搜索EXPLORER.EXE的顺序应该是:
1.   \%SystemDrive%\(例如C:\)
2.   \%SystemRoot%\System32(例如C:\WINNT\SYSTEM32)
3.   \%SystemRoot%\(例如C:\WINNT)
此时,如果把一个名为EXPLORER.EXE的文件放到系统根目录下,这样在每次启动的时候系统就会自动先启动根目录下的EXPLORER.EXE而不启动Windows目录下的EXPLORER.EXE了。

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页  

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
VIP 专 区
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886