| 硬盘MBR全面分析 |
|
作者:网络 文章来源:网络 点击数: 更新时间:2005-4-12 |
| [ 字体:缩小 正常 放大 | 双击自动滚屏 ] |
请选择合适的字体颜色:
|
|
由于程序代码从0000:7C00开始,下面看反编译的结果(经过修改)
7C00 33C0 XOR AX,AX ;AX=0 7C02 8ED0 MOV SS,AX ;SS=0 7C04 BC007C MOV SP,7C00 ;SP=7C00 7C07 FB STI ;中断允许 7C08 50 PUSH AX 7C09 07 POP ES ;ES=0 7C0A 50 PUSH AX 7C0B 1F POP DS ;DS=0 7C0C FC CLD ;字符串操作方向:从低到高 7C0D BE1B7C MOV SI,7C1B ;源地址 DS:SI=0000:7C1B 7C10 BF1B06 MOV DI,061B ;目的地址 ESI=0000:061B 7C13 50 PUSH AX 7C14 57 PUSH DI 7C15 B9E501 MOV CX,01E5 ;共1E5h个字节 7C18 F3 REPZ 7C19 A4 MOVSB ;将MBR从0000:7C00移动到0000:0600 7C1A CB RETF ;跳转到0000:061B处
PARTITION_SEARCH_LOOP:
061B BEBE07 MOV SI,07BE ;SI指向分区表的开始 061E B104 MOV CL,04 ;循环4次,硬盘最多4个主分区 0620 382C CMP [SI],CH 0622 7C09 JL ACTIVE_PARTITION_FOUND ;分区是活动分区 0624 7515 JNZ INVALID_PARTITION_TABLE ;无效的分区表 0626 83C610 ADD SI,+10 ;每个分区占用16个字节,SI指向下一个分区 0629 E2F5 LOOP PARTITION_SEARCH_LOOP
062B CD18 INT 18 ;分区表搜索完,无活动分区,INT 18h=DISKLESS BOOT HOO上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
|
|
| 文章录入:小秦 责任编辑:小秦 |
上一篇文章: 手工数据恢复全攻略 下一篇文章: 关于SATA硬盘使用GHOST的一些总结 |
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |