
1. 在/etc/init.d下放置相应启动程序的脚本,脚本必须实现start, stop, restart三和 *** 作。可以参考该目录已有的脚本,改写一下就行。
2. 在/etc/rc.d/rcX.d(如rc3.d)目录下用ln建立命令建立相应的link文件,K开头为关机时调用的,S开头为开机时使用的,后面接的数字表明这个服务相对于其它服务的启动优先级。可以参考该目录已有的连接文件名,ln一下就行。
实现方式2(菜鸟方式): 修改/etc/rc.d/rc.local。这个文件一般会放一些用户个性化的命令。
有点像早期 DOS 年代的 autoexec.bat 与 config.sys, 它就是一个脚本,在里头添上你的应用就行了。
charregname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run"/*开机启动路径*/\x0d\x0aHKEYhkResult\x0d\x0aintret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult)ret=RegSetValueEx(hkResult,"注册表键名",0,REG_EXPAND_SZ,(unsignedchar"要运行的程序路径"/,25)\x0d\x0aif(ret==0){\x0d\x0aprintf("successtowriterunkey\n")\x0d\x0aRegCloseKey(hkResult)\x0d\x0a}\x0d\x0aelse{\x0d\x0aprintf("failedtoopenregedit.%d\n",ret)\x0d\x0areturn0\x0d\x0a}开机启动程序一般是 *** 作系统启动后启动的程序所以不同的 *** 作系统有不同的开机启动方法
以windows为例可以使用注册表也可以将程序复制到开机启动的某个文件夹里
注册表则一般可以有以下几处
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
\Run;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
\Runonce;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
\Run;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
\RunOnce;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
\RunOnceEx
等等这些位置
c语言的话可以通过system函数调用reg程序来进行对注册表的 *** 作
也可以使用windows所提供的api
RegCreateKeyEx
RegOpenKeyEx
RegSetValueEx
等等这些注册表 *** 作的函数来完成
而linux *** 作系统(基于linux内核发布的发行版本统称)就与windows不同
一般linux上开机自启可以从自启脚本上进行添加
比如/etc/rc.loca /etc/rc[2-5].d/目录下等等
只需要将要自启的程序路径写入到自启文件里就可以了
c语言也只需要 *** 作文件的函数就能完成
另外也可以使用其它的方法来达到自启的方法
比如感染某个开机自启程序
方法是将自己要启动的程序的代码“注入“到某个开机自启的程序中
比如windows的explorer.exe等
方法可以是将explorer.exe替换成我们的程序
然后奖explorer.exe这个程序移动到其它目录或者更改名称
而我们的程序除了完成我们本身的功能外再多加一个功能,该功能用来创建一个进程调用原有的explorer.exe程序
这样就可以达到开机自启的目的了
当然我们也可以使用一个新的程序来替换explorer.exe
程序的功能有两个,一个是启动我们要自启动的程序,一个用来启动原有的explorer.exe程序
自然也可以将我们要启动的程序的代码直接添加在explorer.exe的头部或者尾部,头部再添加一个代码用来对这个添加完成的最终文件进行切割,切割成两个可执行程序,一个是我们要启动的程序,一个是原有的explorer.exe程序,再分别调用它们
该方法同样也可以用在linux系统上或者其它系统上
总之开机自启的方法有很多
但不同的 *** 作系统的具体方法却不同
(前面的地方没有做过任何修改,这里的地方专给认证人员的
我的答案完全自己手写,请将你认为我是复制粘贴来的地址给我,谢谢)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)