boot0分析
2009-05-13 10:21:38来源:未知 阅读 ()
今天我们通过bochs来分析boot0.
本文参考了《FreeBSD 5.2.1 boot0(启动扇区代码分析)》,转载请注明,谢谢!
源码位于:sys/boot/i386/boot0/boot0.S
安装bochs:
./configure --enable-debugger --enable-disasm
make; make install; rehash
# cp .bochsrc /root/
修改.bochsrc如下两行:
ata0-master: type=disk, mode=flat, path="/kerndebug/server.img", cylinders=0
vga: extension=none
其中/kerndebug/server.img为虚拟系统磁盘(可以用qemu的磁盘)
BIOS把引导扇区的512字节的内容读入到了0:0x7c00处,然后就跳转到0:0x7C00处去执行.
我们启动bochs,在0x7c00处设置断点。
# bochs -q -f /root/.bochsrc
========================================================================
Bochs x86 Emulator 2.3
Build from CVS snapshot on August 27, 2006
========================================================================
00000000000i[ ] reading configuration from /root/.bochsrc
00000000000e[ ] /root/.bochsrc: ataX-master/slave CHS set to 0/0/0 - autodetection enabled
00000000000i[ ] installing x module as the Bochs GUI
00000000000i[ ] using log file bochsout.txt
Next at t=0
(0) [0xfffffff0] f000:fff0 (unk. ctxt): jmp far f000:e05b ; ea5be000f0
b 0x7c00
c
(0) Breakpoint 1, 0x00007c00 in ?? ()
Next at t=981593
(0) [0x00007c00] 0000:7c00 (unk. ctxt): cld ; fc
disassemble size = 16
u/10
00007c00: ( ): cld ; fc
00007c01: ( ): xor ax, ax ; 31c0
00007c03: ( ): mov es, ax ; 8ec0
00007c05: ( ): mov ds, ax ; 8ed8
00007c07: ( ): mov ss, ax ; 8ed0
00007c09: ( ): mov sp, 0x7c00 ; bc007c
00007c0c: ( ): mov si, sp ; 89e6
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:使用proz来加速你的Freebsd ports安装
下一篇:init386 分析
- [FreeBSD] 添加一个分区 2009-05-13
- 从硬盘安装FREEBSD的方法 2009-05-13
- [FreeBSD] 挂载Linux分区一成一败 2009-05-13
- FreeBSD磁盘80G分区列表 2009-05-13
- FreeBSD文件系统挂载 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash