2011-06-23Freebsd 6.0{以上}环境上进行m0n0wall解包封包操作
Leave a comment (0) 作者:小项-怪物猪
所有的操作都在root用户下进行
解包封包操作 {映像文件名:generic.img}
# file generic.img
generic.img: gzip compressed data, was "generic.img", from Unix, last modified: Wed Mar 16 04:50:59 2011, max compression //从这个可以看出这个img是一个gzip的压缩文件
# mv generic.img generic.img.gz //重命名文件
# gunzip generic.img.gz //解压
# ls
generic.img //得到的结果
# file generic.img
generic.img: x86 boot sector; partition 4: ID=0xa5, active, starthead 0, startsector 0, 50000 sectors //可以看到,这个是属于正常的映像文件了。
# mkdir files_img //创建文件挂在点
# mdconfig -a -t vnode -f generic.img -u 0 //挂在generic.img这个文件为当前系统的一个设备文件
# ls /dev | grep md0* //查找挂在的设备文件名
md0
md0a //这个就是我们的m0n0
md0c
# mount /dev/md0a files_img //挂载设备文件到 files_img 目录下
# ls files_img //现在就能看到我们的挂载成果了
.snap
boot //m0n0的启动文件
conf //系统的配置文件
kernel.gz //内核文件
mfsroot.gz //这个才是重要的,增加修改功能都是在这个里面。
『下面来看看mfsroot.gz的解包』基本上跟上面的步骤一样
# cp files_img/mfsroot.gz . //拷贝出来做备份
# gunzip mfsroot.gz //解压
# mkdir mfs //创建挂载点
# mdconfig -a -t vnode -f mfsroot -u 1 //这里为啥不用0呢 因为上面的我们已经占用了
# ls /dev | grep md1* //找到对应的设备名
# mount /dev/md1c mfs //挂在到mfs下面
# cd mfs //进入到mfs下面 /*至于你要干嘛就是属于你的问题了 ^_^ */
『封包操作』
# 退出挂载目录
# umount mfs //取消挂载
# mdconfig -d -u 1 //取消设备文件挂载
# gzip -9 mfsroot //压缩这个文件
# cp mfsroot.gz files_img //这个就不解释了
下面的跟上面基本相同,就不注释了
# umount files_img
# mdconfig -d -u 0
# gzip -9 generic.img
# mv generic.img.gz generic.img //这里就结束了
【重点来了】应为m0n0默认的包只有10M,我们想增加功能的话就很有限制,下面来说说怎样增大包的大小
+++++暂时没验证+++++
# dd if=/dev/zero of=new.img bs=1k count=20480 //创建一个空白的映像文件大小20M
# mdconfig -a -t vnode -f new.img -u 2 //new.img 挂载成设备文件 [当然是空白的]
# disklabel -Brw md2 auto //给new.img 这个映像加上启动并新建一个主分区 {我也没理解}
# newfs -b 8192 -f 2048 -o space -m 0 /dev/md2a //新建文件系统 {后面的参数也不是很懂}
# mount /dev/md2a new_files_img //挂载
其它的参考解包封包
mfsroot 的方法基本同上,区别在于
# disklabel -rw md* auto //主要是不需要加上启动的什么