程序启动大汇总

原创 2007年09月28日 09:28:00
 

1、古老的 BAT 和 SYS

  从 Win16 和 Win9X 时代遗留下来的,%BOOTDRV%/Autoexec.bat、%windir%/WinStart.bat、%windir%/DosStart.bat,没见过不稀奇,什么意思可以体会出来,不解释了。

  %BOOTDRV%/Config.sys 装载 16 位设备驱动用的,最常见的是 DOS 下要用光驱,都是在这个文件配制的。

2、古老的 INI

  从 Win16 时代遗留下来的,%windir%/Win.ini(load/run)、%windir%/System.ini(shell)。

3、常规的“启动”

  开始菜单-程序里那个,注意隐藏、系统属性的文件不会显示在菜单里。而且这个项是多用户的,也就是说这里显示的是“All Users”和当前用户的“启动”目录。一般系统装在 C 盘的话就是“C:/Documents and Settings/All Users/「开始」菜单/程序/启动”。检查这个启动项的时候,应该把所有用户都查看一下,包括 Default User 的。

  不过这些启动文件夹,是可以改位置的,它们都是由注册表决定的。HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders 下的 Common Startup,HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders 和 HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/User Shell Folders 下的 Startup。

4、注册表中专门的“启动”

  HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run,对当前用户有效;
  HKEY_USERS/.DEFAULT/Software/Microsoft/Windows/CurrentVersion/Run,对默认用户有效,比如匿名用户、SYSTEM;
  HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run,对本机所有用户有效。

5、注册表中专门用来安装程序的“启动”

  把上面的 Run 换成 RunOnce、RunOnceEx,也就是只运行一次,运行后系统就把这个值删除。这是给安装、更新程序用的,只需要运行一次。WinNT 系统可以用 gpedit.msc 把这个项设置为忽略,在“计算机配制-管理模板-系统-登录”。

6、注册表中用来运行系统服务的“启动”

  把3的 Run 换成 RunServices。这个在 Win98 下据说是把一般的程序当系统服务来运行,可以不出现在任务列表里,我试过把屏保程序放这里启动,结果出现的是屏保程序的设置界面,在 WinNT 下我就没用过这个项了。同理,还有 RunServicesOnce。

7、注册表中册组策略用的“启动”

  HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/policies/Explorer/Run,这个项比较少人知道。

8、注册表中对 Win.ini 和 System.ini 的替代

  Win.ini 的 load 和 run 对应 HKEY_CURRENT_USER/Software/Microsoft/Windows NT/CurrentVersion/Windows 下的 load 和 run。System.ini 的 shell 对应 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon 下的 Shell,另外这个下面还有 UIHost、Userinit、VmApplet 也都可以启动程序。

  NT 有用到一个映射,可以研究一下 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/IniFileMapping 下的 system.ini 和 win.ini 两个子键。

9、注册表中全局 DLL “启动”

  HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Windows 下的 AppInit_DLLs。

10、Windows NT 开关机脚本

  %windir%/system32/GroupPolicy/Machine/Scripts 下有两个目录,Startup 存放开机脚本,Shutdown 存放关机脚本。这个要配合注册表的 HKEY_LOCAL_MACHINE/SOFTWARE/Policies/Microsoft/windows/System/Scripts,下面有 Startup、Shutdown 两个子键,再下面会有数字命名的键,对着研究就知道了。

11、Windows NT 系统服务

  HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services 下。

12、文件关联

  HKEY_CLASSES_ROOT 下,以前的冰河关联了 .txt 文件,如果没注意,杀了一个后,双击 .txt 文件,又中了。

13、CMD AutoRun(很少人知道

  HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Command Processor 下的 AutoRun,在运行 cmd.exe 的时候,这里的命令会被执行。如果我们在这里写上 exit,则 cmd 一出现马上又关闭,应该用 cmd /d 来避免。建议如果是通过快捷方式运行的应该加上 /d 的参数,如果是通过“运行”运行的应该多打一下“ /d”,这样可以减少危险。

14、根目录下的 AutoRun.inf

  在这个文件里可以定义驱动器的图标和右键菜单,还有双击默认执行的命令。

15、其他软件自定义的启动项

  比如 OFFICE 的宏就可以在启动 Word 的时候执行,宏代码可以调用外部程序;QQ 装皮肤用的是一个 .VBS 脚本程序……

16、驱动

  和 Win32 系统服务一样是在 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services 下,不过 Type = 1(服务一般是 20)。而且文件一般都放在 C:/WINDOWS/system32/drivers。驱动运行在 Ring0 的,服务虽然是 SYSTEM 身份运行,不过是在 Ring3,所以还是不可以直接访问硬件。

17、GINA DLL

  HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon 下的 GinaDLL,这个如果存在,一般是 Gina 木马,或者是一些指纹、虹膜验证的程序,比如是 IBM 笔记本有见过带指纹验证的,省去输入登录密码的麻烦。我自己也写过 Gina 木马,之前倒是给忘记写这个项了!

18、镜像调试器

  NT 型系统,除了允许设置系统公共的调试器外,还可以给每个命名的可执行程序指定一个独立的调试器,而且是在镜像运行前就调用调试器,注册表:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options 下,以程序名字为子键,然后一个字符串值,名字 Debugger,具体可以参考:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options/Your Image File Name Here without a path。例如:

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options/cmd.exe

Debugger = "Notepad.exe"

  设置后以后运行 cmd.exe 会调用 Notepad.exe 来调试 cmd.exe,但由于 Notepad.exe 不是设计为调试器,所以它直接打开了 cmd.exe,当成文本显示。如果设置为自己,则会递归调用自己,最后命令行超过最大长度,系统提示出错,程序无法被运行。

  那么病毒怎么利用这个呢?最简单的就是把自己设置为 explorer.exe 的调试器,然后做点调试相关的事,把 explorer.exe 运行起来,这样就不会被发现了。

18、Winlogon Notify DLL

  HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon/Notify 下有很多子键,子键下有叫 DLLName 的字符串值,指定了 DLL 的名字,当然这要放在 System32 文件夹下。下面还有 Logoff/Logon/ScreenSaver/Shutdown/StartShell/Startup 等字符串值,指定 Winlogon 事件发生的时候要调用的导出函数。

  使用这个方式加载的例子:杀毒软件的部分组件,例如:金山毒霸、Kaspersky(卡巴斯基)。

报表相关的后台sql语句

 /*扣件数据明细报表*/ select * from (select t.*, rownum rowno   from (select distinct ts.waybill_no,  ...
  • ymax_ling
  • ymax_ling
  • 2017年03月30日 10:41
  • 350

ANDROID内存优化(大汇总——全)

ANDROID内存优化大汇总完全版,涵盖内存介绍,内存计算,减少内存,重用内存,回收内存等内存优化总结。...
  • a396901990
  • a396901990
  • 2014年09月11日 00:17
  • 26080

【微信小程序】:入口大揭秘?

昨晚(11月18日),微信之父张小龙在朋友圈秀了一张照片,配了一句很鸡汤的文字:程序猿的一小步,程序的一大步:Android系统可添加到桌面在这种碎屏的android手机上,满满一屏的app,不,大家...
  • liujia216
  • liujia216
  • 2016年11月19日 10:37
  • 4027

国内外优秀的IT脚本编程学习类网站汇总

编程学习知识宝库;    1.CSDN http://www.csdn.net/    【站点介绍】;CSDN.NET - 全球最大的中文it社区,移动开发,Web前端,企业架构,编程语言优秀...
  • tianzhanger
  • tianzhanger
  • 2016年08月23日 05:31
  • 848

程序启动

Android从Linux系统启动有4个步骤; (1) init进程启动 (2) Native服务启动 (3) System Server,Android服务启动 (4) Ho...
  • u011553162
  • u011553162
  • 2013年09月13日 16:39
  • 466

android app性能优化大汇总

性能指标: (1)使用流畅度:    图片处理器每秒刷新的帧数(FPS),可用来指示页面是否平滑的渲染。高的帧率可以得到更流畅,更逼真的动画,不过帧率达到60fps以上,人眼主观感受到的差...
  • kdsde
  • kdsde
  • 2016年10月31日 17:34
  • 218

事件类型(大汇总)

事件; 1》触摸类事件:只会在移动设备中产生,对手的移动位置进行检测并做出响应 onTouchCancel: onTouchEnd onTouchMove onTouchStart 2》键...
  • zhangxiang_1102
  • zhangxiang_1102
  • 2017年11月10日 15:04
  • 45

机器学习资料大汇总

from: http://www.52ml.net/star 机器学习资料大汇总 作者:我爱机器学习(52ml.net) 注:本页面主要针对想快速上手机器学习而又不想...
  • Real_Myth
  • Real_Myth
  • 2015年11月05日 09:53
  • 698

Ecshop错误大汇总

一、出现下面这就话: Strict Standards: Only variables should be passed by reference in upload\includes\cls_...
  • zhaominfei511122
  • zhaominfei511122
  • 2015年05月04日 23:35
  • 45

多线程大汇总

转载自http://blog.csdn.net/evankaka         写在前面的话:此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都...
  • basycia
  • basycia
  • 2016年07月24日 16:06
  • 304
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:程序启动大汇总
举报原因:
原因补充:

(最多只允许输入30个字)