硬盘主引导记录-mbr 反汇编解释

硬盘主引导记录-mbr 反汇编解释

ID:15748210

大小:47.50 KB

页数:13页

时间:2018-08-05

硬盘主引导记录-mbr 反汇编解释_第1页
硬盘主引导记录-mbr 反汇编解释_第2页
硬盘主引导记录-mbr 反汇编解释_第3页
硬盘主引导记录-mbr 反汇编解释_第4页
硬盘主引导记录-mbr 反汇编解释_第5页
资源描述:

《硬盘主引导记录-mbr 反汇编解释》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、硬盘主引导记录-MBR反汇编解释硬盘主引导记录-MBR分类:java2010-10-1120:1432人阅读评论(0)收藏举报;主引导记录包括代码、数据两部分。它在被BIOS中断Int19h装入内存后获得控制权。数据;部分最重要的当然是分区表了!彻底熟悉主引导记录,可以帮助我们了解系统的引导过程,;处理因主引导记录损坏所造成的无法引导故障,消除引导型计算机病毒,更使我们能通过;修改主引导记录完成我们希望的工作:如多重引导,系统加软锁等...;;BIOS中断总是把主引导记录所在扇区(硬盘的0头0道1扇区)的内容(包括代码和数据);装入内存0000

2、:7C00起始的区域,然后检验该扇区内容的最后两个字节是不是“AA55”,;如果不是,那么对不起,Int19h将不把控制权交给主引导记录;若是,则下面的主引导记录;才能获得了控制权了(Int19通过跳转指令交转控制权):;;反汇编结果;;0000:7C00~0000:7C1A:初始化各个段寄存器、堆栈指针,最后将主引导记录在内存中搬家,腾出其所占内;存空间以供装入分区引导记录。0000:7C0033C0XORAX,AX;AX寄存器清00000:7C028ED0MOVSS,AX;SS=00000:7C04BC007CMOVSP,7C00;装填栈指

3、针——SS:SP=0000:7C000000:7C07FBSTI;开中断(装填栈指针时为避免硬件中断引起栈混乱应关中断)0000:7C0850PUSHAX;0000:7C0907POPES;装填附加数据段寄存器ES=00000:7C0A50PUSHAX;0000:7C0B1FPOPDS;装填数据段寄存器DS=00000:7C0CFCCLD;规定其后的串操作为正向串操作0000:7C0DBE1B7CMOVSI,7C1B;源指针0000:7C10BF1B06MOVDI,061B;目的指针0000:7C1350PUSHAX;0000:7C1457PU

4、SHDI;看看0000:7C1A——构造一个跳转0000:7C15B9E501MOVCX,01E5;0000:7C18F3REPZ;0000:7C19A4MOVSB;0000:7C1B起始的CX字节传送至0000:061B起始的区域0000:7C1ACBRETF;跳转到0000:061B(这是一种技巧跳转);;为直观起见,下面的地址按实际运行时的地址给出。;0000:061B~0000:062B:对分区表进行初步检验,一旦检测到某分区表项状态字节大于等于80h,就通过(当;然,在此之前如果检测到某项分区表的状态字节小于80h,就转错误处理。当然

5、,如果四个分区项的状态字节;都为零,主引导记录就会调用BIOS-ROM的INT18h,显示"PRESSAKEYTOREBOOT"信息等待你的操作。0000:061BBEBE07MOVSI,07BE;SI指向第一个分区表项,这时CX=00000:061EB104MOVCL,04;分区表共四个表项0000:0620382CCMP[SI],CH;0000:06227C09JL062D;大于等于80h转[注意JL指令:(SFxorOF)=1则转]0000:06247515JNZ063B;不为0则[SI]一定小于80h,只能转错误处理了!0000:062

6、683C610ADDSI,+10;为零则检查下一表项0000:0629E2F5LOOP0620;检查下一表项0000:062BCD18INT18;四表项的状态字节都为0,则系统只好调用INT18h了!;;0000:062D~0000:0639:检查剩余的分区表项——状态字节必须为零,否则显示错误信息“分区表无效”然;后当机!拜托,微软搞错没有,怎么用中文提示信息?真TM傻得可爱!;这里还有个小BUG,前面放行原则是只要状态字节大于等于80h,那么如果这个字节是诸如A0h、E5h之类数值;呢?嘿嘿,这个引导记录统统认为是有效的可引导分区了!000

7、0:062D8B14MOVDX,[SI];为读分区引导记录做准备:磁头号→DH,驱动器号→DL0000:062F8BEEMOVBP,SI;SI→BP,保存可引导分区表项的指针;0000:063183C610ADDSI,+10;其余的分区表项还要检查检查的0000:063449DECCX;0000:06357416JZ064D;CX=0则检查顺利通过,转继续0000:0637382CCMP[SI],CH;0000:063974F6JZ0631;为零,是合法表项,再查下一表项;;0000:063B~0000:064B:执行错误处理——报告错误信息后

8、当机0000:063BBE1007MOVSI,0710;错误信息字符串偏移+1→SI0000:063E4EDECSI;SI-1→SI0000:063F

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。