FAT12格式的引导区实现】的更多相关文章

org 07c00h ;================================================ jmp short START nop ; 这个 nop 不可少 ;这个结构将要被写在软盘的第一个扇区,相当于格式化软盘为FAT12格式 BS_OEMName DB 'PAVKOOOO' ; OEM String, 必须 8 个字节 BPB_BytsPerSec DW ; 每扇区512字节 BPB_SecPerClus DB ; 每簇1扇区 簇的定义是为了操作系统能够更加快速…
FAT12格式的引导程序 在上一篇文章中详细介绍了FAT12格式的引导扇区数据结构,详情请浏览: 地址是:http://blog.sina.com.cn/s/blog_3edcf6b80100cr08.html 现在我们来编写一个简单的符合FAT12格式的引导程序,用它来领略一下程序的力量,并以此来敲开操作系统神秘的大门. 其实,只要是在0磁头0柱面1扇区中的指令能加载到7c00h处运行的程序,并且在扇区最后两字节分别是55和AA,就可以称为有效的引导扇区,能成功的引导系统,那么为什么还要大费周…
FAT12文件系统之引导扇区结构 文件系统即文件管理系统,是操作系统的重要组成部分之一,如果需要开发底层磁盘驱动或编写自己的操作系统,就必须详细了解文件系统. FAT12是Microsoft公司DOS操作系统所支持的文件系统之一,此外还有FAT16和FAT32,之后会分别详述这些文件系统.当软盘被标准格式化后,磁盘被格式化为:每磁头80个柱面(磁道),每个柱面有18个扇区,每个扇区有512字节空间.所以标准软盘的总空间(容量)为: 2*80*18*512=1474560B=1440K=1.44M…
前言 通过之前的学习,相信大家已经对磁盘的引导区有了充分的认识.但是我们之前的学习都是利用现成的工具来对引导区进行解析的,而对于一名反病毒工程师而言,不单单需要有扎实的逆向分析功底,同时也需要有很强的编程能力来解决实际问题.对于我们本次的课程来说,就需要大家亲自动手,利用程序来实现引导区的解析.这样做的目的,一方面是为了提高大家的编程能力,而另一方面则有助于我们更好地理解引导区的内容. 通过程序解析MBR 对于学习过PE文件格式解析的朋友来说,解析MBR可能不会有太大的问题,毕竟二者的原理还是非…
在第一节<(1)汇编写入引导区,虚拟机启动步骤>中讲解到一个简单屏幕显示一川字符串,第二节讲到BIOS启动过程! 第一节中基本原理就是将那个汇编代码用nasm汇编器进行汇编成二进制,然后把这二进制文件写入模拟的软盘system.img[磁盘]的第0面0磁道第1扇区中!然后虚拟机加载此映射文件. BIOS读取硬盘0盘面0磁道1扇区[0磁头0柱面1扇区](C0-H0-S1)的MBR(主引导记录)到内存中指定区域(具体是BIOS提供的int 19中断例程加载MBR到RAM的0X00007C00H开始…
首先需要您在网上下载NASM编译器,可以将汇编编译为二进制文件 1.写一段汇编代码在屏幕上打印一段字符,可以运行的!并进行nasm为二进制文件,如下"test.asm" 该段汇编主要是向显卡循环显示一个一个字符,最后取值为0就跳转fin执行HLT让CPU睡眠,死循环! 要显示一个字符,int 0x10则满足条件 AH=0X0E:AL=需要显示的字符code;BH=0;BL=颜色code org 0x7C00 ;主引导记录的内存地址 启动区内存装载地址必须在0x7c00-0x7dff j…
 1.用WinImage来写入到引导区的详细步骤: 启动WinImage后,打开“文件”菜单,单击菜单中的“打开”命令. 选择之前保存的磁盘镜像文件“boot.img”或者“boot.ima”. 打开“映像”菜单,单击菜单中的“引导扇区属性”命令. 在弹出的“引导扇区属性”对话框中,单击“打开”按钮. 浏览并选择经过汇编后生成的引导程序,如:“boot.bin”,然后单击“打开”按钮以选择引导文件并关闭对话框.注意此处所选择的文件长度应该是512字节,文件类型是BIN启动文件. 返回到“引导扇区…
如何在ubuntu下重建被grub覆盖的win10引导区? 1.修改grub配置文件: sudo vi /etc/default/grub 2.设置:GRUB_DEFAULT = 2 3.更新配置文件: sudo update-grub 成功进了Windows…
前言 引导型病毒指寄生在磁盘引导区或主引导区的计算机病毒.这种病毒利用系统引导时,不对主引导区的内容正确与否进行判别的缺点,在引导系统的过程中入侵系统,驻留内存,监视系统运行,伺机传染和破坏.按照引导型病毒在硬盘上的寄生位置又可细分为主引导记录病毒和分区引导记录病毒.我们未来的几次课,会专门从各个角度来分析这种病毒的特点,阐述病毒原理,提出应对方法.而本次课程的内容主要来讨论一下引导区的解析. 通过WinHex来手动解析引导区 WinHex是一个强大的十六进制编辑工具,也是一个强大的磁盘编辑工具…
分类: LINUX 备份MBR,linux下使用如下命令: # dd if=/dev/hda of=/root/linux.bin bs=512 count=1 这里注意使用if=/dev/hda备份MBR中数据,如果grub安装具体某个分区,则要自己选择了. 写入mbr: dd if=/mnt/windows/linux.lnx of=/dev/hda bs=512 count=1 备份之后linux.bin文件可以复制到Windows下,备份一份,另一份复制到C盘根目录下.然后修改boot.…
R3300L的参数 CPU: S905LRAM: Samsung K4B4G1646E-BCMA 512MB * 2 = 1GBROM: Samsung KLM8G1WEPD-B031 8GB eMMC * 1 = 8GBWLAN: RTL8189FTV接口: USB2.0 * 1, MicroUSB * 1, AV * 1, HDMI * 1, Micro Sdcard Reader * 1, 10/100M eth * 1, IR * 1功率: 待机 0.85W, 工作 2.9~3.0W R…
qq:992591601 欢迎交流 2016.04.03 2016.05.31 2016.06.29 这一章是有些复杂的,我不太懂作者为什么要把这么多内容都放进一天. 1读入了十个柱面 2从启动区执行操作系统 3进入32位 4导入C语言 makefile的内容: TOOLPATH = ../z_tools/ INCPATH = ../z_tools/haribote/ MAKE = $(TOOLPATH)make.exe -r NASK = $(TOOLPATH)nask.exe NASM =…
本来的需求是XEN下的镜像取证,但这篇仅包括他支持的一种格式,就是VHD,此项目从头开始大概用了两周时间,中间遇到了很多让人头大的问题,光是思考的笔记就写了十几页纸,不过实际上并没有那么难,主要是很久没编码了,还有很多概念没搞清楚.好吧,搬家过来的第一个博客就从这个项目开始吧. 要求: 1.解析vhd格式文件,判断合法性 2.该vhd装的文件系统是NTFS格式 3.拿到该格式下的目录结构,即包含哪些文件和目录. 4.跨平台 思路: 一.vhd格式解析 解析首先要弄懂数据结构,网上关于他的官方格式…
装系统,尤其是双系统,总是无法绕过引导的坑. linux的grub是非常复杂的引导系统,学习它非常累.而windows又不能引导linux.你可能会想,怎么就没有一种简单的引导方式,就好像引导光盘,引导u盘那样,插上去就能用呢? 因为传统的mbr引导设计得很小气,所以多个系统都拼命争夺那个小小的引导区域,而自己却又不懂得引导对方,所以就相互伤害,相互覆盖引导.但是,uefi横空出世,比较好的解决了这个问题. 但是如果你不熟悉uefi的原理,那么你会觉得这个uefi更加坑爹.电脑的东西,一定要先熟…
关于ISO.WIM.GHO三者的正确理解. ISO(Isolation)文件一般以ISO为扩展名,是复制光盘上全部信息而形成的镜像文件. WIM是英文Microsoft Windows Imaging Format(WIM)的简称,它是Windows基于文件的映像格式.WIM 映像格式并非现在相当常见的基于扇区的映像格式,它是基于文件的.WIM 文件存储一个或多个操作系统的副本(称为映像).可以在未启动操作系统的情况下,离线添加和删除驱动程序.更新内容以及 Windows 组件. GHO是Gho…
EFI分区实际上是一个FAT格式的分区,不一定要是第一个分区,GPT磁盘下任何一个FAT文件格式的分区都可以用来放EFI引导文件.主板UEFI先默认引导你所设置的第一优先启动分区下的\EFI\boot\bootx64.efi,这个文件实际上是一个可执行文件如果你EFI分区里的\EFI\boot\下放的是clover的bootx64.efi,它应该就会执行\EFI\CLOVER\CLOVERX64.efi,这个CLOVERX64.efi就是clover的主程序.如果EFI分区里的\EFI\boot…
安装centos后无法引导启动windows7的解决方法 在电脑Windows7系统上安装Centos7,安装后找不到Windows7引导菜单. 原因:因为CentOS 7已采用新式的grub2系统,所以需要进入/boot/grub2目录后使用vi编辑grub.cfg文件. 解决方法一:修改Centos 7的Grub2引导,添加Windows的启动项 .sudo vi /boot/grub2/grub.cfg .找到 ### BEGIN /etc/grub.d/30_os-prober ###…
公司买了一台Alienware 15 R2,安装双系统折腾死我了,现在记录一下安装过程. 硬盘: 256固态+1T机械 安装顺序: 先Windows,再Ubuntu 不同BIOS启动方式下安装系统 UEFI+secure on:无grub菜单,通过修改boot order能进入windows或者ubuntu UEFI+secure off:无grub菜单,能进入windows,无法进入ubuntu Legacy only:无grub菜单,能进入windows,无法进入ubuntu 可能问题原因…
在win10和ubantu双系统中开机启动时出现unknown filesystem的解决办法   出现上述问题是引导区出错了. 方法如下: grub rescue>ls grub rescue>ls(hd0,1)若出错就用grub rescue>ls(hd0,msdos1) 测试到某个分区出现的信息与其他分区不一样时,即确定ubantu在该分区,比如我们假定的是(hd0,5) 然后 grub rescue>root=hd0,msdos5 grub rescue>prefix…
1.         格式控制符 格式输出printf 作用是向终端输出若干个类型任意的数据. 格式:printf (格式控制符,输出列表) 1)         格式控制符 l          % 格式说明引导符. l          - 指定左对齐输出. l          0 指定空位填零. l          m.n  指定输出域宽度及精度 m表示数据最小宽度,如果实际数据宽度>m,按实际数据宽度输出,如果实际数据宽度<m,左边补空格.n对于实数来讲表示n位小数,对于字符串来讲…
引言: GRUB是一个多重操作系统的启动管理器.用来引导不同的系统,如windows,Linux.一般来说要先装Windows,后装Linux,这样grub才能生效(grub存在于linux的安装中). 这两天我重装了Windows,grub就不起作用了,也无法进入linux了(grub设置的默认进入windows).在不想重装linux的情况下,需要对grub进行重装,将搜集的资料及验证的结果整理后存放于此. 准备工作:   确认linux系统的根分区所在位置.比如我的Redhat9.0的根分…
查看ubuntu是否是从 efi/uefi 启动的方法:  若 /sys/firmware/efi 存在则是,否则不是.shell命令: [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS http://linux.cn/article-4667-1.html 读者在读过我的安装Ubuntu和Windows 8双系统教程以后,碰到的主要的问题是电脑直接启动到Windows 8而没有出现启动Ubuntu的选项. 这里有两种修复EFI启动引导的…
BOOT区的由来基于一个简单的道理,即单片机的程序是保存在FLASH中的,要运行程序就必须不停的访问FLASH存储器.对于一般的FLASH存储器,数据的写入需要一定的时间来完成,在数据写入完成之前,存储器中所有的数据都是不可读的,这就在运行旧程序和写入新程序之间造成了一个矛盾. 使用BOOT区是解决这个矛盾的方法之一,它将FLASH存储器从物理上分为两个独立的区域,对其中的一个区的数据写入不会影响到另一个区的数据读取操作.我们可以让单片机的程序在其中一个区(通常是BOOT区)运行,而运行着的程序…
重装Win7后会导致原grub引导被覆盖,要修复grub需要一张Ubuntu的LiveCD(安装光盘),用LiveCD启动电脑,进入Try Ubuntu(试用Ubuntu),进入之后打开终端,做如下几步: 1.sudo -i 2.fdisk -l 将列出系统分区情况.比如如下:      Disk /dev/sda: 320.1 GB, 320072933376 bytes  255 heads, 63 sectors/track, 38913 cylinders  Units = cylind…
在内存管理的上下文中, 初始化(initialization)可以有多种含义. 在许多CPU上, 必须显式设置适用于Linux内核的内存模型. 例如在x86_32上需要切换到保护模式, 然后内核才能检测到可用内存和寄存器. 而我们今天要讲的bootmem分配器就是系统初始化阶段使用的内存分配器. 为什么要使用bootmem分配器,内存管理不是有buddy系统和slab分配器吗?由于在系统初始化的时候需要执行一些内存管理,内存分配的任务,这个时候buddy系统,slab分配器等并没有被初始化好,此…
BOOT区的由来基于一个简单的道理,即单片机的程序是保存在FLASH中的,要运行程序就必须不停的访问FLASH存储器.对于一般的FLASH存储器,数据的写入需要一定的时间来完成,在数据写入完成之前,存储器中所有的数据都是不可读的,这就在运行旧程序和写入新程序之间造成了一个矛盾. 使用BOOT区是解决这个矛盾的方法之一,它将FLASH存储器从物理上分为两个独立的区域,对其中的一个区的数据写入不会影响到另一个区的数据读取操作.我们可以让单片机的程序在其中一个区(通常是BOOT区)运行,而运行着的程序…
简单来说,YUV: luma (Y) + chroma (UV) 格式, 一般情况下sensor支持YUV422格式,即数据格式是按Y-U-Y-V次序输出的RGB: 传统的红绿蓝格式,比如RGB565,其16-bit数据格式为5-bit R + 6-bit G + 5-bit B.G多一位,原因是人眼对绿色比较敏感.RAW RGB: sensor的每一像素对应一个彩色滤光片,滤光片按Bayer pattern分布.将每一个像素的数据直接输出,即RAW RGB dataJPEG: 有些sensor…
本文写于完美安装双系统之后,所以图片会不全然.主要目的是总结下注意事项.备用. 一.Win7-64-旗舰版U盘安装 win7-64-旗舰版纯净版下载,下载安装后仅仅有1个驱动人生! 附刻盘工具激活工具下载:点击下载(互联网下载.除了刻盘工具,不保证软件安全性! ) 直接使用Windows 7 USB DVD Download Tool刻盘! 不要用第三方工具什么大白菜之类的,实測这些东西不好用! 制作USB启动盘 下面四个步骤.无脑刻录: 1.选择源文件,也就是下载的ISO文件,无争议: wat…
引导区被其他系统给覆盖了,重新安装引导 grub2-install /dev/sdb GRUB_SAVEDEFAULT=true BIOS grub2-mkconfig -o /boot/grub2/grub.cfg UEFI grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg 查看grub配置中的启动项 awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg…
RAW RGB格式 10bit Raw RGB, 就是说用10bit去表示一个R, G, 或者B, 通常的都是用8bit的. 所以你后面处理时要把它转换为8bit的, 比较简单的方法就是将低两位去掉, 因为低两位的信号代表范围很小(0~3), 所以可以忽略不计的. 当然, 你也可以根据转换表去转换, 那比较复杂. RAW RGB 是未经过ISP处理而直接输出的图像格式,以 BGBGBGBGBGBGBGBG GRGRGRGRGRGRGRGR 阵列的形式排列的,每个像素点只输出一种颜色,你看图片吧,…