免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wsgtrsys
打印 上一主题 下一主题

怎样防止系统reboot [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
11 [报告]
发表于 2006-04-19 09:51 |只看该作者
这种人就活该没人理。
自己一个劲儿瞎折腾,别人帮你还不懂得配合。
用非 root 身份的用户就可以了。除非这个程序没有 root 就不能运行,那又自当别论。
再者,用 ltrace 跟一下,就知道它是怎么使系统重启的了,如果只是用简单地 system( "reboot" ) 一类的办法的话,就 N 多的对策。

论坛徽章:
1
处女座
日期:2013-08-19 12:39:10
12 [报告]
发表于 2006-04-19 11:42 |只看该作者
原帖由 wingger 于 2006-4-19 09:51 发表
这种人就活该没人理。
自己一个劲儿瞎折腾,别人帮你还不懂得配合。
用非 root 身份的用户就可以了。除非这个程序没有 root 就不能运行,那又自当别论。
再者,用 ltrace 跟一下,就知道它是怎么使系统重启的了 ...


1、这个程序不能以非root用户运行。
2、没有ltrace、gdb这些命令,也没有标准的shell环境。因为它是一个裁减的linux系统。
3、它的reboot是通过调用init 6来实现的。init在执行reboot前会通过内核向系统中的所有进程发送退出信号。
3、这个程序是系统中其它各重要功能程序的母进程,其它进程通过socks和这个母进程通信,同时每一个程序都有自校验。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
13 [报告]
发表于 2006-04-19 13:55 |只看该作者
原帖由 wsgtrsys 于 2006-4-19 11:42 发表

它的reboot是通过调用init 6来实现的。

哈哈,那就再好不过了。
你把 init 4 当作 init 6 来用不就行了?
按照 System V init 的标准,init 4 是保留给用户自定义用的。
你把 init 6 去掉,init 4 弄成 reboot,不就行了?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
14 [报告]
发表于 2006-04-19 13:57 |只看该作者
再说一遍,如果你搞不清楚那个程序是如何使系统 reboot 的,只需要 ltrace 一下就知道了。
至于你的系统没装 ltrace,呵呵,那就装一个呀!用完了再删掉。

论坛徽章:
1
处女座
日期:2013-08-19 12:39:10
15 [报告]
发表于 2006-04-19 14:43 |只看该作者
原帖由 wingger 于 2006-4-19 13:57 发表
再说一遍,如果你搞不清楚那个程序是如何使系统 reboot 的,只需要 ltrace 一下就知道了。
至于你的系统没装 ltrace,呵呵,那就装一个呀!用完了再删掉。



没这么容易的。至少我觉得是这样。
如果如你说的那样简单的话,你可以试一下。

程序可以这里下载到:
http://www.mikrotik.com/download.html

它的程序做得比较BT。很多时候它不是直接调用库函数。而是自己做一个库,先用自己的程序调用自己的库,再用库调用标准的libc库。

/bin/bash: ./stoper: not found
\h:\w\$ ./stopper
connect failed (errno=111)
\h:\w\$ strace ./stopper
execve("./stopper", ["./stopper"], [/* 17 vars */]) = 0
uname({sys="Linux", node="debian", ...}) = 0
brk(0)                                  = 0x804a510
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=1208, ...}) = 0
old_mmap(NULL, 1208, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40017000
close(3)                                = 0
open("/lib/libumsg.so", O_RDONLY)       = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\257"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=127780, ...}) = 0
old_mmap(NULL, 140204, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x40018000
old_mmap(0x40037000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1e000) = 0x40037000
old_mmap(0x40038000, 9132, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40038000
close(3)                                = 0
open("/lib/libuxml++.so", O_RDONLY)     = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P\31\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=12952, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4003b000
old_mmap(NULL, 15712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4003c000
old_mmap(0x4003f000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x4003f000
close(3)                                = 0
open("/lib/libuc++.so", O_RDONLY)       = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20V\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=49932, ...}) = 0
old_mmap(NULL, 52132, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x40040000
old_mmap(0x4004c000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xb000) = 0x4004c000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320T\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1144316, ...}) = 0
old_mmap(NULL, 1150036, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4004d000
old_mmap(0x40160000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x113000) = 0x40160000
old_mmap(0x40164000, 7252, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40164000
close(3)                                = 0
mprotect(0x40160000, 4096, PROT_READ)   = 0
munmap(0x40017000, 120                = 0
brk(0)                                  = 0x804a510
brk(0x806b510)                          = 0x806b510
brk(0x806c000)                          = 0x806c000
rt_sigaction(SIGSEGV, {0x4002ab76, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x40075660}, NULL, = 0
rt_sigaction(SIGILL, {0x4002ab76, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x40075660}, NULL, = 0
rt_sigaction(SIGBUS, {0x4002ab76, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x40075660}, NULL, = 0
rt_sigaction(SIGFPE, {0x4002ab76, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x40075660}, NULL, = 0
getsockname(3, 0xbffffabc, [110])       = -1 EBADF (Bad file descriptor)
socket(PF_FILE, SOCK_STREAM, 0)         = 3
connect(3, {sa_family=AF_FILE, path="/tmp/novasock"}, 110) = -1 ECONNREFUSED (Connection refused)
write(2, "connect failed (errno=111)\n", 27connect failed (errno=111)
) = 27
close(3)                                = 0
exit_group(1)                           = ?

论坛徽章:
1
处女座
日期:2013-08-19 12:39:10
16 [报告]
发表于 2006-04-19 14:45 |只看该作者
而且目前还不知道是系统中的哪一个进程调用了reboot.我试着在gdb中,对SIGALRM信号设断点,根本断不到。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
17 [报告]
发表于 2006-04-19 15:09 |只看该作者
原帖由 wsgtrsys 于 2006-4-19 14:43 发表



没这么容易的。至少我觉得是这样。
如果如你说的那样简单的话,你可以试一下。

晕~
知道你就是个较劲的主,
我没试过敢跟你胡说?
我的系统 init 0 3 6 的每一个动作,我都能控制。
想让它重启它就重启,不想让它重启它就重启不了,
linux + gnu tools 都是开源的,有什么事情做不了?

论坛徽章:
1
处女座
日期:2013-08-19 12:39:10
18 [报告]
发表于 2006-04-19 15:15 |只看该作者
原帖由 wingger 于 2006-4-19 15:09 发表

晕~
知道你就是个较劲的主,
我没试过敢跟你胡说?
我的系统 init 0 3 6 的每一个动作,我都能控制。
想让它重启它就重启,不想让它重启它就重启不了,
linux + gnu tools 都是开源的,有什么事情做不了?



它的init 是修改过,getty login全部是修改过的。要动它确实麻烦。你安装试一下就知道了。
而且没有使用inittab表

[ 本帖最后由 wsgtrsys 于 2006-4-19 15:16 编辑 ]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
19 [报告]
发表于 2006-04-19 15:22 |只看该作者
原帖由 wsgtrsys 于 2006-4-19 15:15 发表



它的init 是修改过,getty login全部是修改过的。要动它确实麻烦。你安装试一下就知道了。
而且没有使用inittab表

你不是说只是“一个程序”吗?
什么时候连 init 都改了?
呵呵,我大概浏览了一下网页,再听你这么一说,看来人家那是一个完整的可运行的操作系统,
那么就是个斗智斗力的活了,
呵呵,看得出来,你这个东西不是做着玩儿的,如果感兴趣的话,和我站内短信联系,我先看看,做不做就看你是什么态度了。

论坛徽章:
0
20 [报告]
发表于 2006-04-19 17:53 |只看该作者
把内核重新编译一下。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP