首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>系统安全>文章内容
制作RAMDISK in KERNEL的OpenBSD微系统
来源:www.cnfug.org 作者:matthew 发布时间:2004-05-16  

制作RAMDISK in KERNEL的OpenBSD微系统

Matthew(黑夜编码人) <matthew@cnfug.org>

前言

在以前我们已经讲过如何制作软盘上运行的FreeBSD系统(http://www.cnfug.org/journal/archives/000010.html),现在我们来看看如何制作一个运行在软盘上的OpenBSD系统。与软盘上的FreeBSD不同的是,这次我们将系统中的所有配制文件及程序全部存放到 OpenBSD的内核中,这样整个系统看起来就是一个文件。下面让我们具体来看看如何完成这样一个微系统的制作,由于作者才舒学浅文中难免有错误之处,还请您指教。

0、OpenBSD的启动过程

当硬盘MBR中的引导程序接过启动之后,MBR中的程序将读入硬盘OpenBSD分区中的引导程序,引导程序默认情况下会加载/boot,然后由boot 载入内核,此时内核开始检测一些硬件和做一些初始化。初始化完成后kernel将mount root device,然后启动系统初始化进程/sbin/init,init将根据/etc/rc中的设置来进行初始化等。

1、定制RAMDISK内核

要使用RAMDISK in KERNEL就必须在内核配制文件中加入以下选项:


option RAMDISK_HOOKS
option MINIROOTSIZE=3560
pseudo-device rd 1


以上的内核参数意义如下:
option RAMDISK_HOOKS:开启ramdisk in kernel的功能。
option MINIROOTSIZE=xxx:设置内核中ramdisk的大小,以512b为单位(据说最大只能为23000 )
pseudo-device rd 1:在内核中产生1个ramdisk设备。

2、制作ramdisk镜像


# dd if=/dev/zero of=/ramdisk bs=512 count=3560
# vnconfig -c svnd0 /ramdisk
# disklabel -r -w svnd0 rdroot
# newfs -m 0 -S 512 -i 4096 /dev/svnd0a
# mount /dev/svnd0a /mnt
# mkdir /mnt/{dev,bin,sbin,etc}
# cp /dev/MAKEDEV /mnt/dev
# cp /bin/{sh,ls} /mnt/bin
# cp /sbin/init /mnt/sbin
# cd /mnt/dev/ && ./MAKEDEV ramdisk
# echo 'echo "This is my minibsd all in kernel" && /bin/sh' > /mnt/etc/rc
# sync && umount /mnt
# sync && vnconfig -u svnd0 && sync


3、将ramdisk写入kernel

# cc -o rdsetroot /usr/src/distrib/common/elfrdsetroot.c
# ./rdsetroot /minibsd < ramdisk


4、压缩kernel大小

# gzip -9 -c /minibsd > /minibsd.gz


5、制作目标软盘

因为系统需要使用/boot(/usr/mdec/boot)来加载kernel,所以我们需要在软盘上放置boot文件。


# disklabel -B -w -r /dev/fd0a fd1440
# newfs -m 0 -S 512 /dev/fd0a
# mount /dev/fd0a /mnt
# cp /usr/mdec/boot /mnt
# cp /minibsd.gz /mnt/bsd


现在你的ramdisk in kernel的miniopenbsd系统就已经做好了。

注:任何转载或摘抄请保留作者信息和注明文章出处(中文FreeBSD用户组 http://www.cnfug.org)


 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·Windows 系统调用功能列表
·windows入侵提权-创建隐藏帐号(
· CC_STACKPROTECTOR防止内核stac
·Linux内核安全研究之Stack Overf
· Exploit The Linux Kernel NULL
·Kernel Locking 中文版
·IA32上Linux内核中断机制分析
·Award BIOS Rootkit,universal
·PHP代码审计
·N种内核注入DLL的思路及实现
·glibc 2.3.5 的一些新安全特性
·Struts2/XWork < 2.2.0 Remote C
  相关文章
·剖析Windows系统服务调用机制
·缓冲区溢出漏洞发掘之整数范围限
·数据恢复的基础知识:从电脑硬盘
·Linux 2.6 对新型 CPU 快速系统
·绕过内核调度链表进程检测
·获得进程的EPROCESS
·AIX PowerPC体系结构及其溢出技
·Win32 多线程的性能
·用Ollydbg手脱UPX加壳的DLL
·总结windows下堆溢出的三种利用
·杀毒软件的简单实现
·phrack #62 has been released
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved